From 529d70dc0bcb8c2db5efbe12ac98ece8f67423cf Mon Sep 17 00:00:00 2001 From: colin Date: Mon, 29 Jan 2024 19:27:32 +0000 Subject: [PATCH] Update stack.production.yml --- stack.production.yml | 148 ++++++++++++++++++++++++++++--------------- 1 file changed, 97 insertions(+), 51 deletions(-) diff --git a/stack.production.yml b/stack.production.yml index 3880612..2863768 100644 --- a/stack.production.yml +++ b/stack.production.yml @@ -1,68 +1,114 @@ -version: '3.8' +version: "3.8" +x-environment: + &default-environment + REDIS_HOST: glitch_redis + DATABASE_URL: postgres://postgres:postgres@glitch_postgres:5432/postgres + SECRET_KEY: 4f99181d528f201c16806b34b980791f9a99570d645910dacfe31198b503ea2f # best to run openssl rand -hex 32 + PORT: 8000 + EMAIL_URL: smtp://glitch@nixc.us:G2BeHLDezu2Eg8x5aDy8MZ3RTLJoP6xJyvwDnFDMCrFxe7AWW5mAst96zvkcDq3R@box.p.nixc.us:465 # https://glitchtip.com/documentation/install#configuration + GLITCHTIP_DOMAIN: https://glitch.nixc.us # Change this to your domain + DEFAULT_FROM_EMAIL: glitch@nixc.us # Change this to your email + CELERY_WORKER_CONCURRENCY: 2 # Set to 2 to prevent excessive memory usage. Change it or remove to set it to the number of cpu cores. + ## custom config + GLITCHTIP_MAX_EVENT_LIFE_DAYS: 30 + GLITCHTIP_MAX_TRANSACTION_EVENT_LIFE_DAYS: 5 + GLITCHTIP_MAX_FILE_LIFE_DAYS: 5 + ENABLE_USER_REGISTRATION: "true" + ENABLE_ORGANIZATION_CREATION: "true" + ## gitea api b994dd8dd3162aa79db17bdb893a7c9271c63369 + # SOCIALACCOUNT_PROVIDERS_gitea_GITEA_URL: "https://git.nixc.us/" +x-depends_on: + &default-depends_on + - postgres + - redis services: - headscale: - image: git.nixc.us/colin/headscale:production + postgres: + image: postgres:15 + environment: + POSTGRES_HOST_AUTH_METHOD: "trust" volumes: - - /mnt/tank/persist/nixc.us/headscale/production/config:/etc/headscale/:rw - - /mnt/tank/persist/nixc.us/headscale/production/data:/var/lib/headscale/:rw - command: ["headscale", "serve"] + - /mnt/tank/persist/nixc.us/glitch/production/db:/var/lib/postgresql/data + deploy: + replicas: 1 + placement: + constraints: + - node.hostname == macmini1 + labels: + - "us.nixc.autodeploy=true" + - "traefik.enable=false" + networks: + - default + redis: + image: redis + deploy: + replicas: 1 + placement: + constraints: + # - node.hostname == macmini1 + - node.labels.mac-rack == true + labels: + - "us.nixc.autodeploy=true" + - "traefik.enable=false" + networks: + - default + web: + image: glitchtip/glitchtip + depends_on: *default-depends_on + environment: *default-environment + volumes: + - /mnt/tank/persist/nixc.us/glitch/production/uploads:/code/uploads + deploy: + replicas: 1 + placement: + constraints: + - node.hostname == macmini1 + labels: + - "us.nixc.autodeploy=true" + - "traefik.enable=true" + - "traefik.http.routers.glitch_glitch.tls=true" + - "traefik.http.services.glitch_glitch.loadbalancer.server.port=8000" + - "traefik.http.routers.glitch_glitch.rule=Host(`staging.glitch.nixc.us`)" + - "traefik.http.routers.glitch_glitch.entrypoints=websecure" + - "traefik.http.routers.glitch_glitch.tls.certresolver=letsencryptresolver" + - "traefik.http.routers.glitch_glitch.service=glitch_glitch" + - "traefik.docker.network=traefik" + # - 'traefik.http.routers.glitch_glitch.middlewares=authelia@docker' networks: - default - traefik - deploy: - placement: - constraints: - - node.hostname == macmini3 - labels: - us.nixc.autodeploy: "true" - traefik.enable: "true" - traefik.http.routers.production-headscale_headscale.rule: "Host(`headscale.nixc.us`)" - traefik.http.routers.production-headscale_headscale.entrypoints: "websecure" - traefik.http.routers.production-headscale_headscale.tls: "true" - traefik.http.routers.production-headscale_headscale.tls.certresolver: "letsencryptresolver" - traefik.http.routers.production-headscale_headscale.service: "production-headscale_headscale" - traefik.http.services.production-headscale_headscale.loadbalancer.server.port: "8080" - traefik.docker.network: "traefik" - replicas: 1 - restart_policy: - condition: on-failure - headscale-webui: - image: ghcr.io/ifargle/headscale-webui:latest - environment: - - TZ=America/Toronto - - COLOR=red # Use the base colors (ie, no darken-3, etc) - - - HS_SERVER=http://headscale_headscale:8080 # Reachable endpoint for your Headscale server - - DOMAIN_NAME=https://headadmin.nixc.us # The base domain name for this container. - - KEY="lzaAI5nenkxAeR1OZdKSYCqHsBnRtFCg2+anEeEkIhw=" # Generate with "openssl rand -base64 32" - used to encrypt your key on disk. - - AUTH_TYPE="" # AUTH_TYPE is either Basic or OIDC. Empty for no authentication - - LOG_LEVEL=info # Log level. "DEBUG", "ERROR", "WARNING", or "INFO". Default "INFO" - dns: - - 1.1.1.1 - volumes: - - /mnt/tank/persist/nixc.us/headscale/production/data:/data # Headscale-WebUI's storage. Make sure ./volume is readable by UID 1000 (chown 1000:1000 ./volume) - - /mnt/tank/persist/nixc.us/headscale/production/config:/etc/headscale/:ro # Headscale's config storage location. Used to read your Headscale config. + worker: + image: glitchtip/glitchtip + command: ./bin/run-celery-with-beat.sh + depends_on: *default-depends_on + environment: *default-environment + volumes: + - /mnt/tank/persist/nixc.us/glitch/production/uploads:/code/uploads deploy: replicas: 1 placement: constraints: - - node.hostname == macmini3 + - node.hostname == ingress.nixc.us labels: - us.nixc.autodeploy: "true" - traefik.enable: "true" - traefik.http.routers.production-headscale_webui.tls: "true" - traefik.http.services.production-headscale_webui.loadbalancer.server.port: "5000" - traefik.http.routers.production-headscale_webui.rule: "Host(`headadmin.nixc.us`)" - traefik.http.routers.production-headscale_webui.entrypoints: "websecure" - traefik.http.routers.production-headscale_webui.tls.certresolver: "letsencryptresolver" - traefik.http.routers.production-headscale_webui.service: "production-headscale_webui" - traefik.http.routers.production-headscale_webui.middlewares: "authelia_authelia@docker" - traefik.docker.network: "traefik" + - "traefik.enable=false" + networks: + - default + migrate: + image: glitchtip/glitchtip + depends_on: *default-depends_on + command: "./manage.py migrate" + environment: *default-environment + deploy: + replicas: 1 + placement: + constraints: + - node.hostname == macmini1 + labels: + - "traefik.enable=false" networks: - - traefik - default networks: traefik: external: true default: - driver: overlay \ No newline at end of file + external: false