{"repo": "agentic-lab-club/smart-travel-halyk-hackathon", "files": {"docker-compose.yml": {"896a107cb58702a24251424b77c8094109870c08": {"t": 1785745261.0032978, "n": 4025, "h": "c84ab0fba7cd98c9", "c": "networks:\n smart-travel-halyk-network:\n driver: bridge\n\nvolumes:\n postgres_data:\n minio_data:\n go-mod-cache:\n go-build-cache:\n\nservices:\n # ai agent chat service python/fastapi\n agent:\n build:\n context: ./agent\n dockerfile: Dockerfile\n container_name: smarttravel_agent\n restart: unless-stopped\n ports:\n - \"8000:8000\"\n environment:\n - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}\n - DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@postgres:5432/${DB_DATABASE}\n env_file:\n - .env\n volumes:\n - ./agent:/app\n command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload\n depends_on:\n postgres:\n condition: service_healthy\n networks:\n - smart-travel-halyk-network\n\n\n # mobile frontend on Swift (/App)\n postgres:\n image: postgres:17-alpine\n container_name: smarttravel_postgres\n ports:\n - \"5432:5432\"\n restart: unless-stopped\n env_file:\n - .env\n environment:\n POSTGRES_DB: ${DB_DATABASE}\n POSTGRES_USER: ${DB_USER}\n POSTGRES_PASSWORD: ${DB_PASSWORD}\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U ${DB_USER} -d ${DB_DATABASE}\"]\n interval: 5s\n timeout: 3s\n retries: 20\n networks:\n - smart-travel-halyk-network\n\n # backend golang main fiber\n backend:\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: runner\n args:\n GEN_SWAGGER: \"1\"\n container_name: smarttravel_backend\n env_file:\n - .env\n ports:\n - \"${BACKEND_HOST_PORT:-8080}:8080\"\n restart: unless-stopped\n command: [\"-config=prod\"]\n volumes:\n - ./backend/config:/app/config:ro\n depends_on:\n postgres:\n condition: service_healthy\n agent:\n condition: service_started\n minio-init:\n condition: service_completed_successfully\n healthcheck:\n test: [\"CMD-SHELL\", \"wget -qO- http://127.0.0.1:8080/health >/dev/null 2>&1 || exit 1\"]\n interval: 10s\n timeout: 5s\n retries: 20\n start_period: 20s\n networks:\n - smart-travel-halyk-network\n\n # for Running Backend Tests:\n # docker compose run --rm --no-deps backend-test go test ./internal/healthcheck\n backend-test:\n profiles: [\"test\"]\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: test\n working_dir: /src/backend\n env_file:\n - .env\n volumes:\n - .:/src\n - go-mod-cache:/go/pkg/mod\n - go-build-cache:/root/.cache/go-build\n command: [\"sh\"]\n networks:\n - smart-travel-halyk-network\n\n # s3 minio storage bucket\n minio:\n image: quay.io/minio/minio:RELEASE.2025-02-28T09-55-16Z\n container_name: smarttravel_s3_minio\n restart: unless-stopped\n environment:\n MINIO_ROOT_USER: ${STORAGE_ACCESS_KEY}\n MINIO_ROOT_PASSWORD: ${STORAGE_SECRET_KEY}\n command: server /data --console-address \":9001\"\n volumes:\n - minio_data:/data\n ports:\n - \"${MINIO_API_HOST_PORT:-9100}:9000\"\n - \"${MINIO_CONSOLE_HOST_PORT:-9101}:9001\"\n networks:\n - smart-travel-halyk-network\n\n # create/configure s3 minio bucket for local dev\n minio-init:\n image: quay.io/minio/mc:RELEASE.2025-02-21T16-00-46Z\n container_name: smarttravel_s3_minio_init\n depends_on:\n - minio\n restart: \"no\"\n volumes:\n - ./mock-assets:/seed-assets:ro\n entrypoint: >\n /bin/sh -ec \"\n until /usr/bin/mc alias set local http://minio:9000 ${STORAGE_ACCESS_KEY} ${STORAGE_SECRET_KEY}; do\n echo 'waiting for minio...';\n sleep 2;\n done;\n /usr/bin/mc mb --ignore-existing local/${STORAGE_BUCKET:-application-files};\n /usr/bin/mc anonymous set private local/${STORAGE_BUCKET:-application-files};\n if [ -d /seed-assets ] && [ \\\"$(ls -A /seed-assets 2>/dev/null)\\\" ]; then\n /usr/bin/mc cp --recursive /seed-assets local/${STORAGE_BUCKET:-application-files}/;\n fi;\n \"\n networks:\n - smart-travel-halyk-network\n"}, "3e09dd0c592c518b19aa26a1a6a3ea635314eaf3": {"t": 1785749361.1963975, "n": 4025, "h": "c84ab0fba7cd98c9", "c": "networks:\n smart-travel-halyk-network:\n driver: bridge\n\nvolumes:\n postgres_data:\n minio_data:\n go-mod-cache:\n go-build-cache:\n\nservices:\n # ai agent chat service python/fastapi\n agent:\n build:\n context: ./agent\n dockerfile: Dockerfile\n container_name: smarttravel_agent\n restart: unless-stopped\n ports:\n - \"8000:8000\"\n environment:\n - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}\n - DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@postgres:5432/${DB_DATABASE}\n env_file:\n - .env\n volumes:\n - ./agent:/app\n command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload\n depends_on:\n postgres:\n condition: service_healthy\n networks:\n - smart-travel-halyk-network\n\n\n # mobile frontend on Swift (/App)\n postgres:\n image: postgres:17-alpine\n container_name: smarttravel_postgres\n ports:\n - \"5432:5432\"\n restart: unless-stopped\n env_file:\n - .env\n environment:\n POSTGRES_DB: ${DB_DATABASE}\n POSTGRES_USER: ${DB_USER}\n POSTGRES_PASSWORD: ${DB_PASSWORD}\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U ${DB_USER} -d ${DB_DATABASE}\"]\n interval: 5s\n timeout: 3s\n retries: 20\n networks:\n - smart-travel-halyk-network\n\n # backend golang main fiber\n backend:\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: runner\n args:\n GEN_SWAGGER: \"1\"\n container_name: smarttravel_backend\n env_file:\n - .env\n ports:\n - \"${BACKEND_HOST_PORT:-8080}:8080\"\n restart: unless-stopped\n command: [\"-config=prod\"]\n volumes:\n - ./backend/config:/app/config:ro\n depends_on:\n postgres:\n condition: service_healthy\n agent:\n condition: service_started\n minio-init:\n condition: service_completed_successfully\n healthcheck:\n test: [\"CMD-SHELL\", \"wget -qO- http://127.0.0.1:8080/health >/dev/null 2>&1 || exit 1\"]\n interval: 10s\n timeout: 5s\n retries: 20\n start_period: 20s\n networks:\n - smart-travel-halyk-network\n\n # for Running Backend Tests:\n # docker compose run --rm --no-deps backend-test go test ./internal/healthcheck\n backend-test:\n profiles: [\"test\"]\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: test\n working_dir: /src/backend\n env_file:\n - .env\n volumes:\n - .:/src\n - go-mod-cache:/go/pkg/mod\n - go-build-cache:/root/.cache/go-build\n command: [\"sh\"]\n networks:\n - smart-travel-halyk-network\n\n # s3 minio storage bucket\n minio:\n image: quay.io/minio/minio:RELEASE.2025-02-28T09-55-16Z\n container_name: smarttravel_s3_minio\n restart: unless-stopped\n environment:\n MINIO_ROOT_USER: ${STORAGE_ACCESS_KEY}\n MINIO_ROOT_PASSWORD: ${STORAGE_SECRET_KEY}\n command: server /data --console-address \":9001\"\n volumes:\n - minio_data:/data\n ports:\n - \"${MINIO_API_HOST_PORT:-9100}:9000\"\n - \"${MINIO_CONSOLE_HOST_PORT:-9101}:9001\"\n networks:\n - smart-travel-halyk-network\n\n # create/configure s3 minio bucket for local dev\n minio-init:\n image: quay.io/minio/mc:RELEASE.2025-02-21T16-00-46Z\n container_name: smarttravel_s3_minio_init\n depends_on:\n - minio\n restart: \"no\"\n volumes:\n - ./mock-assets:/seed-assets:ro\n entrypoint: >\n /bin/sh -ec \"\n until /usr/bin/mc alias set local http://minio:9000 ${STORAGE_ACCESS_KEY} ${STORAGE_SECRET_KEY}; do\n echo 'waiting for minio...';\n sleep 2;\n done;\n /usr/bin/mc mb --ignore-existing local/${STORAGE_BUCKET:-application-files};\n /usr/bin/mc anonymous set private local/${STORAGE_BUCKET:-application-files};\n if [ -d /seed-assets ] && [ \\\"$(ls -A /seed-assets 2>/dev/null)\\\" ]; then\n /usr/bin/mc cp --recursive /seed-assets local/${STORAGE_BUCKET:-application-files}/;\n fi;\n \"\n networks:\n - smart-travel-halyk-network\n"}, "6b039240ff0355515116b5f06abd179b046221ac": {"t": 1785749362.303891, "n": 4017, "h": "17bdd6d10f9fbef5", "c": "networks:\n smart-travel-halyk-network:\n driver: bridge\n\nvolumes:\n postgres_data:\n minio_data:\n go-mod-cache:\n go-build-cache:\n\nservices:\n # ai agent chat service python/fastapi\n agent:\n build:\n context: ./agent\n dockerfile: Dockerfile\n container_name: smarttravel_agent\n restart: unless-stopped\n ports:\n - \"8000:8000\"\n environment:\n - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}\n - DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@postgres:5432/${DB_DATABASE}\n env_file:\n - .env\n volumes:\n - ./agent:/app\n command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload\n depends_on:\n postgres:\n condition: service_healthy\n networks:\n - smart-travel-halyk-network\n\n\n # mobile frontend on Swift (/App)\n postgres:\n image: postgres:16-alpine\n container_name: smarttravel_postgres\n ports:\n - \"5432:5432\"\n restart: unless-stopped\n env_file:\n - .env\n environment:\n POSTGRES_DB: ${DB_DATABASE}\n POSTGRES_USER: ${DB_USER}\n POSTGRES_PASSWORD: ${DB_PASSWORD}\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U ${DB_USER} -d ${DB_DATABASE}\"]\n interval: 5s\n timeout: 3s\n retries: 20\n networks:\n - smart-travel-halyk-network\n\n # backend golang main fiber\n backend:\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: runner\n args:\n GEN_SWAGGER: \"0\"\n container_name: smarttravel_backend\n env_file:\n - .env\n ports:\n - \"${BACKEND_HOST_PORT:-8080}:8080\"\n restart: unless-stopped\n command: [\"-config=prod\"]\n volumes:\n - ./backend/config:/app/config:ro\n depends_on:\n postgres:\n condition: service_healthy\n agent:\n condition: service_started\n minio-init:\n condition: service_completed_successfully\n healthcheck:\n test: [\"CMD-SHELL\", \"wget -qO- http://127.0.0.1:8080/health >/dev/null 2>&1 || exit 1\"]\n interval: 10s\n timeout: 5s\n retries: 20\n start_period: 20s\n networks:\n - smart-travel-halyk-network\n\n # for Running Backend Tests:\n # docker compose run --rm --no-deps backend-test go test ./internal/healthcheck\n backend-test:\n profiles: [\"test\"]\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: test\n working_dir: /src\n env_file:\n - .env\n volumes:\n - .:/src\n - go-mod-cache:/go/pkg/mod\n - go-build-cache:/root/.cache/go-build\n command: [\"sh\"]\n networks:\n - smart-travel-halyk-network\n\n # s3 minio storage bucket\n minio:\n image: quay.io/minio/minio:RELEASE.2025-02-28T09-55-16Z\n container_name: smarttravel_s3_minio\n restart: unless-stopped\n environment:\n MINIO_ROOT_USER: ${STORAGE_ACCESS_KEY}\n MINIO_ROOT_PASSWORD: ${STORAGE_SECRET_KEY}\n command: server /data --console-address \":9001\"\n volumes:\n - minio_data:/data\n ports:\n - \"${MINIO_API_HOST_PORT:-9100}:9000\"\n - \"${MINIO_CONSOLE_HOST_PORT:-9101}:9001\"\n networks:\n - smart-travel-halyk-network\n\n # create/configure s3 minio bucket for local dev\n minio-init:\n image: quay.io/minio/mc:RELEASE.2025-02-21T16-00-46Z\n container_name: smarttravel_s3_minio_init\n depends_on:\n - minio\n restart: \"no\"\n volumes:\n - ./mock-assets:/seed-assets:ro\n entrypoint: >\n /bin/sh -ec \"\n until /usr/bin/mc alias set local http://minio:9000 ${STORAGE_ACCESS_KEY} ${STORAGE_SECRET_KEY}; do\n echo 'waiting for minio...';\n sleep 2;\n done;\n /usr/bin/mc mb --ignore-existing local/${STORAGE_BUCKET:-application-files};\n /usr/bin/mc anonymous set private local/${STORAGE_BUCKET:-application-files};\n if [ -d /seed-assets ] && [ \\\"$(ls -A /seed-assets 2>/dev/null)\\\" ]; then\n /usr/bin/mc cp --recursive /seed-assets local/${STORAGE_BUCKET:-application-files}/;\n fi;\n \"\n networks:\n - smart-travel-halyk-network\n"}, "79a383a8609fef1c98194e17fab2ffd4f27d5e54": {"t": 1785749363.3754358, "n": 3809, "h": "72f727b28d8f681e", "c": "networks:\n smart-travel-halyk-network:\n driver: bridge\n\nvolumes:\n postgres_data:\n minio_data:\n go-mod-cache:\n go-build-cache:\n\nservices:\n # ai agent chat service python/fastapi\n agent:\n build:\n context: ./agent\n dockerfile: Dockerfile\n container_name: smarttravel_agent\n restart: unless-stopped\n ports:\n - \"8000:8000\"\n environment:\n - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}\n env_file:\n - .env\n volumes:\n - ./agent:/app\n command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload\n networks:\n - smart-travel-halyk-network\n\n\n # mobile frontend on Swift (/App)\n postgres:\n image: postgres:17-alpine\n container_name: smarttravel_postgres\n ports:\n - \"5432:5432\"\n restart: unless-stopped\n env_file:\n - .env\n environment:\n POSTGRES_DB: ${DB_DATABASE}\n POSTGRES_USER: ${DB_USER}\n POSTGRES_PASSWORD: ${DB_PASSWORD}\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U ${DB_USER} -d ${DB_DATABASE}\"]\n interval: 5s\n timeout: 3s\n retries: 20\n networks:\n - smart-travel-halyk-network\n\n # backend golang main fiber\n backend:\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: runner\n args:\n GEN_SWAGGER: \"0\"\n container_name: smarttravel_backend\n env_file:\n - .env\n ports:\n - \"${BACKEND_HOST_PORT:-8080}:8080\"\n restart: unless-stopped\n command: [\"-config=prod\"]\n volumes:\n - ./backend/config:/app/config:ro\n depends_on:\n postgres:\n condition: service_healthy\n agent:\n condition: service_started\n minio-init:\n condition: service_completed_successfully\n healthcheck:\n test: [\"CMD-SHELL\", \"wget -qO- http://127.0.0.1:8080/health >/dev/null 2>&1 || exit 1\"]\n interval: 10s\n timeout: 5s\n retries: 20\n start_period: 20s\n networks:\n - smart-travel-halyk-network\n\n # for Running Backend Tests:\n # docker compose run --rm --no-deps backend-test go test ./internal/healthcheck\n backend-test:\n profiles: [\"test\"]\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: test\n working_dir: /src\n env_file:\n - .env\n volumes:\n - .:/src\n - go-mod-cache:/go/pkg/mod\n - go-build-cache:/root/.cache/go-build\n command: [\"sh\"]\n networks:\n - smart-travel-halyk-network\n\n # s3 minio storage bucket\n minio:\n image: quay.io/minio/minio:RELEASE.2025-02-28T09-55-16Z\n container_name: smarttravel_s3_minio\n restart: unless-stopped\n environment:\n MINIO_ROOT_USER: ${STORAGE_ACCESS_KEY}\n MINIO_ROOT_PASSWORD: ${STORAGE_SECRET_KEY}\n command: server /data --console-address \":9001\"\n volumes:\n - minio_data:/data\n ports:\n - \"9000:9000\"\n - \"9002:9001\"\n networks:\n - smart-travel-halyk-network\n\n # create/configure s3 minio bucket for local dev\n minio-init:\n image: quay.io/minio/mc:RELEASE.2025-02-21T16-00-46Z\n container_name: smarttravel_s3_minio_init\n depends_on:\n - minio\n restart: \"no\"\n volumes:\n - ./mock-assets:/seed-assets:ro\n entrypoint: >\n /bin/sh -ec \"\n until /usr/bin/mc alias set local http://minio:9000 ${STORAGE_ACCESS_KEY} ${STORAGE_SECRET_KEY}; do\n echo 'waiting for minio...';\n sleep 2;\n done;\n /usr/bin/mc mb --ignore-existing local/${STORAGE_BUCKET:-application-files};\n /usr/bin/mc anonymous set private local/${STORAGE_BUCKET:-application-files};\n if [ -d /seed-assets ] && [ \\\"$(ls -A /seed-assets 2>/dev/null)\\\" ]; then\n /usr/bin/mc cp --recursive /seed-assets local/${STORAGE_BUCKET:-application-files}/;\n fi;\n \"\n networks:\n - smart-travel-halyk-network\n"}, "3ea83c853e8311fa37ff4a3ff5af85f9748dd0ba": {"t": 1785749364.4275959, "n": 4462, "h": "a3f393aa4e701f2d", "c": "networks:\n smart-travel-halyk-network:\n driver: bridge\n\nservices:\n analytics_db:\n image: postgres:16-alpine\n container_name: analytics_db\n restart: unless-stopped\n environment:\n POSTGRES_USER: ${POSTGRES_USER:-analytics}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-analytics_pass}\n POSTGRES_DB: ${POSTGRES_DB:-analytics_db}\n ports:\n - \"${POSTGRES_PORT:-5432}:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql:ro\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n # ai agent chat service python/fastapi\n agent:\n build:\n context: ./agent\n dockerfile: Dockerfile\n container_name: smarttravel_agent\n restart: unless-stopped\n ports:\n - \"8000:8000\"\n environment:\n - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}\n - DATABASE_URL=postgresql://analytics:analytics_pass@analytics_db:5432/analytics_db\n env_file:\n - .env\n depends_on:\n analytics_db:\n condition: service_healthy\n volumes:\n - ./agent:/app\n command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload\n networks:\n - smart-travel-halyk-network\n\n\n # mobile frontend on Swift (/App)\n postgres:\n image: postgres:17-alpine\n container_name: smarttravel_postgres\n ports:\n - \"5432:5432\"\n restart: unless-stopped\n env_file:\n - .env\n environment:\n POSTGRES_DB: ${DB_DATABASE}\n POSTGRES_USER: ${DB_USER}\n POSTGRES_PASSWORD: ${DB_PASSWORD}\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U ${DB_USER} -d ${DB_DATABASE}\"]\n interval: 5s\n timeout: 3s\n retries: 20\n networks:\n - smart-travel-halyk-network\n\n # backend golang main fiber\n backend:\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: runner\n container_name: smarttravel_backend\n env_file:\n - .env\n ports:\n - \"${BACKEND_HOST_PORT:-8080}:8080\"\n restart: unless-stopped\n command: [\"-config=prod\"]\n volumes:\n - ./backend/config:/app/config:ro\n depends_on:\n postgres:\n condition: service_healthy\n aiagent:\n condition: service_started\n minio-init:\n condition: service_completed_successfully\n healthcheck:\n test: [\"CMD-SHELL\", \"wget -qO- http://127.0.0.1:8080/health >/dev/null 2>&1 || exit 1\"]\n interval: 10s\n timeout: 5s\n retries: 20\n start_period: 20s\n networks:\n - smart-travel-halyk-network\n\n # for Running Backend Tests:\n # docker compose run --rm --no-deps backend-test go test ./internal/healthcheck\n backend-test:\n profiles: [\"test\"]\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: test\n working_dir: /src\n env_file:\n - .env\n volumes:\n - .:/src\n - go-mod-cache:/go/pkg/mod\n - go-build-cache:/root/.cache/go-build\n command: [\"sh\"]\n networks:\n - smart-travel-halyk-network\n\n # s3 minio storage bucket\n minio:\n image: quay.io/minio/minio:RELEASE.2025-02-28T09-55-16Z\n container_name: smarttravel_s3_minio\n restart: unless-stopped\n environment:\n MINIO_ROOT_USER: ${STORAGE_ACCESS_KEY}\n MINIO_ROOT_PASSWORD: ${STORAGE_SECRET_KEY}\n command: server /data --console-address \":9001\"\n volumes:\n - minio_data:/data\n ports:\n - \"9000:9000\"\n - \"9002:9001\"\n networks:\n - smart-travel-halyk-network\n\n # create/configure s3 minio bucket for local dev\n minio-init:\n image: quay.io/minio/mc:RELEASE.2025-02-21T16-00-46Z\n container_name: smarttravel_s3_minio_init\n depends_on:\n - minio\n restart: \"no\"\n volumes:\n - ./mock-assets:/seed-assets:ro\n entrypoint: >\n /bin/sh -ec \"\n until /usr/bin/mc alias set local http://minio:9000 ${STORAGE_ACCESS_KEY} ${STORAGE_SECRET_KEY}; do\n echo 'waiting for minio...';\n sleep 2;\n done;\n /usr/bin/mc mb --ignore-existing local/${STORAGE_BUCKET:-application-files};\n /usr/bin/mc anonymous set private local/${STORAGE_BUCKET:-application-files};\n if [ -d /seed-assets ] && [ \\\"$(ls -A /seed-assets 2>/dev/null)\\\" ]; then\n /usr/bin/mc cp --recursive /seed-assets local/${STORAGE_BUCKET:-application-files}/;\n fi;\n \"\n networks:\n - smart-travel-halyk-network\n"}, "e95c9be50a6f5b1e367a3b2f4b2783704a5e5ee7": {"t": 1785749366.0273159, "n": 3849, "h": "360432b8309bc9a5", "c": "networks:\n smart-travel-halyk-network:\n driver: bridge\n\nvolumes:\n postgres_data:\n minio_data:\n # this go cache for Backend Golang Test\n go-mod-cache: {}\n go-build-cache: {}\n\nservices:\n # mobile frontend on Swift (/App)\n postgres:\n image: postgres:17-alpine\n container_name: smarttravel_postgres\n ports:\n - \"5432:5432\"\n restart: unless-stopped\n env_file:\n - .env\n environment:\n POSTGRES_DB: ${DB_DATABASE}\n POSTGRES_USER: ${DB_USER}\n POSTGRES_PASSWORD: ${DB_PASSWORD}\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U ${DB_USER} -d ${DB_DATABASE}\"]\n interval: 5s\n timeout: 3s\n retries: 20\n networks:\n - smart-travel-halyk-network\n\n # backend golang main fiber\n backend:\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: runner\n container_name: smarttravel_backend\n env_file:\n - .env\n ports:\n - \"${BACKEND_HOST_PORT:-8080}:8080\"\n restart: unless-stopped\n command: [\"-config=prod\"]\n volumes:\n - ./backend/config:/app/config:ro\n depends_on:\n postgres:\n condition: service_healthy\n aiagent:\n condition: service_started\n minio-init:\n condition: service_completed_successfully\n healthcheck:\n test: [\"CMD-SHELL\", \"wget -qO- http://127.0.0.1:8080/health >/dev/null 2>&1 || exit 1\"]\n interval: 10s\n timeout: 5s\n retries: 20\n start_period: 20s\n networks:\n - smart-travel-halyk-network\n\n # ai agent chat service python/fastapi\n agent:\n build:\n context: ./agent\n dockerfile: Dockerfile\n container_name: smarttravel_agent\n ports:\n - \"9094:9094\"\n env_file:\n - .env\n restart: unless-stopped\n healthcheck:\n test: [\"CMD\", \"python\", \"-c\", \"import urllib.request; urllib.request.urlopen('http://127.0.0.1:9094/health')\"]\n interval: 10s\n timeout: 5s\n retries: 10\n networks:\n - smart-travel-halyk-network\n\n # for Running Backend Tests:\n # docker compose run --rm --no-deps backend-test go test ./internal/healthcheck\n backend-test:\n profiles: [\"test\"]\n build:\n context: ./backend\n dockerfile: Dockerfile\n target: test\n working_dir: /src\n env_file:\n - .env\n volumes:\n - .:/src\n - go-mod-cache:/go/pkg/mod\n - go-build-cache:/root/.cache/go-build\n command: [\"sh\"]\n networks:\n - smart-travel-halyk-network\n\n # s3 minio storage bucket\n minio:\n image: quay.io/minio/minio:RELEASE.2025-02-28T09-55-16Z\n container_name: smarttravel_s3_minio\n restart: unless-stopped\n environment:\n MINIO_ROOT_USER: ${STORAGE_ACCESS_KEY}\n MINIO_ROOT_PASSWORD: ${STORAGE_SECRET_KEY}\n command: server /data --console-address \":9001\"\n volumes:\n - minio_data:/data\n ports:\n - \"9000:9000\"\n - \"9002:9001\"\n networks:\n - smart-travel-halyk-network\n\n # create/configure s3 minio bucket for local dev\n minio-init:\n image: quay.io/minio/mc:RELEASE.2025-02-21T16-00-46Z\n container_name: smarttravel_s3_minio_init\n depends_on:\n - minio\n restart: \"no\"\n volumes:\n - ./mock-assets:/seed-assets:ro\n entrypoint: >\n /bin/sh -ec \"\n until /usr/bin/mc alias set local http://minio:9000 ${STORAGE_ACCESS_KEY} ${STORAGE_SECRET_KEY}; do\n echo 'waiting for minio...';\n sleep 2;\n done;\n /usr/bin/mc mb --ignore-existing local/${STORAGE_BUCKET:-application-files};\n /usr/bin/mc anonymous set private local/${STORAGE_BUCKET:-application-files};\n if [ -d /seed-assets ] && [ \\\"$(ls -A /seed-assets 2>/dev/null)\\\" ]; then\n /usr/bin/mc cp --recursive /seed-assets local/${STORAGE_BUCKET:-application-files}/;\n fi;\n \"\n networks:\n - smart-travel-halyk-network\n"}, "bc5ca43720a6541ab8fbc257fb698243f80b7d1f": {"t": 1785749367.0974212, "n": 1102, "h": "a102e1b058523c09", "c": "services:\n analytics_db:\n image: postgres:16-alpine\n container_name: analytics_db\n restart: unless-stopped\n environment:\n POSTGRES_USER: ${POSTGRES_USER:-analytics}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-analytics_pass}\n POSTGRES_DB: ${POSTGRES_DB:-analytics_db}\n ports:\n - \"${POSTGRES_PORT:-5432}:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql:ro\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n agent:\n build: ./agent\n container_name: agent\n restart: unless-stopped\n ports:\n - \"8000:8000\"\n environment:\n - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}\n - DATABASE_URL=postgresql://analytics:analytics_pass@analytics_db:5432/analytics_db\n env_file:\n - .env\n depends_on:\n analytics_db:\n condition: service_healthy\n volumes:\n - ./agent:/app\n command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload\n\nvolumes:\n postgres_data:\n"}, "552bc3d7c52c516a33cf7a3381938b1d01087654": {"t": 1785749369.1876862, "n": 654, "h": "311c7ebf6d91ec6f", "c": "version: \"3.9\"\n\nservices:\n analytics_db:\n image: postgres:16-alpine\n container_name: analytics_db\n restart: unless-stopped\n environment:\n POSTGRES_USER: ${POSTGRES_USER:-analytics}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-analytics_pass}\n POSTGRES_DB: ${POSTGRES_DB:-analytics_db}\n ports:\n - \"${POSTGRES_PORT:-5432}:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql:ro\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\nvolumes:\n postgres_data:\n"}}}}