From 558243a657b1a77bf3c68cffedf51ca8179fad4d Mon Sep 17 00:00:00 2001 From: c-d-p Date: Wed, 30 Apr 2025 23:01:11 +0200 Subject: [PATCH] committed wrong compose --- backend/docker-compose.deploy.yml | 122 ++++++++++++++++++------------ 1 file changed, 75 insertions(+), 47 deletions(-) diff --git a/backend/docker-compose.deploy.yml b/backend/docker-compose.deploy.yml index 94e0ef4..07bb165 100644 --- a/backend/docker-compose.deploy.yml +++ b/backend/docker-compose.deploy.yml @@ -1,63 +1,91 @@ services: - server: - image: docker.gitea.com/gitea:latest - container_name: gitea - environment: - - USER_UID=1020 - - USER_GID=1020 - - GITEA__service__DISABLE_REGISTRATION=true - - GITEA__database__DB_TYPE=postgres - - GITEA__database__HOST=db:5432 - - GITEA__database__NAME=gitea - - GITEA__database__USER=gitea - - GITEA__database__PASSWD=cams_very_special_GITEA_pwd_2o25 + # ----- Backend API (Uvicorn/FastAPI/Django etc.) ----- + api: + image: ghcr.io/c-d-p/maia:44b8760ab245407ac8dcac435cca6bbfad51284b + container_name: MAIA_API restart: unless-stopped + command: uvicorn main:app --host 0.0.0.0 --port 8000 + expose: + - "8000" + depends_on: + - db + - redis networks: - default - volumes: - - /home/git/gitea:/data - - /home/git/.ssh/:/data/git/.ssh - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - ports: - - "2222:22" - expose: - - "3000" + env_file: + - ./.env labels: - "traefik.enable=true" - - "traefik.http.routers.gitea.rule=Host(`git.depaoli.id.au`)" - - "traefik.http.routers.gitea.tls=true" - - "traefik.http.routers.gitea.entrypoints=secureweb" - - "traefik.http.services.gitea.loadbalancer.server.port=3000" - - "traefik.http.routers.gitea.tls.certresolver=myresolver" + - "traefik.http.routers.maia.rule=Host(`maia.depaoli.id.au`)" + - "traefik.http.routers.maia.tls=true" + - "traefik.http.routers.maia.entrypoints=secureweb" + - "traefik.http.routers.maia.tls.certresolver=myresolver" + - "traefik.http.services.maia.loadbalancer.server.port=8000" - "traefik.docker.network=host" - depends_on: - - "db" - runner: - image: docker.io/gitea/act_runner:latest - container_name: gitea_runner + + # ----- Celery Worker ----- + worker: + image: ghcr.io/c-d-p/maia:44b8760ab245407ac8dcac435cca6bbfad51284b + container_name: MAIA_Worker restart: unless-stopped + command: celery -A core.celery_app worker --loglevel=info depends_on: - - server + - db + - redis + env_file: + - ./.env networks: - default - environment: - GITEA_RUNNER_LABELS: "ubuntu-latest:docker://gitea-runner-base:ubuntu-node16" - GITEA_INSTANCE_URL: "https://git.depaoli.id.au" - GITEA_RUNNER_REGISTRATION_TOKEN: "JRrwF2HYSFKzFRVodBjiX4jIaMgZqrsaPgP9g6eh" - GITEA_RUNNER_NAME: "gitea_runner" - volumes: - # needs docker sock to spin up children runners - - /var/run/docker.sock:/var/run/docker.sock - - /srv/docker/container/gitea/runner:/data + + # ----- Database (PostgreSQL) ----- db: - image: docker.io/library/postgres:14 - restart: unless-stopped + image: postgres:15 # Use a specific version + container_name: MAIA_DB + volumes: + - /srv/docker/container/MAIA/db:/var/lib/postgresql/data # Persist data using a named volume environment: - - POSTGRES_USER=gitea - - POSTGRES_PASSWORD=cams_very_special_GITEA_pwd_2o25 - - POSTGRES_DB=gitea + - POSTGRES_USER=${DB_USER} + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=${DB_NAME} + env_file: + - ./.env networks: - default + restart: unless-stopped + + # ----- Cache (Redis) ----- + redis: + image: redis:7 # Use a specific version + container_name: MAIA_Redis volumes: - - /srv/docker/container/gitea/db:/var/lib/postgresql/data + - /srv/docker/container/MAIA/redis_data:/data + networks: + - default + restart: unless-stopped + + # ----- Frontend (nginx) ------ + frontend: + image: nginx:1.25-alpine + container_name: MAIA_FRONTEND + restart: unless-stopped + volumes: + - /srv/docker/container/MAIA/frontend/dist:/usr/share/nginx/html:ro # read only + - /srv/docker/container/MAIA/frontend/conf/nginx.conf:/etc/nginx/conf.d/default.conf:ro + networks: + - default + expose: + - "80" + labels: + - "traefik.enable=true" + - "traefik.http.routers.maia-frontend.rule=Host(`app.maia.depaoli.id.au`)" + - "traefik.http.routers.maia-frontend.tls=true" + - "traefik.http.routers.maia-frontend.entrypoints=secureweb" + - "traefik.http.routers.maia-frontend.tls.certresolver=myresolver" + - "traefik.http.services.maia-frontend.loadbalancer.server.port=80" + - "traefik.docker.network=host" + +# ----- Network Definition ----- +networks: + default: # Define a custom bridge network + driver: bridge + name: maia_network \ No newline at end of file