mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
fix(docker): исправить сборку, добавить compose, убрать VLESS_BOND
- Dockerfile: путь ./cmd/vk-turn-server → ./cmd/server (образ был сломан) - docker-entrypoint.sh → docker/entrypoint.sh; удалён VLESS_BOND (флаг удалён ранее, падал при VLESS_BOND=true); добавлен DEBUG env - docker-compose.yml: host network, WireGuard-дефолт, все опции закомментированы inline; достаточно docker compose up -d - docs/deploy.md: compose как primary workflow, таблица env дополнена
This commit is contained in:
+6
-6
@@ -3,7 +3,7 @@ FROM golang:1.25-alpine AS builder
|
||||
WORKDIR /build
|
||||
|
||||
COPY . .
|
||||
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o vk-turn-proxy ./cmd/vk-turn-server
|
||||
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o server ./cmd/server
|
||||
|
||||
FROM alpine:3.23
|
||||
|
||||
@@ -11,11 +11,11 @@ RUN apk add --no-cache ca-certificates tzdata
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY docker-entrypoint.sh .
|
||||
COPY --from=builder /build/vk-turn-proxy .
|
||||
RUN sed -i 's/\r$//' docker-entrypoint.sh && chmod +x docker-entrypoint.sh
|
||||
COPY docker/entrypoint.sh .
|
||||
COPY --from=builder /build/server .
|
||||
RUN sed -i 's/\r$//' entrypoint.sh && chmod +x entrypoint.sh
|
||||
|
||||
EXPOSE 56000/tcp
|
||||
EXPOSE 56000/udp
|
||||
EXPOSE 56000/tcp
|
||||
|
||||
ENTRYPOINT ["./docker-entrypoint.sh"]
|
||||
ENTRYPOINT ["./entrypoint.sh"]
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
services:
|
||||
btp:
|
||||
image: ghcr.io/samosvalishe/btp:latest
|
||||
# build: .
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
# Backend address: WireGuard → 127.0.0.1:51820 | VLESS/Xray → 127.0.0.1:443
|
||||
CONNECT_ADDR: "127.0.0.1:51820"
|
||||
# LISTEN_ADDR: "0.0.0.0:56000"
|
||||
# VLESS_MODE: "true"
|
||||
# WRAP_MODE: "true"
|
||||
# WRAP_KEY: "" # 64 hex chars; required when WRAP_MODE=true
|
||||
# VK_TURN_KCP_PROFILE: "balanced" # fast | balanced | slow
|
||||
# VK_TURN_KCP_FEC: "10:3" # Reed-Solomon FEC, data:parity
|
||||
# DEBUG: "false"
|
||||
@@ -9,11 +9,6 @@ if [ "${VLESS_MODE}" = "true" ]; then
|
||||
VLESS_FLAG="-vless"
|
||||
fi
|
||||
|
||||
BOND_FLAG=""
|
||||
if [ "${VLESS_BOND}" = "true" ]; then
|
||||
BOND_FLAG="-vless-bond"
|
||||
fi
|
||||
|
||||
WRAP_FLAG=""
|
||||
WRAP_KEY_FLAG=""
|
||||
if [ "${WRAP_MODE}" = "true" ]; then
|
||||
@@ -22,4 +17,9 @@ if [ "${WRAP_MODE}" = "true" ]; then
|
||||
WRAP_KEY_FLAG="-wrap-key $WRAP"
|
||||
fi
|
||||
|
||||
exec ./vk-turn-proxy -listen "$LISTEN" -connect "$CONNECT" $VLESS_FLAG $BOND_FLAG $WRAP_FLAG $WRAP_KEY_FLAG
|
||||
DEBUG_FLAG=""
|
||||
if [ "${DEBUG}" = "true" ]; then
|
||||
DEBUG_FLAG="-debug"
|
||||
fi
|
||||
|
||||
exec ./server -listen "$LISTEN" -connect "$CONNECT" $VLESS_FLAG $WRAP_FLAG $WRAP_KEY_FLAG $DEBUG_FLAG
|
||||
+51
-46
@@ -1,5 +1,56 @@
|
||||
# Развёртывание
|
||||
|
||||
## Docker Compose (рекомендуется)
|
||||
|
||||
```bash
|
||||
# Скопируйте docker-compose.yml на VPS и отредактируйте CONNECT_ADDR
|
||||
docker compose up -d
|
||||
docker compose logs -f
|
||||
```
|
||||
|
||||
По умолчанию: WireGuard backend `127.0.0.1:51820`, host network, порт `56000/udp`.
|
||||
|
||||
Для VLESS/Xray раскомментируйте `VLESS_MODE: "true"` и смените `CONNECT_ADDR` на `127.0.0.1:443`.
|
||||
|
||||
## Docker Run
|
||||
|
||||
**Host network** (backend на хосте):
|
||||
|
||||
```bash
|
||||
docker run -d --name btp --network host --restart unless-stopped \
|
||||
-e CONNECT_ADDR=127.0.0.1:51820 \
|
||||
ghcr.io/samosvalishe/btp:latest
|
||||
```
|
||||
|
||||
**Bridge mode:**
|
||||
|
||||
```bash
|
||||
docker run -d --name btp -p 56000:56000/udp --restart unless-stopped \
|
||||
-e CONNECT_ADDR=<host-ip>:51820 \
|
||||
ghcr.io/samosvalishe/btp:latest
|
||||
```
|
||||
|
||||
> В bridge mode `CONNECT_ADDR=127.0.0.1:...` указывает внутрь контейнера. Используйте host network или IP хоста.
|
||||
|
||||
**Переменные окружения:**
|
||||
|
||||
| Переменная | По умолчанию | Описание |
|
||||
| --- | --- | --- |
|
||||
| `CONNECT_ADDR` | **обязательна** | backend сервера |
|
||||
| `LISTEN_ADDR` | `0.0.0.0:56000` | адрес прослушивания |
|
||||
| `VLESS_MODE` | `false` | включает `-vless` |
|
||||
| `WRAP_MODE` | `false` | включает `-wrap` |
|
||||
| `WRAP_KEY` | пусто | значение `-wrap-key` |
|
||||
| `DEBUG` | `false` | включает `-debug` |
|
||||
| `VK_TURN_KCP_PROFILE` | `balanced` | профиль KCP: `fast` \| `balanced` \| `slow` |
|
||||
| `VK_TURN_KCP_FEC` | `0:0` | Reed-Solomon FEC: `data:parity` (напр. `10:3`) |
|
||||
|
||||
Сборка образа:
|
||||
|
||||
```bash
|
||||
docker build -t btp .
|
||||
```
|
||||
|
||||
## systemd
|
||||
|
||||
`/etc/systemd/system/btp.service`:
|
||||
@@ -26,49 +77,3 @@ sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now btp.service
|
||||
sudo systemctl status btp.service
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
Образ:
|
||||
|
||||
```bash
|
||||
docker pull ghcr.io/samosvalishe/btp:latest
|
||||
```
|
||||
|
||||
**Host network** (backend на хосте):
|
||||
|
||||
```bash
|
||||
docker run --rm --network host \
|
||||
-e CONNECT_ADDR=127.0.0.1:51820 \
|
||||
ghcr.io/samosvalishe/btp:latest
|
||||
```
|
||||
|
||||
**Bridge mode:**
|
||||
|
||||
```bash
|
||||
docker run --rm -p 56000:56000/udp \
|
||||
-e CONNECT_ADDR=<host-ip>:51820 \
|
||||
ghcr.io/samosvalishe/btp:latest
|
||||
```
|
||||
|
||||
> В bridge `CONNECT_ADDR=127.0.0.1:...` указывает внутрь контейнера. Используйте host network или IP хоста.
|
||||
|
||||
**Переменные:**
|
||||
|
||||
| Переменная | По умолчанию | Описание |
|
||||
| --- | --- | --- |
|
||||
| `CONNECT_ADDR` | **обязательна** | backend сервера |
|
||||
| `LISTEN_ADDR` | `0.0.0.0:56000` | адрес прослушивания |
|
||||
| `VLESS_MODE` | `false` | включает `-vless` |
|
||||
| `WRAP_MODE` | `false` | включает `-wrap` |
|
||||
| `WRAP_KEY` | пусто | значение `-wrap-key` |
|
||||
| `VK_TURN_KCP_PROFILE` | `balanced` | профиль KCP |
|
||||
| `VK_TURN_KCP_MTU` | `1200` | MTU для KCP |
|
||||
|
||||
> `VLESS_BOND` в `docker-entrypoint.sh` ещё передаёт `-vless-bond` серверу, но серверный флаг удалён в V2-0 (bond автоопределяется по magic-префиксу). Не устанавливайте `VLESS_BOND=true` — сервер не запустится.
|
||||
|
||||
Сборка образа:
|
||||
|
||||
```bash
|
||||
docker build -t btp .
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user