sha256:e8dc729017a40bfb71770ba5fbea2bec4b2e6bf251f3eac3ca3da24a469bc870
Last pushed
10 months by cub1z
Type
Compose
Manifest digest
sha256:e8dc729017a40bfb71770ba5fbea2bec4b2e6bf251f3eac3ca3da24a469bc870
services:
postgres-api:
image: postgres:15-alpine
container_name: tripflow-postgres-api-dev
restart: unless-stopped
environment:
POSTGRES_DB: tripflow_db
POSTGRES_USER: tripflow_user
POSTGRES_PASSWORD: secure_password
ports:
- "5432:5432"
volumes:
- pgdata-api-dev:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U tripflow_user -d tripflow_db"]
interval: 10s
timeout: 5s
retries: 5
networks:
- tripflow-network-dev
postgres-ai:
image: postgres:15-alpine
container_name: tripflow-postgres-ai-dev
restart: unless-stopped
environment:
POSTGRES_DB: tripflow_ai_db
POSTGRES_USER: tripflow_user
POSTGRES_PASSWORD: secure_password
ports:
- "5433:5432"
volumes:
- pgdata-ai-dev:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U tripflow_user -d tripflow_ai_db"]
interval: 10s
timeout: 5s
retries: 5
networks:
- tripflow-network-dev
postgres-notification:
image: postgres:15-alpine
container_name: tripflow-postgres-notification-dev
restart: unless-stopped
environment:
POSTGRES_DB: tripflow_notification_db
POSTGRES_USER: tripflow_user
POSTGRES_PASSWORD: secure_password
ports:
- "5434:5432"
volumes:
- pgdata-notification-dev:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U tripflow_user -d tripflow_notification_db"]
interval: 10s
timeout: 5s
retries: 5
networks:
- tripflow-network-dev
kafka:
image: confluentinc/cp-kafka:8.1.0
container_name: kafka-dev
restart: unless-stopped
environment:
KAFKA_KRAFT_MODE: "true"
CLUSTER_ID: "0A33a0asf1dk3s-k9n-n"
KAFKA_NODE_ID: 1
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LOG_DIRS: /tmp/kraft-combined-logs
ports:
- "9092:9092"
volumes:
- kafkadata-dev:/var/lib/kafka/data
healthcheck:
test: ["CMD-SHELL", "kafka-topics --bootstrap-server localhost:9092 --list || exit 1"]
interval: 30s
timeout: 10s
retries: 5
networks:
- tripflow-network-dev
api-service:
image: cub1z/tripflow-api-service:dev
container_name: tripflow-api-service-dev
restart: unless-stopped
environment:
SPRING_PROFILES_ACTIVE: dev
POSTGRES_URL: jdbc:postgresql://postgres-api:5432/tripflow_db
POSTGRES_USER: tripflow_user
POSTGRES_PASSWORD: secure_password
JWT_SECRET: VGhpcyBpcyBhIHZlcnkgc2VjdXJlIGRldmVsb3BtZW50IHNlY3JldCEyMw==
KAFKA_BOOTSTRAP_SERVERS: kafka:9092
ports:
- "8080:8080"
depends_on:
postgres-api:
condition: service_healthy
kafka:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:8080/api/health || exit 1"]
interval: 30s
timeout: 10s
retries: 3
networks:
- tripflow-network-dev
ai-service:
image: cub1z/tripflow-ai-service:dev
container_name: tripflow-ai-service-dev
restart: unless-stopped
environment:
SPRING_PROFILES_ACTIVE: dev
POSTGRES_URL: jdbc:postgresql://postgres-ai:5432/tripflow_ai_db
POSTGRES_USER: tripflow_user
POSTGRES_PASSWORD: secure_password
JWT_SECRET: ${JWT_SECRET:-VGhpcyBpcyBhIHZlcnkgc2VjdXJlIGRldmVsb3BtZW50IHNlY3JldCEyMw==}
KAFKA_BOOTSTRAP_SERVERS: kafka:9092
AI_API_KEY: ${AI_API_KEY}
AI_API_URL: https://openrouter.ai/api/v1
AI_API_MODEL: ${AI_API_MODEL:-openai/gpt-oss-20b:free}
ports:
- "8081:8081"
depends_on:
postgres-ai:
condition: service_healthy
kafka:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:8081/api/health || exit 1"]
interval: 30s
timeout: 10s
retries: 3
networks:
- tripflow-network-dev
notification-service:
image: cub1z/tripflow-notification-service:dev
container_name: tripflow-notification-service-dev
restart: unless-stopped
environment:
SPRING_PROFILES_ACTIVE: dev
POSTGRES_URL: jdbc:postgresql://postgres-notification:5432/tripflow_notification_db
POSTGRES_USER: tripflow_user
POSTGRES_PASSWORD: secure_password
JWT_SECRET: VGhpcyBpcyBhIHZlcnkgc2VjdXJlIGRldmVsb3BtZW50IHNlY3JldCEyMw==
KAFKA_BOOTSTRAP_SERVERS: kafka:9092
ports:
- "8082:8082"
depends_on:
postgres-notification:
condition: service_healthy
kafka:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:8082/api/health || exit 1"]
interval: 30s
timeout: 10s
retries: 3
networks:
- tripflow-network-dev
frontend:
image: cub1z/tripflow-frontend:dev
container_name: tripflow-frontend-dev
restart: unless-stopped
environment:
PUBLIC_API_BASE_URL: http://localhost:8080
ports:
- "4173:4173"
depends_on:
api-service:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:4173/ || exit 1"]
interval: 30s
timeout: 10s
retries: 5
volumes:
pgdata-api-dev:
driver: local
pgdata-ai-dev:
driver: local
pgdata-notification-dev:
driver: local
kafkadata-dev:
driver: local
networks:
tripflow-network-dev:
driver: bridgedocker compose -f oci://cub1z/tripflow-compose:feat-backend-ai-generation-20251121-0847-f819373 upUse the above command to pull and run the Compose file. Learn more.
The PostgreSQL object-relational database system provides reliability and data integrity.
Pulls
1B+
Stars
15012
Last Updated
19 days
Official Confluent Docker Image for Kafka (Community Version)
Pulls
100M+
Stars
542
Last Updated
about 1 month