From d3a63ca8a84bf4583bac8f5fd09bd52774bc4158 Mon Sep 17 00:00:00 2001 From: SayaAndy Date: Sat, 2 May 2026 15:06:44 +0700 Subject: feat: migrate to uz.saya.casa --- deploy/inventory.yml | 20 ++++++++++---------- deploy/playbook.yml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'deploy') diff --git a/deploy/inventory.yml b/deploy/inventory.yml index a1ecf5d..d3acab8 100644 --- a/deploy/inventory.yml +++ b/deploy/inventory.yml @@ -3,17 +3,17 @@ all: prod: hosts: node_prod: - ansible_host: pl.saya.today - saya_today_web_name: sayana-web - saya_today_web_hostname: sayana-web - saya_today_web_ipv4_address: 172.16.0.18 - saya_today_web_listen_address: saya.today + ansible_host: uz.saya.casa + saya_today_web_name: sayauz-prod + saya_today_web_hostname: sayauz-prod + saya_today_web_ipv4_address: 172.16.0.17 + saya_today_web_listen_address: saya.uz stage: hosts: node_stage: - ansible_host: pl.saya.today - saya_today_web_name: sayana-demo - saya_today_web_hostname: sayana-demo - saya_today_web_ipv4_address: 172.16.0.17 - saya_today_web_listen_address: demo.saya.today + ansible_host: uz.saya.casa + saya_today_web_name: sayauz-stage + saya_today_web_hostname: sayauz-stage + saya_today_web_ipv4_address: 172.16.0.18 + saya_today_web_listen_address: stage.saya.uz diff --git a/deploy/playbook.yml b/deploy/playbook.yml index b0202bd..8fb9088 100644 --- a/deploy/playbook.yml +++ b/deploy/playbook.yml @@ -2,7 +2,7 @@ - name: Deploy saya-today-web Docker Container hosts: all remote_user: svc_github - + tasks: - name: Create a volume community.docker.docker_volume: -- cgit v1.3.1+13 From 507bcbac6b1bf9f1a731afbe82bec10700f4028c Mon Sep 17 00:00:00 2001 From: SayaAndy Date: Sat, 2 May 2026 20:28:02 +0700 Subject: feat: integrate unix sockets into stage & prod --- config/config.prod.yaml | 5 +++-- config/config.stage.yaml | 5 +++-- deploy/inventory.yml | 2 ++ deploy/playbook.yml | 23 ++++++++++++++++++++--- internal/router/router.go | 7 +------ 5 files changed, 29 insertions(+), 13 deletions(-) (limited to 'deploy') diff --git a/config/config.prod.yaml b/config/config.prod.yaml index 0b45e1a..2daa3ff 100644 --- a/config/config.prod.yaml +++ b/config/config.prod.yaml @@ -1,8 +1,9 @@ logLevel: info endpoint: - type: http + type: unix config: - listenOn: ":3000" + path: "/etc/sayauz/prod.socket" + chmod: '0666' blogPages: storage: type: b2 diff --git a/config/config.stage.yaml b/config/config.stage.yaml index 23b76aa..151bb4a 100644 --- a/config/config.stage.yaml +++ b/config/config.stage.yaml @@ -1,8 +1,9 @@ logLevel: debug endpoint: - type: http + type: unix config: - listenOn: ":3000" + path: "/etc/sayauz/stage.socket" + chmod: '0666' blogPages: storage: type: b2 diff --git a/deploy/inventory.yml b/deploy/inventory.yml index d3acab8..6b8a384 100644 --- a/deploy/inventory.yml +++ b/deploy/inventory.yml @@ -8,6 +8,7 @@ all: saya_today_web_hostname: sayauz-prod saya_today_web_ipv4_address: 172.16.0.17 saya_today_web_listen_address: saya.uz + saya_today_web_unix_sockets_mount: '/etc/sayauz' stage: hosts: @@ -17,3 +18,4 @@ all: saya_today_web_hostname: sayauz-stage saya_today_web_ipv4_address: 172.16.0.18 saya_today_web_listen_address: stage.saya.uz + saya_today_web_unix_sockets_mount: '/etc/sayauz' diff --git a/deploy/playbook.yml b/deploy/playbook.yml index 8fb9088..9719ed9 100644 --- a/deploy/playbook.yml +++ b/deploy/playbook.yml @@ -2,9 +2,27 @@ - name: Deploy saya-today-web Docker Container hosts: all remote_user: svc_github + + vars: + docker_volumes: + - "{{ saya_today_web_name }}-volume:/data:rw" tasks: - - name: Create a volume + - name: Initialize Unix socket volume + when: >- + saya_today_web_unix_sockets_path is defined and + saya_today_web_unix_sockets_path is string and + saya_today_web_unix_sockets_path | length > 0 + block: + - name: Ensure Unix socket volume exists + community.docker.docker_volume: + name: "sayana_sockets" + - name: Include Unix socket volume in docker volumes list + ansible.builtin.set_fact: + docker_volumes: >- + {{ docker_volumes + ["sayana_sockets:" ~ saya_today_web_unix_sockets_path ~ ":rw"] }} + + - name: Create a data volume community.docker.docker_volume: name: "{{ saya_today_web_name }}-volume" @@ -29,8 +47,7 @@ networks: - name: caddy ipv4_address: "{{ saya_today_web_ipv4_address }}" - volumes: - - "{{ saya_today_web_name }}-volume:/data:rw" + volumes: "{{ docker_volumes }}" restart_policy: unless-stopped no_log: true ... diff --git a/internal/router/router.go b/internal/router/router.go index 2b45761..14973ad 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -433,12 +433,7 @@ func (r *Router) Close() (err error) { } slog.Debug("closing page cache") r.supplements.PageCache.Close() - if r.endpoint.Type == "unix" { - slog.Debug("closing unix socket") - if err = os.Remove(r.endpoint.Config.(*config.UnixConfig).Path); err != nil { - allErrors = append(allErrors, fmt.Errorf("fail to close unix socket: %w", err)) - } - } + return errors.Join(allErrors...) } -- cgit v1.3.1+13 From 06b584d66991cc8f0aefce685b65291ad9a59901 Mon Sep 17 00:00:00 2001 From: SayaAndy Date: Sat, 2 May 2026 20:36:34 +0700 Subject: fix: unix socket path var name --- deploy/inventory.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'deploy') diff --git a/deploy/inventory.yml b/deploy/inventory.yml index 6b8a384..0a63140 100644 --- a/deploy/inventory.yml +++ b/deploy/inventory.yml @@ -8,7 +8,7 @@ all: saya_today_web_hostname: sayauz-prod saya_today_web_ipv4_address: 172.16.0.17 saya_today_web_listen_address: saya.uz - saya_today_web_unix_sockets_mount: '/etc/sayauz' + saya_today_web_unix_sockets_path: '/etc/sayauz' stage: hosts: @@ -18,4 +18,4 @@ all: saya_today_web_hostname: sayauz-stage saya_today_web_ipv4_address: 172.16.0.18 saya_today_web_listen_address: stage.saya.uz - saya_today_web_unix_sockets_mount: '/etc/sayauz' + saya_today_web_unix_sockets_path: '/etc/sayauz' -- cgit v1.3.1+13 From 2e53d0a1c5ff42a88acbede28220010f0237e855 Mon Sep 17 00:00:00 2001 From: SayaAndy Date: Sat, 2 May 2026 22:18:41 +0700 Subject: fix: use s3 key pair in prod & stage envs --- .github/workflows/build-and-deploy-prod.yml | 2 +- .github/workflows/build-and-deploy-stage.yml | 2 +- deploy/playbook.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'deploy') diff --git a/.github/workflows/build-and-deploy-prod.yml b/.github/workflows/build-and-deploy-prod.yml index d89cc76..381d656 100644 --- a/.github/workflows/build-and-deploy-prod.yml +++ b/.github/workflows/build-and-deploy-prod.yml @@ -80,4 +80,4 @@ jobs: ANSIBLE_HOST_KEY_CHECKING: False working-directory: ./deploy run: | - ansible-playbook -i inventory.yml -l prod playbook.yml --private-key ~/.ssh/id_ed25519 -u svc_github -e saya_today_web_auth_salt="${{ secrets.AUTH_SALT }}" -e saya_today_web_b2_key_id="${{ secrets.B2_KEY_ID }}" -e saya_today_web_b2_application_key="${{ secrets.B2_APPLICATION_KEY }}" -e saya_today_web_environment=prod -e saya_today_web_tag=${{ github.ref_name }} -e saya_today_web_mail_salt="${{ secrets.MAIL_SALT }}" -e saya_today_web_mail_host="${{ secrets.MAIL_HOST }}" -e saya_today_web_mail_address="${{ secrets.MAIL_ADDRESS }}" -e saya_today_web_mail_username="${{ secrets.MAIL_USERNAME }}" -e saya_today_web_mail_password="${{ secrets.MAIL_PASSWORD }}" -e saya_today_google_site_verification="${{ secrets.GOOGLE_SITE_VERIFICATION }}" + ansible-playbook -i inventory.yml -l prod playbook.yml --private-key ~/.ssh/id_ed25519 -u svc_github -e saya_today_web_auth_salt="${{ secrets.AUTH_SALT }}" -e saya_today_web_s3_access_key_id="${{ secrets.S3_ACCESS_KEY_ID }}" -e saya_today_web_s3_secret_access_key="${{ secrets.S3_SECRET_ACCESS_KEY }}" -e saya_today_web_environment=prod -e saya_today_web_tag=${{ github.ref_name }} -e saya_today_web_mail_salt="${{ secrets.MAIL_SALT }}" -e saya_today_web_mail_host="${{ secrets.MAIL_HOST }}" -e saya_today_web_mail_address="${{ secrets.MAIL_ADDRESS }}" -e saya_today_web_mail_username="${{ secrets.MAIL_USERNAME }}" -e saya_today_web_mail_password="${{ secrets.MAIL_PASSWORD }}" -e saya_today_google_site_verification="${{ secrets.GOOGLE_SITE_VERIFICATION }}" diff --git a/.github/workflows/build-and-deploy-stage.yml b/.github/workflows/build-and-deploy-stage.yml index e699856..ffee091 100644 --- a/.github/workflows/build-and-deploy-stage.yml +++ b/.github/workflows/build-and-deploy-stage.yml @@ -86,4 +86,4 @@ jobs: ANSIBLE_HOST_KEY_CHECKING: False working-directory: ./deploy run: | - ansible-playbook -i inventory.yml -l stage playbook.yml --private-key ~/.ssh/id_ed25519 -u svc_github -e saya_today_web_auth_salt="${{ secrets.AUTH_SALT }}" -e saya_today_web_b2_key_id="${{ secrets.B2_KEY_ID }}" -e saya_today_web_b2_application_key="${{ secrets.B2_APPLICATION_KEY }}" -e saya_today_web_environment=stage -e saya_today_web_tag=commit-${{ steps.ghss_vars.outputs.sha_short }} -e saya_today_web_mail_salt="${{ secrets.MAIL_SALT }}" -e saya_today_web_mail_host="${{ secrets.MAIL_HOST }}" -e saya_today_web_mail_address="${{ secrets.MAIL_ADDRESS }}" -e saya_today_web_mail_username="${{ secrets.MAIL_USERNAME }}" -e saya_today_web_mail_password="${{ secrets.MAIL_PASSWORD }}" + ansible-playbook -i inventory.yml -l stage playbook.yml --private-key ~/.ssh/id_ed25519 -u svc_github -e saya_today_web_auth_salt="${{ secrets.AUTH_SALT }}" -e saya_today_web_s3_access_key_id="${{ secrets.S3_ACCESS_KEY_ID }}" -e saya_today_web_s3_secret_access_key="${{ secrets.S3_SECRET_ACCESS_KEY }}" -e saya_today_web_environment=stage -e saya_today_web_tag=commit-${{ steps.ghss_vars.outputs.sha_short }} -e saya_today_web_mail_salt="${{ secrets.MAIL_SALT }}" -e saya_today_web_mail_host="${{ secrets.MAIL_HOST }}" -e saya_today_web_mail_address="${{ secrets.MAIL_ADDRESS }}" -e saya_today_web_mail_username="${{ secrets.MAIL_USERNAME }}" -e saya_today_web_mail_password="${{ secrets.MAIL_PASSWORD }}" diff --git a/deploy/playbook.yml b/deploy/playbook.yml index 9719ed9..b73146a 100644 --- a/deploy/playbook.yml +++ b/deploy/playbook.yml @@ -32,8 +32,8 @@ hostname: "{{ saya_today_web_hostname }}" image: "ghcr.io/sayaandy/saya-today-web:{{ saya_today_web_tag }}" env: - B2_KEY_ID: "{{ saya_today_web_b2_key_id }}" - B2_APPLICATION_KEY: "{{ saya_today_web_b2_application_key }}" + S3_ACCESS_KEY_ID: "{{ saya_today_web_s3_access_key_id }}" + S3_SECRET_ACCESS_KEY: "{{ saya_today_web_s3_secret_access_key }}" ENVIRONMENT: "{{ saya_today_web_environment }}" AUTH_SALT: "{{ saya_today_web_auth_salt }}" MAIL_HOST: "{{ saya_today_web_mail_host }}" -- cgit v1.3.1+13