diff --git a/.gitea/workflows/docker-build.yml b/.gitea/workflows/docker-build.yml index a6bd034..7b7bd7a 100644 --- a/.gitea/workflows/docker-build.yml +++ b/.gitea/workflows/docker-build.yml @@ -1,10 +1,13 @@ -name: Build and Push Docker Image +name: Build and Deploy Sing-proxy on: push: branches: [master] workflow_dispatch: +env: + DEPLOY_PATH: /opt/vpn-proxy + jobs: build: runs-on: ubuntu-latest @@ -31,3 +34,37 @@ jobs: docker push "${IMAGE}:latest" echo "Pushed: ${IMAGE}:latest" + + deploy: + needs: build + runs-on: lxc-111 + steps: + - name: Deploy to LXC 111 + run: | + REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||') + IMAGE="${REGISTRY_HOST}/${{ gitea.repository }}/sing-proxy" + + echo "Logging into registry..." + echo "${{ secrets.REGISTRY_TOKEN }}" | docker login "$REGISTRY_HOST" -u "${{ gitea.actor }}" --password-stdin + + echo "Pulling latest image..." + docker pull "${IMAGE}:latest" + + echo "Stopping old container..." + docker stop sing-proxy 2>/dev/null || true + docker rm sing-proxy 2>/dev/null || true + + echo "Starting new container..." + docker run -d \ + --name sing-proxy \ + --network host \ + --restart unless-stopped \ + -e PORT=3456 \ + -e PROXY_PORT=8080 \ + -v ${{ env.DEPLOY_PATH }}/data:/app/data \ + --memory=256m \ + "${IMAGE}:latest" + + echo "Deployment complete!" + sleep 3 + docker ps | grep sing-proxy