# VEP P1 compose — pinned, extendable per phase. Internal network only. # Postgres+pgvector not published to host. Caddy (host) proxies git.* and api.*. services: postgres: image: pgvector/pgvector:0.7.0-pg16 environment: POSTGRES_USER: ${PG_USER:-vep} POSTGRES_PASSWORD: ${PG_PASS:-vep_dev_pass} POSTGRES_DB: vep volumes: - pgdata:/var/lib/postgresql/data - ./schema/init.sql:/docker-entrypoint-initdb.d/init.sql:ro networks: [vep_net] # NOT published to host — internal only. app: build: context: . dockerfile: Dockerfile environment: DATABASE_URL: postgresql://${PG_USER:-vep}:${PG_PASS:-vep_dev_pass}@postgres:5432/vep VEP_TENANT: t_default depends_on: postgres: condition: service_healthy networks: [vep_net] # NOT published — Caddy proxies localhost:8000. forgejo: image: codeberg.org/forgejo/forgejo:10.0.3 environment: FORGEJO__database__DB_TYPE: sqlite FORGEJO__server__SSH_PORT: 22 FORGEJO__server__ROOT_URL: https://git.mangoopsdesign.com FORGEJO__server__APP_DATA_PATH: /data ports: - "2222:22" # host :2222 -> container ssh (avoids host :22) volumes: - forgejo_data:/data networks: [vep_net] networks: vep_net: driver: bridge volumes: pgdata: forgejo_data: