- Create jobs service (port 9103) for job postings management - Create leads service (port 9118) for lead/requirement management - Update gateway to route /api/jobs to jobs service - Update gateway to route /api/leads to leads service - Add jobs and leads to Woodpecker CI matrix
363 lines
12 KiB
YAML
363 lines
12 KiB
YAML
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: nxtgauge
|
|
POSTGRES_PASSWORD: nxtgauge_dev
|
|
POSTGRES_DB: nxtgauge_db
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
- ./scripts/seed.sql:/docker-entrypoint-initdb.d/seed.sql
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U nxtgauge -d nxtgauge_db"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
restart: unless-stopped
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redisdata:/data
|
|
command: redis-server --appendonly yes
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
# ── Gateway ───────────────────────────────────────────────────────────────
|
|
|
|
gateway:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-gateway:high-performance-latest
|
|
ports:
|
|
- "9100:9100"
|
|
environment:
|
|
PORT: "9100"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
RUST_LOG: info
|
|
FRONTEND_URL: http://localhost:9201
|
|
ADMIN_URL: http://localhost:9202
|
|
USERS_SERVICE_URL: http://users:9101
|
|
COMPANIES_SERVICE_URL: http://companies:9102
|
|
JOBS_SERVICE_URL: http://jobs:9103
|
|
LEADS_SERVICE_URL: http://leads:9118
|
|
JOB_SEEKERS_SERVICE_URL: http://job-seekers:9104
|
|
CUSTOMERS_SERVICE_URL: http://customers:9105
|
|
EMPLOYEES_SERVICE_URL: http://employees:9106
|
|
PHOTOGRAPHERS_SERVICE_URL: http://photographers:9107
|
|
TUTORS_SERVICE_URL: http://tutors:9108
|
|
MAKEUP_ARTISTS_SERVICE_URL: http://makeup-artists:9109
|
|
DEVELOPERS_SERVICE_URL: http://developers:9110
|
|
VIDEO_EDITORS_SERVICE_URL: http://video-editors:9111
|
|
GRAPHIC_DESIGNERS_SERVICE_URL: http://graphic-designers:9112
|
|
SOCIAL_MEDIA_MANAGERS_SERVICE_URL: http://social-media-managers:9113
|
|
FITNESS_TRAINERS_SERVICE_URL: http://fitness-trainers:9114
|
|
CATERING_SERVICES_SERVICE_URL: http://catering-services:9115
|
|
PAYMENTS_SERVICE_URL: http://payments:9116
|
|
UGC_CONTENT_CREATORS_SERVICE_URL: http://ugc-content-creators:9117
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
users:
|
|
condition: service_started
|
|
companies:
|
|
condition: service_started
|
|
jobs:
|
|
condition: service_started
|
|
leads:
|
|
condition: service_started
|
|
job-seekers:
|
|
condition: service_started
|
|
customers:
|
|
condition: service_started
|
|
employees:
|
|
condition: service_started
|
|
photographers:
|
|
condition: service_started
|
|
tutors:
|
|
condition: service_started
|
|
makeup-artists:
|
|
condition: service_started
|
|
developers:
|
|
condition: service_started
|
|
video-editors:
|
|
condition: service_started
|
|
graphic-designers:
|
|
condition: service_started
|
|
social-media-managers:
|
|
condition: service_started
|
|
fitness-trainers:
|
|
condition: service_started
|
|
catering-services:
|
|
condition: service_started
|
|
payments:
|
|
condition: service_started
|
|
ugc-content-creators:
|
|
condition: service_started
|
|
|
|
# ── Core Services ─────────────────────────────────────────────────────────
|
|
|
|
users:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-users:high-performance-latest
|
|
environment:
|
|
PORT: "9101"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
companies:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-companies:high-performance-latest
|
|
environment:
|
|
PORT: "9102"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
jobs:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-jobs:high-performance-latest
|
|
environment:
|
|
PORT: "9103"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
leads:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-leads:high-performance-latest
|
|
environment:
|
|
PORT: "9118"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
job-seekers:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-job-seekers:high-performance-latest
|
|
environment:
|
|
PORT: "9104"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
customers:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-customers:high-performance-latest
|
|
environment:
|
|
PORT: "9105"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
employees:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-employees:high-performance-latest
|
|
environment:
|
|
PORT: "9106"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
# ── 9 Profession Services ─────────────────────────────────────────────────
|
|
|
|
photographers:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-photographers:high-performance-latest
|
|
environment:
|
|
PORT: "9107"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
tutors:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-tutors:high-performance-latest
|
|
environment:
|
|
PORT: "9108"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
makeup-artists:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-makeup-artists:high-performance-latest
|
|
environment:
|
|
PORT: "9109"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
developers:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-developers:high-performance-latest
|
|
environment:
|
|
PORT: "9110"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
video-editors:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-video-editors:high-performance-latest
|
|
environment:
|
|
PORT: "9111"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
graphic-designers:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-graphic-designers:high-performance-latest
|
|
environment:
|
|
PORT: "9112"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
social-media-managers:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-social-media-managers:high-performance-latest
|
|
environment:
|
|
PORT: "9113"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
fitness-trainers:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-fitness-trainers:high-performance-latest
|
|
environment:
|
|
PORT: "9114"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
catering-services:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-catering-services:high-performance-latest
|
|
environment:
|
|
PORT: "9115"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
# ── Payments ──────────────────────────────────────────────────────────────
|
|
|
|
payments:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-payments:high-performance-latest
|
|
environment:
|
|
PORT: "9116"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
# ── UGC ───────────────────────────────────────────────────────────────────
|
|
|
|
ugc-content-creators:
|
|
platform: linux/amd64
|
|
image: ghcr.io/traceworks2023/nxtgauge-rust-ugc-content-creators:high-performance-latest
|
|
environment:
|
|
PORT: "9117"
|
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: local_dev_jwt_secret
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
volumes:
|
|
pgdata:
|
|
redisdata:
|