From 9a8757580ccedd1186664ae4ac8b67385bd98ce8 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 4 Nov 2025 10:37:14 +0100 Subject: [PATCH 01/24] Changed network --- docker-compose.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 44a3d88..1c04d1e 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,11 +6,11 @@ services: security_opt: - no-new-privileges:true networks: - - proxy + - prod-proxy command: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - - "--providers.docker.network=proxy" + - "--providers.docker.network=prod-proxy" - "--entryPoints.web.address=:81" ports: - "81:81" @@ -22,11 +22,11 @@ services: image: "traefik/whoami" restart: unless-stopped networks: - - proxy + - prod-proxy labels: - "traefik.enable=true" - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" - "traefik.http.routers.whoami.entrypoints=web" networks: - proxy: \ No newline at end of file + prod-proxy: \ No newline at end of file From 8291554a9e577389286b544ed71f604984df47d8 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 4 Nov 2025 10:42:39 +0100 Subject: [PATCH 02/24] Testing --- docker-compose.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 1c04d1e..2652915 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -11,10 +11,10 @@ services: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--providers.docker.network=prod-proxy" - - "--entryPoints.web.address=:81" + - "--entryPoints.web.address=:80" ports: - - "81:81" - - "8080:8080" + - "80" + - "8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" From adfa1b582a5b9997b7880901bfb51132c20080c4 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 4 Nov 2025 16:03:52 +0100 Subject: [PATCH 03/24] WIP add new port for PR --- .gitea/workflows/workflow.yaml | 2 +- docker-compose-pr.yaml | 4 ++++ docker-compose.yaml | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 docker-compose-pr.yaml diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml index 413538e..a8a76cd 100644 --- a/.gitea/workflows/workflow.yaml +++ b/.gitea/workflows/workflow.yaml @@ -114,7 +114,7 @@ jobs: chmod 644 ~/.ssh/known_hosts - name: Run docker-compose on remote host - run: ssh -p "$SSH_PORT" $SSH_USER@$SSH_HOST "cd '${{ needs.prepare_deployment_vars.outputs.deploy_path }}' && docker-compose up -d --build" + run: ssh -p "$SSH_PORT" $SSH_USER@$SSH_HOST "cd '${{ needs.prepare_deployment_vars.outputs.deploy_path }}' && docker-compose up -f docker-compose.yaml -f docker-compose-pr.yaml -d --build" cleanup_mr_environment: name: Cleanup MR environment diff --git a/docker-compose-pr.yaml b/docker-compose-pr.yaml new file mode 100644 index 0000000..a56b9d2 --- /dev/null +++ b/docker-compose-pr.yaml @@ -0,0 +1,4 @@ +services: + traefik: + ports: + - "8001:80" \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 2652915..b819a46 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -13,8 +13,8 @@ services: - "--providers.docker.network=prod-proxy" - "--entryPoints.web.address=:80" ports: - - "80" - - "8080" + - "80:80" + - "8080:8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" From c93b64631ceae2b4ba6b9c21ca3d85c82dd9d23f Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 4 Nov 2025 16:05:48 +0100 Subject: [PATCH 04/24] Fix typo --- .gitea/workflows/workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml index a8a76cd..32f69c1 100644 --- a/.gitea/workflows/workflow.yaml +++ b/.gitea/workflows/workflow.yaml @@ -114,7 +114,7 @@ jobs: chmod 644 ~/.ssh/known_hosts - name: Run docker-compose on remote host - run: ssh -p "$SSH_PORT" $SSH_USER@$SSH_HOST "cd '${{ needs.prepare_deployment_vars.outputs.deploy_path }}' && docker-compose up -f docker-compose.yaml -f docker-compose-pr.yaml -d --build" + run: ssh -p "$SSH_PORT" $SSH_USER@$SSH_HOST "cd '${{ needs.prepare_deployment_vars.outputs.deploy_path }}' && docker-compose -f docker-compose.yaml -f docker-compose-pr.yaml up -d --build" cleanup_mr_environment: name: Cleanup MR environment From c4eef0ff42a667b0ea437e86f76e11461e39afba Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 4 Nov 2025 16:07:25 +0100 Subject: [PATCH 05/24] Override 8080 as well --- docker-compose-pr.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose-pr.yaml b/docker-compose-pr.yaml index a56b9d2..0c86ee1 100644 --- a/docker-compose-pr.yaml +++ b/docker-compose-pr.yaml @@ -1,4 +1,5 @@ services: traefik: ports: - - "8001:80" \ No newline at end of file + - "8001:80" + - "8080" \ No newline at end of file From 4631f2dc44530bfdffed4fb860cad5888b584cda Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 4 Nov 2025 16:08:57 +0100 Subject: [PATCH 06/24] Modified port --- docker-compose-pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-pr.yaml b/docker-compose-pr.yaml index 0c86ee1..07996e3 100644 --- a/docker-compose-pr.yaml +++ b/docker-compose-pr.yaml @@ -2,4 +2,4 @@ services: traefik: ports: - "8001:80" - - "8080" \ No newline at end of file + - "12473:8080" \ No newline at end of file From 4a27c2445c9c69b3ae0e7bf3dfcbdd2d76c2dab9 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Fri, 7 Nov 2025 21:43:26 +0100 Subject: [PATCH 07/24] Add override --- docker-compose-pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-pr.yaml b/docker-compose-pr.yaml index 07996e3..2d739ba 100644 --- a/docker-compose-pr.yaml +++ b/docker-compose-pr.yaml @@ -1,5 +1,5 @@ services: traefik: - ports: + ports: !override - "8001:80" - "12473:8080" \ No newline at end of file From 8cc7e7c61b47dd5de7138c3a73c9255781669ea8 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 09:05:58 +0100 Subject: [PATCH 08/24] Renamed network --- docker-compose.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index b819a46..e9cb93b 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,11 +6,11 @@ services: security_opt: - no-new-privileges:true networks: - - prod-proxy + - proxy command: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - - "--providers.docker.network=prod-proxy" + - "--providers.docker.network=proxy" - "--entryPoints.web.address=:80" ports: - "80:80" @@ -22,11 +22,11 @@ services: image: "traefik/whoami" restart: unless-stopped networks: - - prod-proxy + - proxy labels: - "traefik.enable=true" - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" - "traefik.http.routers.whoami.entrypoints=web" networks: - prod-proxy: \ No newline at end of file + proxy: From e622e01b46cf127c759e51a07c42c7e3eee16ac9 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 10:01:12 +0100 Subject: [PATCH 09/24] Test --- docker-compose.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index e9cb93b..e3e2297 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -27,6 +27,14 @@ services: - "traefik.enable=true" - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" - "traefik.http.routers.whoami.entrypoints=web" - + test: + image: ghcr.io/kljensen/hello-world-http:latest + restart: unless-stopped + networks: + - proxy + labels: + - "traefik.enable=true" + - "traefik.http.routers.test.rule=Host(`test.docker.localhost`)" + - "traefik.http.routers.test.entrypoints=web" networks: proxy: From 485b6e212282f82c3f22a1376aec267b09236e95 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 10:06:29 +0100 Subject: [PATCH 10/24] Moved entrypoint ? --- docker-compose.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index e3e2297..52a57a6 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -11,7 +11,7 @@ services: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--providers.docker.network=proxy" - - "--entryPoints.web.address=:80" + - "--entryPoints.test.address=:80" ports: - "80:80" - "8080:8080" @@ -26,7 +26,7 @@ services: labels: - "traefik.enable=true" - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" - - "traefik.http.routers.whoami.entrypoints=web" + - "traefik.http.routers.whoami.entrypoints=test" test: image: ghcr.io/kljensen/hello-world-http:latest restart: unless-stopped @@ -35,6 +35,6 @@ services: labels: - "traefik.enable=true" - "traefik.http.routers.test.rule=Host(`test.docker.localhost`)" - - "traefik.http.routers.test.entrypoints=web" + - "traefik.http.routers.test.entrypoints=test" networks: proxy: From f7a69335d0ba106e901647e93078d3ea5335f056 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 10:11:03 +0100 Subject: [PATCH 11/24] Changed network for test --- docker-compose.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 52a57a6..ed38a78 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,11 +6,11 @@ services: security_opt: - no-new-privileges:true networks: - - proxy + - testnetwork command: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - - "--providers.docker.network=proxy" + - "--providers.docker.network=testnetwork" - "--entryPoints.test.address=:80" ports: - "80:80" @@ -22,7 +22,7 @@ services: image: "traefik/whoami" restart: unless-stopped networks: - - proxy + - testnetwork labels: - "traefik.enable=true" - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" @@ -31,10 +31,10 @@ services: image: ghcr.io/kljensen/hello-world-http:latest restart: unless-stopped networks: - - proxy + - testnetwork labels: - "traefik.enable=true" - "traefik.http.routers.test.rule=Host(`test.docker.localhost`)" - "traefik.http.routers.test.entrypoints=test" networks: - proxy: + testnetwork: From 39f37a2c4e4d1ec3bbc6f98a84b0c69b93164424 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 10:16:04 +0100 Subject: [PATCH 12/24] Added env limitation --- docker-compose.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yaml b/docker-compose.yaml index ed38a78..c0af68d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -11,6 +11,7 @@ services: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--providers.docker.network=testnetwork" + - --providers.docker.constraints=Label(`env`, `pr`) - "--entryPoints.test.address=:80" ports: - "80:80" @@ -24,6 +25,7 @@ services: networks: - testnetwork labels: + - "env=pr" - "traefik.enable=true" - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" - "traefik.http.routers.whoami.entrypoints=test" From 97a0354be50f84b019da7f6dde07c64e5a220a70 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 10:17:42 +0100 Subject: [PATCH 13/24] Added env limitation for test as well --- docker-compose.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yaml b/docker-compose.yaml index c0af68d..1921fde 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -35,6 +35,7 @@ services: networks: - testnetwork labels: + - "env=pr" - "traefik.enable=true" - "traefik.http.routers.test.rule=Host(`test.docker.localhost`)" - "traefik.http.routers.test.entrypoints=test" From 0d20520c077672edc2ef074dbcc6d737cde0a296 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 10:22:29 +0100 Subject: [PATCH 14/24] Added test port --- docker-compose.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 1921fde..a2ba894 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -11,7 +11,7 @@ services: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--providers.docker.network=testnetwork" - - --providers.docker.constraints=Label(`env`, `pr`) + - "--providers.docker.constraints=Label(`env`, `pr`)" - "--entryPoints.test.address=:80" ports: - "80:80" @@ -34,6 +34,8 @@ services: restart: unless-stopped networks: - testnetwork + ports: + - "80" labels: - "env=pr" - "traefik.enable=true" From 634d3ac389fc5f81a285fb0bcdcbae538a4a60fd Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 10:25:26 +0100 Subject: [PATCH 15/24] Changed image --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index a2ba894..a51a59d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -30,7 +30,7 @@ services: - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" - "traefik.http.routers.whoami.entrypoints=test" test: - image: ghcr.io/kljensen/hello-world-http:latest + image: nginx restart: unless-stopped networks: - testnetwork From ff6ec619c51d47ff6e43e9a7b1d4bd89ff2d3327 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 10:59:57 +0100 Subject: [PATCH 16/24] Add environment blocks --- .gitea/workflows/workflow.yaml | 33 ++++++++++++++++++++++++++++----- dev.env | 3 +++ docker-compose-pr.yaml | 5 ----- docker-compose.yaml | 10 +++++----- prod.env | 3 +++ 5 files changed, 39 insertions(+), 15 deletions(-) create mode 100644 dev.env delete mode 100644 docker-compose-pr.yaml create mode 100644 prod.env diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml index 32f69c1..fbb58b7 100644 --- a/.gitea/workflows/workflow.yaml +++ b/.gitea/workflows/workflow.yaml @@ -90,13 +90,12 @@ jobs: source: "./" target: "${{ needs.prepare_deployment_vars.outputs.deploy_path }}" - run_docker_compose: - name: Run docker-compose remotely + run_docker_compose_dev: + name: Run docker-compose remotely (Dev) runs-on: ubuntu-latest needs: [sync_repo_files, prepare_deployment_vars] if: | - (github.event_name == 'pull_request' && github.event.action != 'closed' && github.event.pull_request.merged == false) - || github.ref == 'refs/heads/main' + (github.event_name == 'pull_request' && github.event.action != 'closed' && github.event.pull_request.merged == false)' steps: - name: Setup SSH uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1 @@ -114,7 +113,31 @@ jobs: chmod 644 ~/.ssh/known_hosts - name: Run docker-compose on remote host - run: ssh -p "$SSH_PORT" $SSH_USER@$SSH_HOST "cd '${{ needs.prepare_deployment_vars.outputs.deploy_path }}' && docker-compose -f docker-compose.yaml -f docker-compose-pr.yaml up -d --build" + run: ssh -p "$SSH_PORT" $SSH_USER@$SSH_HOST "cd '${{ needs.prepare_deployment_vars.outputs.deploy_path }}' && docker-compose --env-file dev.env -f docker-compose.yaml up -d --build" + run_docker_compose_prod: + name: Run docker-compose remotely (Prod) + runs-on: ubuntu-latest + needs: [sync_repo_files, prepare_deployment_vars] + if: | + (github.ref == 'refs/heads/main') + steps: + - name: Setup SSH + uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1 + with: + ssh-private-key: ${{ env.SSH_PRIVATE_KEY }} + + - name: Add host to known_hosts + run: | + mkdir -p ~/.ssh + chmod 700 ~/.ssh + ssh-keyscan -p "$SSH_PORT" -T 10 -H "$SSH_HOST" >> ~/.ssh/known_hosts 2>/dev/null || { + echo "::error::Failed to ssh-keyscan $SSH_HOST:$SSH_PORT" + exit 1 + } + chmod 644 ~/.ssh/known_hosts + + - name: Run docker-compose on remote host + run: ssh -p "$SSH_PORT" $SSH_USER@$SSH_HOST "cd '${{ needs.prepare_deployment_vars.outputs.deploy_path }}' && docker-compose --env-file prod.env -f docker-compose.yaml up -d --build" cleanup_mr_environment: name: Cleanup MR environment diff --git a/dev.env b/dev.env new file mode 100644 index 0000000..3ec5165 --- /dev/null +++ b/dev.env @@ -0,0 +1,3 @@ +PORT=898 +ENV=dev +NETWORK_NAME=proxy \ No newline at end of file diff --git a/docker-compose-pr.yaml b/docker-compose-pr.yaml deleted file mode 100644 index 2d739ba..0000000 --- a/docker-compose-pr.yaml +++ /dev/null @@ -1,5 +0,0 @@ -services: - traefik: - ports: !override - - "8001:80" - - "12473:8080" \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index a51a59d..3ab34ee 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -11,11 +11,11 @@ services: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--providers.docker.network=testnetwork" - - "--providers.docker.constraints=Label(`env`, `pr`)" + - "--providers.docker.constraints=Label(`env`, `${ENV}`)" - "--entryPoints.test.address=:80" ports: - - "80:80" - - "8080:8080" + - "${PORT}:80" + - "8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" @@ -25,7 +25,7 @@ services: networks: - testnetwork labels: - - "env=pr" + - "env=${ENV}" - "traefik.enable=true" - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" - "traefik.http.routers.whoami.entrypoints=test" @@ -37,7 +37,7 @@ services: ports: - "80" labels: - - "env=pr" + - "env=${ENV}" - "traefik.enable=true" - "traefik.http.routers.test.rule=Host(`test.docker.localhost`)" - "traefik.http.routers.test.entrypoints=test" diff --git a/prod.env b/prod.env new file mode 100644 index 0000000..48065d2 --- /dev/null +++ b/prod.env @@ -0,0 +1,3 @@ +PORT=80 +ENV=prod +NETWORK_NAME=proxy \ No newline at end of file From 3360016a3150dc714cf5e2cde13df2b8fc8aa067 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 11:13:18 +0100 Subject: [PATCH 17/24] Change back to proxy --- docker-compose.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 3ab34ee..40b5bbe 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,11 +6,11 @@ services: security_opt: - no-new-privileges:true networks: - - testnetwork + - proxy command: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - - "--providers.docker.network=testnetwork" + - "--providers.docker.network=proxy" - "--providers.docker.constraints=Label(`env`, `${ENV}`)" - "--entryPoints.test.address=:80" ports: @@ -23,7 +23,7 @@ services: image: "traefik/whoami" restart: unless-stopped networks: - - testnetwork + - proxy labels: - "env=${ENV}" - "traefik.enable=true" @@ -33,7 +33,7 @@ services: image: nginx restart: unless-stopped networks: - - testnetwork + - proxy ports: - "80" labels: @@ -42,4 +42,4 @@ services: - "traefik.http.routers.test.rule=Host(`test.docker.localhost`)" - "traefik.http.routers.test.entrypoints=test" networks: - testnetwork: + proxy: From 4eef154b65748d65bd6648ba6283095502c7ac3a Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 11:14:41 +0100 Subject: [PATCH 18/24] Fix typo --- .gitea/workflows/workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml index fbb58b7..5e61bc2 100644 --- a/.gitea/workflows/workflow.yaml +++ b/.gitea/workflows/workflow.yaml @@ -95,7 +95,7 @@ jobs: runs-on: ubuntu-latest needs: [sync_repo_files, prepare_deployment_vars] if: | - (github.event_name == 'pull_request' && github.event.action != 'closed' && github.event.pull_request.merged == false)' + (github.event_name == 'pull_request' && github.event.action != 'closed' && github.event.pull_request.merged == false) steps: - name: Setup SSH uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1 From ea73b4208a6ef8fd5ba4af194d5b9fedde128a93 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 11:28:56 +0100 Subject: [PATCH 19/24] Minor cleanup and initial setup for staging env --- .gitea/workflows/workflow.yaml | 28 ++++++++++++++++++++++++++++ docker-compose.yaml | 12 ------------ staging.env | 3 +++ 3 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 staging.env diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml index 5e61bc2..096d775 100644 --- a/.gitea/workflows/workflow.yaml +++ b/.gitea/workflows/workflow.yaml @@ -15,6 +15,8 @@ env: # Set the absolute path for your production deployment on the remote server. REMOTE_PROD_PATH: /var/app/traefik/prod + REMOTE_STAGING_PATH: /var/app/traefik/staging + SSH_HOST: ${{ secrets.SSH_HOST }} SSH_USER: ${{ secrets.SSH_USER }} SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} @@ -114,6 +116,32 @@ jobs: - name: Run docker-compose on remote host run: ssh -p "$SSH_PORT" $SSH_USER@$SSH_HOST "cd '${{ needs.prepare_deployment_vars.outputs.deploy_path }}' && docker-compose --env-file dev.env -f docker-compose.yaml up -d --build" + + run_docker_compose_staging: + name: Run docker-compose remotely (Staging) + runs-on: ubuntu-latest + needs: [sync_repo_files, prepare_deployment_vars] + # if: | + # (github.ref == 'refs/heads/main') + steps: + - name: Setup SSH + uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1 + with: + ssh-private-key: ${{ env.SSH_PRIVATE_KEY }} + + - name: Add host to known_hosts + run: | + mkdir -p ~/.ssh + chmod 700 ~/.ssh + ssh-keyscan -p "$SSH_PORT" -T 10 -H "$SSH_HOST" >> ~/.ssh/known_hosts 2>/dev/null || { + echo "::error::Failed to ssh-keyscan $SSH_HOST:$SSH_PORT" + exit 1 + } + chmod 644 ~/.ssh/known_hosts + + - name: Run docker-compose on remote host + run: ssh -p "$SSH_PORT" $SSH_USER@$SSH_HOST "cd '${REMOTE_STAGING_PATH}' && docker-compose --env-file staging.env -f docker-compose.yaml up -d --build" + run_docker_compose_prod: name: Run docker-compose remotely (Prod) runs-on: ubuntu-latest diff --git a/docker-compose.yaml b/docker-compose.yaml index 40b5bbe..850b20e 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -29,17 +29,5 @@ services: - "traefik.enable=true" - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" - "traefik.http.routers.whoami.entrypoints=test" - test: - image: nginx - restart: unless-stopped - networks: - - proxy - ports: - - "80" - labels: - - "env=${ENV}" - - "traefik.enable=true" - - "traefik.http.routers.test.rule=Host(`test.docker.localhost`)" - - "traefik.http.routers.test.entrypoints=test" networks: proxy: diff --git a/staging.env b/staging.env new file mode 100644 index 0000000..dc09e47 --- /dev/null +++ b/staging.env @@ -0,0 +1,3 @@ +PORT=8080 +ENV=staging +NETWORK_NAME=proxy \ No newline at end of file From fbaf97cc653dbbf1b02c41920e709bc4339eeca6 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 11:32:14 +0100 Subject: [PATCH 20/24] Fix pipeline --- .gitea/workflows/workflow.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml index 096d775..a89e7a6 100644 --- a/.gitea/workflows/workflow.yaml +++ b/.gitea/workflows/workflow.yaml @@ -92,6 +92,17 @@ jobs: source: "./" target: "${{ needs.prepare_deployment_vars.outputs.deploy_path }}" + - name: Sync file via scp (staging) + # if: github.ref == 'refs/heads/main' + uses: appleboy/scp-action@master + with: + host: ${{ env.SSH_HOST }} + username: ${{ env.SSH_USER }} + key: ${{ env.SSH_PRIVATE_KEY }} + port: ${{ env.SSH_PORT }} + source: "./" + target: "${REMOTE_STAGING_PATH}" + run_docker_compose_dev: name: Run docker-compose remotely (Dev) runs-on: ubuntu-latest From 80af066775ca3280cbc06704bc40747dceacfc21 Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 11:36:05 +0100 Subject: [PATCH 21/24] Fix pipeline2 --- .gitea/workflows/workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml index a89e7a6..4ed567b 100644 --- a/.gitea/workflows/workflow.yaml +++ b/.gitea/workflows/workflow.yaml @@ -101,7 +101,7 @@ jobs: key: ${{ env.SSH_PRIVATE_KEY }} port: ${{ env.SSH_PORT }} source: "./" - target: "${REMOTE_STAGING_PATH}" + target: ${{ env.REMOTE_STAGING_PATH }} run_docker_compose_dev: name: Run docker-compose remotely (Dev) From 628f5ddda4a2c4de1aa579262778d771045e094e Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 11:39:53 +0100 Subject: [PATCH 22/24] Changed prod port --- prod.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prod.env b/prod.env index 48065d2..571feb7 100644 --- a/prod.env +++ b/prod.env @@ -1,3 +1,3 @@ -PORT=80 +PORT=81 ENV=prod NETWORK_NAME=proxy \ No newline at end of file From c8a92f7ded87bdb7ba4e6ed811f70c4a1a1b7c2f Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 11:42:22 +0100 Subject: [PATCH 23/24] Renamed to web --- docker-compose.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 850b20e..fa52ef6 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -12,7 +12,7 @@ services: - "--providers.docker.exposedbydefault=false" - "--providers.docker.network=proxy" - "--providers.docker.constraints=Label(`env`, `${ENV}`)" - - "--entryPoints.test.address=:80" + - "--entryPoints.web.address=:80" ports: - "${PORT}:80" - "8080" @@ -28,6 +28,6 @@ services: - "env=${ENV}" - "traefik.enable=true" - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" - - "traefik.http.routers.whoami.entrypoints=test" + - "traefik.http.routers.whoami.entrypoints=web" networks: proxy: From bfa8d525a2a156cd60948542ffc747d9bd8379cc Mon Sep 17 00:00:00 2001 From: kovagoadi Date: Tue, 11 Nov 2025 11:43:44 +0100 Subject: [PATCH 24/24] Turned on staging restrictions --- .gitea/workflows/workflow.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml index 4ed567b..577ee6a 100644 --- a/.gitea/workflows/workflow.yaml +++ b/.gitea/workflows/workflow.yaml @@ -93,7 +93,7 @@ jobs: target: "${{ needs.prepare_deployment_vars.outputs.deploy_path }}" - name: Sync file via scp (staging) - # if: github.ref == 'refs/heads/main' + if: github.ref == 'refs/heads/main' uses: appleboy/scp-action@master with: host: ${{ env.SSH_HOST }} @@ -132,8 +132,8 @@ jobs: name: Run docker-compose remotely (Staging) runs-on: ubuntu-latest needs: [sync_repo_files, prepare_deployment_vars] - # if: | - # (github.ref == 'refs/heads/main') + if: | + (github.ref == 'refs/heads/main') steps: - name: Setup SSH uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1