feat(deploy): Webhook, Build-Skript, nginx, Traefik
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
30f4ddc0f4
commit
906bdf1033
7 files changed
+1084
No files matched your search
@@ -0,0 +1,81 @@
|
||||
# ==============================================
|
||||
# AIRCARD-IOS.ORG - Automatisches Deployment aus Gitea
|
||||
# URL: aircard-ios.org
|
||||
# Repository: https://git.webklar.com/knso/AirCardIOS
|
||||
# Einfügen unter `services:` direkt nach dem eship-Block (siehe deploy/README.md).
|
||||
# Starten NUR mit: docker compose up -d aircard-build aircard
|
||||
# (ein nacktes `up -d` würde andere Dienste wieder anlegen)
|
||||
# Die Appwrite-Route liegt als Datei in traefik/dynamic/aircard.yml.
|
||||
# ==============================================
|
||||
aircard-build:
|
||||
image: node:22-alpine
|
||||
container_name: webklar-aircard-build
|
||||
restart: unless-stopped
|
||||
init: true
|
||||
mem_limit: 768m
|
||||
working_dir: /app
|
||||
environment:
|
||||
- GITEA_URL=https://git.webklar.com
|
||||
- GITEA_USER=knso
|
||||
- GITEA_REPO=AirCardIOS
|
||||
- GITEA_TOKEN=${GITEA_DEPLOY_TOKEN}
|
||||
- APP_SUBDIR=web
|
||||
- DEPLOY_BRANCH=main
|
||||
- AIRCARD_DEPLOY_BRANCH=main
|
||||
- AIRCARD_WEBHOOK_TOKEN=${GITEA_DEPLOY_WEBHOOK_SECRET}
|
||||
- AIRCARD_WEBHOOK_PORT=8087
|
||||
- AIRCARD_DEPLOY_SCRIPT=/deploy.sh
|
||||
- POLL_INTERVAL_MINUTES=15
|
||||
- NODE_OPTIONS=--max-old-space-size=512
|
||||
- VITE_APPWRITE_ENDPOINT=https://aircard-ios.org/v1
|
||||
- VITE_APPWRITE_PROJECT_ID=aircard
|
||||
volumes:
|
||||
- ./aircard-ios.org/build:/app
|
||||
- ./aircard-ios.org/out:/out
|
||||
- ./aircard-ios.org/deploy.sh:/deploy.sh:ro
|
||||
- ./aircard-ios.org/webhook-server.js:/webhook/server.js:ro
|
||||
networks:
|
||||
- webklar-network
|
||||
command: /bin/sh -c "apk add --no-cache git && node /webhook/server.js"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.aircard-webhook.rule=Host(`aircard-ios.org`) && Path(`/webhook/deploy`)"
|
||||
- "traefik.http.routers.aircard-webhook.entrypoints=websecure"
|
||||
- "traefik.http.routers.aircard-webhook.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.aircard-webhook.priority=200"
|
||||
- "traefik.http.services.aircard-webhook.loadbalancer.server.port=8087"
|
||||
|
||||
aircard:
|
||||
image: nginx:alpine
|
||||
container_name: webklar-aircard
|
||||
restart: unless-stopped
|
||||
mem_limit: 64m
|
||||
volumes:
|
||||
- ./aircard-ios.org/out:/usr/share/nginx/html:ro
|
||||
- ./aircard-ios.org/nginx/aircard-ios.org.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
networks:
|
||||
- webklar-network
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.aircard.rule=Host(`aircard-ios.org`)"
|
||||
- "traefik.http.routers.aircard.entrypoints=websecure"
|
||||
- "traefik.http.routers.aircard.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.aircard.loadbalancer.server.port=80"
|
||||
- "traefik.http.middlewares.aircard-https.redirectscheme.scheme=https"
|
||||
- "traefik.http.middlewares.aircard-https.redirectscheme.permanent=true"
|
||||
- "traefik.http.routers.aircard-http.rule=Host(`aircard-ios.org`)"
|
||||
- "traefik.http.routers.aircard-http.entrypoints=web"
|
||||
- "traefik.http.routers.aircard-http.middlewares=aircard-https"
|
||||
# --- www (Step 10): erst einkommentieren, wenn www.aircard-ios.org per DNS auf 91.99.156.85 zeigt.
|
||||
# Eigene Router, damit ein www-Fehler (Zertifikat) die Hauptdomain nicht blockiert.
|
||||
# `$$` ist das Escape für ein einzelnes `$` in docker compose; `\\.` ergibt im YAML ein `\.`.
|
||||
# - "traefik.http.routers.aircard-www.rule=Host(`www.aircard-ios.org`)"
|
||||
# - "traefik.http.routers.aircard-www.entrypoints=websecure"
|
||||
# - "traefik.http.routers.aircard-www.tls.certresolver=letsencrypt"
|
||||
# - "traefik.http.routers.aircard-www.middlewares=aircard-www"
|
||||
# - "traefik.http.routers.aircard-www-http.rule=Host(`www.aircard-ios.org`)"
|
||||
# - "traefik.http.routers.aircard-www-http.entrypoints=web"
|
||||
# - "traefik.http.routers.aircard-www-http.middlewares=aircard-www"
|
||||
# - "traefik.http.middlewares.aircard-www.redirectregex.regex=^https?://www\\.aircard-ios\\.org(.*)"
|
||||
# - "traefik.http.middlewares.aircard-www.redirectregex.replacement=https://aircard-ios.org$${1}"
|
||||
# - "traefik.http.middlewares.aircard-www.redirectregex.permanent=true"
|
||||
Reference in new issue
Block a user