clink
This commit is contained in:
parent
393c8f3d14
commit
8f2e1b8006
4 changed files with 84 additions and 0 deletions
3
clink/.env.example
Normal file
3
clink/.env.example
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
TS_HOSTNAME=clink
|
||||
TS_AUTHKEY=tskey-client-nnn-nnn
|
||||
TS_EXTRA_ARGS=--advertise-tags=tag:container
|
||||
18
clink/Dockerfile
Normal file
18
clink/Dockerfile
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
FROM debian:bookworm
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN git clone https://git.swurl.xyz/swirl/clink.git /tmp/clink && \
|
||||
make -C /tmp/clink && make -C /tmp/clink install-bin && \
|
||||
rm -rf /tmp/clink
|
||||
|
||||
RUN mkdir /clink-data
|
||||
|
||||
COPY docker-entrypoint.sh /usr/local/bin/
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
57
clink/docker-compose.yml
Normal file
57
clink/docker-compose.yml
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
services:
|
||||
ts-clink:
|
||||
image: tailscale/tailscale:latest
|
||||
container_name: ts-clink
|
||||
restart: unless-stopped
|
||||
hostname: ${TS_HOSTNAME}
|
||||
environment:
|
||||
- TS_AUTHKEY
|
||||
- TS_EXTRA_ARGS
|
||||
- TS_SERVE_CONFIG=/ts/serve.json
|
||||
volumes:
|
||||
- tailscale:/var/lib/tailscale
|
||||
devices:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
cap_add:
|
||||
- net_admin
|
||||
- sys_module
|
||||
configs:
|
||||
- source: serve-config
|
||||
target: /ts/serve.json
|
||||
clink:
|
||||
build: .
|
||||
container_name: clink
|
||||
network_mode: service:ts-clink
|
||||
depends_on:
|
||||
- ts-clink
|
||||
volumes:
|
||||
- clink-data:/clink-data
|
||||
# Optional: Random seed generated, or use deterministic seed
|
||||
#environment:
|
||||
#- PB_SECRET
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
clink-data:
|
||||
tailscale:
|
||||
configs:
|
||||
serve-config:
|
||||
content: |
|
||||
{
|
||||
"TCP": {
|
||||
"443": {
|
||||
"HTTPS": true
|
||||
}
|
||||
},
|
||||
"Web": {
|
||||
"$${TS_CERT_DOMAIN}:443": {
|
||||
"Handlers": {
|
||||
"/": {
|
||||
"Proxy": "http://127.0.0.1:8081"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"AllowFunnel": {
|
||||
"$${TS_CERT_DOMAIN}:443": false
|
||||
}
|
||||
}
|
||||
6
clink/docker-entrypoint.sh
Normal file
6
clink/docker-entrypoint.sh
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
SECRET="${PB_SECRET:-$(head -c 32 /dev/urandom | sha256sum | cut -d' ' -f1)}"
|
||||
|
||||
exec clink -d /clink-data -p 8081 -s "$SECRET" -k
|
||||
Loading…
Reference in a new issue