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