From 3678b371333b3b7731dcd7dc9fe8ae25d5e807c8 Mon Sep 17 00:00:00 2001 From: Timothy Kim Date: Fri, 10 Apr 2026 15:49:54 -0400 Subject: [PATCH] add kgfamily.com --- .gitea/workflows/deploy-kgfamily.com.yml | 19 +++++++++ docker/kgfamily.com/compose.yml | 11 +++++ docker/nginx/conf.d/kgfamily.com.conf | 54 ++++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 .gitea/workflows/deploy-kgfamily.com.yml create mode 100644 docker/kgfamily.com/compose.yml create mode 100644 docker/nginx/conf.d/kgfamily.com.conf diff --git a/.gitea/workflows/deploy-kgfamily.com.yml b/.gitea/workflows/deploy-kgfamily.com.yml new file mode 100644 index 0000000..bdf78c4 --- /dev/null +++ b/.gitea/workflows/deploy-kgfamily.com.yml @@ -0,0 +1,19 @@ +name: Deploy kgfamily.com + +on: + push: + branches: [main] + paths: + - 'docker/kgfamily.com/**' + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Deploy via SSH + run: | + mkdir -p ~/.ssh + echo "${{ vars.DEPLOY_HOST_KEY }}" > ~/.ssh/known_hosts + echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/deploy_key + chmod 600 ~/.ssh/deploy_key + ssh -o StrictHostKeyChecking=yes -i ~/.ssh/deploy_key deploy@${{ vars.DEPLOY_HOST }} deploy-kgfamily.com diff --git a/docker/kgfamily.com/compose.yml b/docker/kgfamily.com/compose.yml new file mode 100644 index 0000000..09f7f61 --- /dev/null +++ b/docker/kgfamily.com/compose.yml @@ -0,0 +1,11 @@ +services: + app: + image: git.timothykim.net/hantim/kgfamily.com:latest + restart: unless-stopped + container_name: kgfamily_com + networks: + - shared + +networks: + shared: + external: true diff --git a/docker/nginx/conf.d/kgfamily.com.conf b/docker/nginx/conf.d/kgfamily.com.conf new file mode 100644 index 0000000..cdc5f57 --- /dev/null +++ b/docker/nginx/conf.d/kgfamily.com.conf @@ -0,0 +1,54 @@ +# Redirect HTTP to HTTPS, bare domain to www +server { + listen 80; + listen [::]:80; + server_name kgfamily.com www.kgfamily.com; + + location /.well-known/acme-challenge/ { + root /var/www/certbot; + } + + location / { + return 301 https://www.kgfamily.com$request_uri; + } +} + +# Redirect bare HTTPS domain to www +server { + listen 443 ssl; + listen [::]:443 ssl; + http2 on; + server_name kgfamily.com; + + ssl_certificate /etc/letsencrypt/live/kgfamily.com/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/kgfamily.com/privkey.pem; + + return 301 https://www.kgfamily.com$request_uri; +} + +# Main site +server { + listen 443 ssl; + listen [::]:443 ssl; + http2 on; + server_name www.kgfamily.com; + + ssl_certificate /etc/letsencrypt/live/kgfamily.com/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/kgfamily.com/privkey.pem; + + include /etc/nginx/conf.d/security-headers.inc; + include /etc/nginx/conf.d/goatcounter.inc; + + location /media/ { + proxy_pass http://garage:3902/; + proxy_set_header Host kgfamily.com.web.garage; + } + + location / { + proxy_pass http://kgfamily_com:80; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +}