metalfrom.eu/docker-compose.dev.yml
Nicolas Fryder 3230ba8d9a fix(network): remettre coolify external network + compose_parsing_version=5
Root cause identifié: compose_parsing_version=1 (DEV) vs 5 (PROD).
La v1 stripe coolify: external: true → crée uuid_coolify au lieu du vrai réseau.
La v5 préserve correctement l'external network declaration.

Fix appliqué:
- DB Coolify: compose_parsing_version mis à 5 pour l'app DEV
- Tous services sur networks: [coolify] explicitement
- Section networks: coolify external: true, name: coolify dans les deux compose files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-27 16:44:09 +02:00

118 lines
3.2 KiB
YAML

services:
redis:
image: redis:7-alpine
command: ["redis-server", "--appendonly", "yes"]
volumes:
- bm_dev_redis_data:/data
networks:
- coolify
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
environment:
LOG_LEVEL: info
CAPTCHA_SOLVER: none
networks:
- coolify
labels:
- traefik.enable=false
restart: unless-stopped
crawler:
build:
context: apps/crawler
environment:
DATABASE_URL: ${DATABASE_URL}
FLARESOLVERR_URL: http://flaresolverr:8191
CRAWLER_SCHED_INCREMENTAL_H: "4"
CRAWLER_SCHED_ENRICH_H: "2"
CRAWLER_SCHED_FULL_DAY: "0"
depends_on:
- flaresolverr
networks:
- coolify
labels:
- traefik.enable=false
restart: unless-stopped
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:
- coolify
labels:
- traefik.enable=false
restart: "no"
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:
- coolify
labels:
- traefik.enable=true
- traefik.docker.network=coolify
- traefik.http.routers.dev-pgadmin.rule=Host(`dev-pgadmin.metalfrom.eu`)
- traefik.http.routers.dev-pgadmin.entrypoints=https
- traefik.http.routers.dev-pgadmin.tls=true
- traefik.http.routers.dev-pgadmin.tls.certresolver=letsencrypt
- 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: ${CORS_ORIGINS:-https://dev.metalfrom.eu}
networks:
- coolify
labels:
- traefik.enable=true
- traefik.docker.network=coolify
- traefik.http.routers.dev-api.rule=Host(`dev-api.metalfrom.eu`)
- traefik.http.routers.dev-api.entrypoints=https
- traefik.http.routers.dev-api.tls=true
- traefik.http.routers.dev-api.tls.certresolver=letsencrypt
- traefik.http.services.dev-api.loadbalancer.server.port=3000
web:
build:
context: apps/web
args:
API_BASE: https://dev-api.metalfrom.eu
networks:
- coolify
labels:
- traefik.enable=true
- traefik.docker.network=coolify
- traefik.http.routers.dev-web.rule=Host(`dev.metalfrom.eu`)
- traefik.http.routers.dev-web.entrypoints=https
- traefik.http.routers.dev-web.tls=true
- traefik.http.routers.dev-web.tls.certresolver=letsencrypt
- traefik.http.services.dev-web.loadbalancer.server.port=80
networks:
coolify:
external: true
name: coolify
volumes:
bm_dev_redis_data:
bm_dev_pgadmin_data: