19 lines
1.0 KiB
Bash
19 lines
1.0 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
legacy_container=${1:-trojan}
|
|
target=/opt/trojan
|
|
install -d -m 0750 "$target"/{config,manager,acme,certs,manager-config}
|
|
docker cp "$legacy_container":/usr/local/etc/trojan/config.json "$target/config/config.json"
|
|
docker cp "$legacy_container":/var/lib/trojan-manager/. "$target/manager/"
|
|
docker cp "$legacy_container":/root/.acme.sh/. "$target/acme/" || true
|
|
cat > "$target/manager-config/manager.yaml" <<EOF
|
|
schema_version: 1
|
|
public: { domain: ${PUBLIC_DOMAIN:?set PUBLIC_DOMAIN}, port: ${PUBLIC_PORT:-443} }
|
|
runtime: { listen_address: 0.0.0.0, listen_port: ${TROJAN_LISTEN_PORT:-8443}, fallback_address: 127.0.0.1, fallback_port: ${WEB_PORT:-8081} }
|
|
web: { listen_address: ${WEB_HOST:-127.0.0.1}, listen_port: ${WEB_PORT:-8081} }
|
|
acme: { enabled: true, domain: ${ACME_DOMAIN:-$PUBLIC_DOMAIN}, http_port: ${ACME_HTTP_PORT:-8082} }
|
|
firewall: { manage: false }
|
|
EOF
|
|
chmod 700 "$target"/{acme,certs}; chmod 600 "$target/config/config.json"
|
|
echo "Migration staged in $target; do not stop the legacy container before rehearsal succeeds."
|