update
This commit is contained in:
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
derper/derper.env
|
||||||
|
derper/certbot.env
|
||||||
|
derper/letsencrypt
|
||||||
|
derper/certs
|
||||||
|
derper/logs
|
||||||
32
derper/Dockerfile
Normal file
32
derper/Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# ─── Stage 1: Build derper ────────────────────────────────────────────
|
||||||
|
FROM golang:1.24 AS builder
|
||||||
|
WORKDIR /src
|
||||||
|
|
||||||
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
|
||||||
|
go install -ldflags="-s -w -extldflags=-static" \
|
||||||
|
tailscale.com/cmd/derper@main
|
||||||
|
|
||||||
|
# ─── Stage 2: Final image ────────────────────────────────────────────
|
||||||
|
FROM alpine:3.14
|
||||||
|
LABEL maintainer="you@example.com"
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
bash \
|
||||||
|
curl \
|
||||||
|
jq \
|
||||||
|
openssl \
|
||||||
|
certbot \
|
||||||
|
bind-tools \
|
||||||
|
ca-certificates \
|
||||||
|
wget \
|
||||||
|
tar
|
||||||
|
|
||||||
|
# 工作目录 & 日志目录
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# 复制 derper 二进制 & 脚本
|
||||||
|
COPY --from=builder /go/bin/derper /app/derper
|
||||||
|
COPY scripts/ /app/scripts/
|
||||||
|
RUN chmod +x /app/derper /app/scripts/*.sh
|
||||||
|
|
||||||
|
|
||||||
36
derper/docker-compose.yml
Normal file
36
derper/docker-compose.yml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
derper:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
image: hotwa/derper:latest
|
||||||
|
container_name: derper
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- derper.env
|
||||||
|
ports:
|
||||||
|
- "3477:3477"
|
||||||
|
- "3478:3478/udp"
|
||||||
|
volumes:
|
||||||
|
- ./letsencrypt:/etc/letsencrypt
|
||||||
|
- ./certs:/app/certs
|
||||||
|
- ./logs:/var/log/certbot
|
||||||
|
- /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock:ro
|
||||||
|
# tailscale login first require
|
||||||
|
entrypoint: [""]
|
||||||
|
command:
|
||||||
|
- /bin/bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
/app/derper \
|
||||||
|
-hostname headscale.jmsu.top \
|
||||||
|
-certdir /app/certs \
|
||||||
|
-certmode manual \
|
||||||
|
-a :3477 \
|
||||||
|
-stun-port 3478 \
|
||||||
|
-http-port -1 \
|
||||||
|
-verify-clients
|
||||||
|
|
||||||
|
|
||||||
23
derper/install.sh
Normal file
23
derper/install.sh
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
cd /opt/certbot-aliyun-docker/derper
|
||||||
|
docker run --rm \
|
||||||
|
-e REGION=cn-hangzhou \
|
||||||
|
-e ACCESS_KEY_ID=LTAI5tP1yWFMMJhF6nrGYEit \
|
||||||
|
-e ACCESS_KEY_SECRET=xBEMX76UwvO21DCES2605VM0kAU7TV \
|
||||||
|
-e DOMAIN=headscale.jmsu.top \
|
||||||
|
-e EMAIL=pylyzeng@gmail.com \
|
||||||
|
-e CRON_SCHEDULE="0 0 * * *" \
|
||||||
|
-v "$PWD/letsencrypt:/etc/letsencrypt" \
|
||||||
|
-v "$PWD/certs:/app/certs" \
|
||||||
|
-v "$PWD/logs:/var/log/certbot" \
|
||||||
|
hotwa/certbot:latest \
|
||||||
|
certbot certonly \
|
||||||
|
-d "*.headscale.jmsu.top" \
|
||||||
|
--manual \
|
||||||
|
--preferred-challenges dns \
|
||||||
|
--manual-auth-hook "alidns" \
|
||||||
|
--manual-cleanup-hook "alidns clean" \
|
||||||
|
--email pylyzeng@gmail.com \
|
||||||
|
--agree-tos \
|
||||||
|
--non-interactive \
|
||||||
|
-v
|
||||||
20
derper/renew.sh
Normal file
20
derper/renew.sh
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
cd /opt/certbot-aliyun-docker/derper
|
||||||
|
docker run --rm \
|
||||||
|
-e REGION=cn-hangzhou \
|
||||||
|
-e ACCESS_KEY_ID=LTAI5tP1yWFMMJhF6nrGYEit \
|
||||||
|
-e ACCESS_KEY_SECRET=LTAI5tP1yWFMMJhF6nrGYEit \
|
||||||
|
-e DOMAIN=headscale.jmsu.top \
|
||||||
|
-e EMAIL=pylyzeng@gmail.com \
|
||||||
|
-v "$PWD/letsencrypt:/etc/letsencrypt" \
|
||||||
|
-v "$PWD/certs:/app/certs" \
|
||||||
|
-v "$PWD/logs:/var/log/certbot" \
|
||||||
|
hotwa/certbot:latest \
|
||||||
|
certbot renew \
|
||||||
|
--manual \
|
||||||
|
--preferred-challenges dns \
|
||||||
|
--manual-auth-hook "alidns" \
|
||||||
|
--manual-cleanup-hook "alidns clean" \
|
||||||
|
--deploy-hook "/app/scripts/webhook.sh" \
|
||||||
|
--no-random-sleep-on-renew \
|
||||||
|
-v
|
||||||
Reference in New Issue
Block a user