diff --git a/.gitea/workflows/cd.yml b/.gitea/workflows/cd.yml index d7aaa1e..556b5ad 100644 --- a/.gitea/workflows/cd.yml +++ b/.gitea/workflows/cd.yml @@ -41,6 +41,8 @@ jobs: EOF - name: Deploy with docker-compose + env: + DOCKER_HOST: tcp://192.168.88.40:2375 run: | docker compose -f docker-compose.prod.yml pull docker compose -f docker-compose.prod.yml up -d --remove-orphans @@ -48,9 +50,11 @@ jobs: - name: Health check run: | sleep 10 - curl -f http://localhost:3000/health || exit 1 - curl -f http://localhost:8081/health || exit 1 + curl -f http://192.168.88.40:3000/health || exit 1 + curl -f http://192.168.88.40:8081/health || exit 1 - name: Cleanup old images + env: + DOCKER_HOST: tcp://192.168.88.40:2375 run: | docker image prune -f --filter "until=24h" diff --git a/SETUP.md b/SETUP.md index 94af277..c541d2e 100644 --- a/SETUP.md +++ b/SETUP.md @@ -243,6 +243,74 @@ This guide covers prerequisites, environment setup, running the application loca docker compose down ``` +### Local Test Environment Deployment (Remote Docker Host) + +For testing deployments on a local network server without setting up a full production VPS, you can deploy directly to a remote Docker host (e.g., a home lab server or test machine) using Docker's TCP socket. + +#### Test Environment Prerequisites + +- A remote server running Docker at IP `192.168.88.40`. +- Docker TCP socket enabled and listening on port `2375` on the remote server (ensure this port is secured/firewalled to trusted local IPs only). + +#### Deployment Steps + +1. **Configure Docker CLI to use the Remote Host**: + You can point your local Docker CLI to the remote server by setting the `DOCKER_HOST` environment variable: + - **PowerShell (Windows)**: + + ```powershell + $env:DOCKER_HOST="tcp://192.168.88.40:2375" + ``` + + - **Bash (Linux/macOS)**: + + ```bash + export DOCKER_HOST="tcp://192.168.88.40:2375" + ``` + +2. **Verify Connection**: + Run `docker info` to confirm your local CLI is communicating with the remote server at `192.168.88.40`: + + ```bash + docker info + ``` + + The output should show the remote server's hostname and system details. + +3. **Deploy the Stack**: + With `DOCKER_HOST` set, any `docker` or `docker compose` commands you run locally will execute directly on the remote server. + - **Deploy from Registry (Production-like)**: + + ```bash + docker compose -f docker-compose.prod.yml pull + docker compose -f docker-compose.prod.yml up -d --remove-orphans + ``` + + - **Build and Deploy from Source**: + + ```bash + docker compose up -d --build + ``` + +4. **Access the Test Environment**: + - Playout Health: `http://192.168.88.40:8081/health` + - Chat Health: `http://192.168.88.40:3000/health` + - Nginx Entrypoint: `http://192.168.88.40:8080` (or the port mapped to `NGINX_PORT` in `.env`) + +5. **Reset to Local Docker Host**: + Once testing is complete, clear the `DOCKER_HOST` variable to point back to your local machine: + - **PowerShell**: + + ```powershell + Remove-Item env:DOCKER_HOST + ``` + + - **Bash**: + + ```bash + unset DOCKER_HOST + ``` + ### Production Setup Guide 1. **Prepare the target host**: