diff --git a/stack.staging.yml b/stack.staging.yml index 18a317c..9f1d67f 100644 --- a/stack.staging.yml +++ b/stack.staging.yml @@ -1,40 +1,113 @@ -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://staging.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:staging - # volumes: - # - public_system:/headscale/public/system - networks: - - traefik + postgres: + image: postgres:15 environment: - SERVER_URL: "https://staging.headscale.nixc.us" - LISTEN_ADDR: "0.0.0.0:8080" - METRICS_LISTEN_ADDR: "0.0.0.0:9090" - GRPC_LISTEN_ADDR: "0.0.0.0:50443" - DB_TYPE: "sqlite3" - DB_PATH: "/etc/headscale/db.sqlite" + POSTGRES_HOST_AUTH_METHOD: "trust" + volumes: + - /mnt/tank/persist/nixc.us/glitch/production/db:/var/lib/postgresql/data deploy: + replicas: 1 placement: constraints: - - node.hostname == macmini3 + - node.hostname == macmini1 labels: - us.nixc.autodeploy: "true" - traefik.enable: "true" - traefik.http.routers.staging-headscale_headscale.rule: "Host(`staging.headscale.nixc.us`)" - traefik.http.routers.staging-headscale_headscale.entrypoints: "websecure" - traefik.http.routers.staging-headscale_headscale.tls: "true" - traefik.http.routers.staging-headscale_headscale.tls.certresolver: "letsencryptresolver" - traefik.http.routers.staging-headscale_headscale.service: "staging-headscale_headscale" - traefik.http.services.staging-headscale_headscale.loadbalancer.server.port: "8080" - traefik.docker.network: "traefik" - + - "us.nixc.autodeploy=true" + - "traefik.enable=false" + networks: + - default + redis: + image: redis + deploy: replicas: 1 - restart_policy: - condition: on-failure - + placement: + constraints: + - node.hostname == macmini1 + 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(`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 + 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 == ingress.nixc.us + labels: + - "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: + - default networks: traefik: external: true default: - driver: overlay \ No newline at end of file + external: false