#!/usr/bin/env bash set -euo pipefail DEPLOY_PATH="${DEPLOY_PATH:-/opt/vpn-proxy}" GATEWAY_IMAGE="${GATEWAY_IMAGE:?GATEWAY_IMAGE is required}" PULL_IMAGE="${PULL_IMAGE:-true}" echo "Preparing deploy directory: ${DEPLOY_PATH}" mkdir -p "${DEPLOY_PATH}" cat > "${DEPLOY_PATH}/docker-compose.server.yml" < "${DEPLOY_PATH}/.env" <<'EOF' PORT=3456 PROXY_PORT=8080 PROXY_BIND_IP=0.0.0.0 TPROXY_PORT=7895 TPROXY_MARK=1 TPROXY_TABLE=100 TPROXY_CHAIN=VPN_PROXY_TPROXY ROUTING_RU_DIRECT=true LOG_LEVEL=info EOF echo "Created default .env. Edit ${DEPLOY_PATH}/.env if this server needs different ports." else echo "Preserving existing .env" fi cd "${DEPLOY_PATH}" echo "Pulling image: ${GATEWAY_IMAGE}" if [ "${PULL_IMAGE}" = "true" ]; then docker compose -f docker-compose.server.yml pull else echo "Skipping image pull; using local image ${GATEWAY_IMAGE}" fi echo "Starting gateway..." docker compose -f docker-compose.server.yml up -d echo "Current container:" docker ps --filter "name=vpn-proxy-gateway"