diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 2732e75..9b602f2 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,5 +1,41 @@ services: + redis: + image: redis:7-alpine + command: ["redis-server", "--appendonly", "yes"] + volumes: + - bm_dev_redis_data:/data + networks: + - bm_internal + + geocoder-worker: + build: + context: apps/geocoder + working_dir: /app + environment: + DATABASE_URL: ${DATABASE_URL} + NOMINATIM_BASE: "https://nominatim.openstreetmap.org" + NOMINATIM_EMAIL: ${NOMINATIM_EMAIL} + NOMINATIM_USER_AGENT: ${NOMINATIM_USER_AGENT} + NOMINATIM_MIN_DELAY: "1.05" + NOMINATIM_JITTER: "0.35" + GEOCODE_MAX_PER_RUN: "5000" + command: ["python", "src/worker.py"] + networks: + - bm_internal + - coolify + restart: unless-stopped + pgadmin: + image: dpage/pgadmin4:8 + environment: + PGADMIN_DEFAULT_EMAIL: ${PGADMIN_EMAIL} + PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_PASSWORD} + PGADMIN_CONFIG_SERVER_MODE: "True" + volumes: + - bm_dev_pgadmin_data:/var/lib/pgadmin + networks: + - bm_internal + - coolify labels: - traefik.enable=true - traefik.docker.network=coolify @@ -10,8 +46,16 @@ services: - traefik.http.services.dev-pgadmin.loadbalancer.server.port=80 api: + build: + context: apps/api environment: + PORT: "3000" + DATABASE_URL: ${DATABASE_URL} + BM_IMPORT_TOKEN: ${BM_IMPORT_TOKEN} CORS_ORIGINS: https://dev.metalfrom.eu + networks: + - bm_internal + - coolify labels: - traefik.enable=true - traefik.docker.network=coolify @@ -22,6 +66,10 @@ services: - traefik.http.services.dev-api.loadbalancer.server.port=3000 web: + build: + context: apps/web + networks: + - coolify labels: - traefik.enable=true - traefik.docker.network=coolify @@ -30,3 +78,29 @@ services: - traefik.http.routers.dev-web.tls=true - traefik.http.routers.dev-web.tls.certresolver=letsencrypt - traefik.http.services.dev-web.loadbalancer.server.port=80 + + worker: + build: + context: apps/worker + environment: + DB_DSN: ${DATABASE_URL} + MA_LIST_URL: https://www.metal-archives.com/lists/FR + MA_STATE_PATH: /app/ma_state.json + volumes: + - bm_dev_worker_state:/app + networks: + - bm_internal + - coolify + restart: "no" + +networks: + bm_internal: + driver: bridge + coolify: + external: true + name: coolify + +volumes: + bm_dev_redis_data: + bm_dev_pgadmin_data: + bm_dev_worker_state: