version: "3" volumes: database-data: database-data-alt: pgadmin-data: redis-data: networks: app_network: external: false services: database: container_name: database image: postgres:14 restart: always volumes: - ${DB_VOLUME:-database-data}:/var/lib/postgresql/data/ environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres networks: - app_network ports: - 5432:5432 command: - -c - listen_addresses=* - -c - wal_level=logical pgadmin: container_name: pgadmin image: dpage/pgadmin4:8 restart: always environment: PGADMIN_DEFAULT_EMAIL: admin@example.com PGADMIN_DEFAULT_PASSWORD: admin PGADMIN_DISABLE_POSTFIX: "true" volumes: - pgadmin-data:/var/lib/pgadmin - ./pgadmin/servers.json:/pgadmin4/servers.json networks: - app_network ports: - 5480:80 depends_on: - database redis: container_name: redis image: redis:7 restart: always volumes: - redis-data:/data networks: - app_network ports: - 6379:6379 electric: image: electricsql/electric:0.8.1 restart: always environment: DATABASE_URL: postgresql://postgres:postgres@database:5432/postgres?sslmode=disable networks: - app_network ports: - "3060:3000" depends_on: - database # otel-collector: # container_name: otel-collector # image: otel/opentelemetry-collector-contrib:latest # restart: always # command: ["--config", "/etc/otel-collector-config.yaml"] # volumes: # - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml # ports: # - "55680:55680" # - "55681:55681" # - "4317:4317" # OTLP gRPC receiver # - "4318:4318" # OTLP http receiver