Sign inSign up

cub1z/tripflow-compose:feat-backend-ai-generation-20251121-0847-f819373

Manifest digest

sha256:e8dc729017a40bfb71770ba5fbea2bec4b2e6bf251f3eac3ca3da24a469bc870

Last pushed

10 months by cub1z

Type

Compose

Manifest digest

sha256:e8dc729017a40bfb71770ba5fbea2bec4b2e6bf251f3eac3ca3da24a469bc870

Compose file content


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: bridge

Docker commands

docker compose -f oci://cub1z/tripflow-compose:feat-backend-ai-generation-20251121-0847-f819373 up

Use the above command to pull and run the Compose file. Learn more.

Images used

Image + 1 more

The PostgreSQL object-relational database system provides reliability and data integrity.


Pulls

1B+

Stars

15012

Last Updated

19 days

Image + 1 more

Official Confluent Docker Image for Kafka (Community Version)


Pulls

100M+

Stars

542

Last Updated

about 1 month

Image


Pulls

2.6K

Stars

0

Last Updated

20 days

Image


Pulls

2.5K

Stars

0

Last Updated

20 days

Image


Pulls

2.4K

Stars

0

Last Updated

20 days

Image


Pulls

2.4K

Stars

0

Last Updated

20 days