fix: use unique ports 9100-9117 (avoids conflicts with BrowserOS on 9000/9103)

This commit is contained in:
Ashwin Kumar 2026-04-09 22:18:30 +02:00
parent d151653ab1
commit d46f455c03
18 changed files with 192 additions and 194 deletions

View file

@ -39,7 +39,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8093".to_string())
.unwrap_or_else(|_| "9115".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -40,7 +40,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8081".to_string())
.unwrap_or_else(|_| "9102".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -41,7 +41,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8083".to_string())
.unwrap_or_else(|_| "9105".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -39,7 +39,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8088".to_string())
.unwrap_or_else(|_| "9110".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -65,10 +65,10 @@ async fn main() {
.route("/health", get(|| async { "Employees OK" }))
.with_state(state);
let port: u16 = std::env::var("EMPLOYEES_PORT")
.unwrap_or_else(|_| "8085".to_string())
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "9106".to_string())
.parse()
.expect("EMPLOYEES_PORT must be a valid u16");
.expect("PORT must be a valid u16");
let addr = SocketAddr::from(([0, 0, 0, 0], port));
tracing::info!("Employees service listening on {}", addr);

View file

@ -39,7 +39,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8092".to_string())
.unwrap_or_else(|_| "9114".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -38,37 +38,37 @@ impl Services {
fn from_env() -> Self {
Self {
users_url: std::env::var("USERS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8080".to_string()),
.unwrap_or_else(|_| "http://localhost:9101".to_string()),
companies_url: std::env::var("COMPANIES_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8081".to_string()),
.unwrap_or_else(|_| "http://localhost:9102".to_string()),
job_seekers_url: std::env::var("JOB_SEEKERS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8082".to_string()),
.unwrap_or_else(|_| "http://localhost:9104".to_string()),
customers_url: std::env::var("CUSTOMERS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8083".to_string()),
.unwrap_or_else(|_| "http://localhost:9105".to_string()),
photographers_url: std::env::var("PHOTOGRAPHERS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8085".to_string()),
.unwrap_or_else(|_| "http://localhost:9107".to_string()),
makeup_artists_url: std::env::var("MAKEUP_ARTISTS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8086".to_string()),
.unwrap_or_else(|_| "http://localhost:9109".to_string()),
tutors_url: std::env::var("TUTORS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8087".to_string()),
.unwrap_or_else(|_| "http://localhost:9108".to_string()),
developers_url: std::env::var("DEVELOPERS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8088".to_string()),
.unwrap_or_else(|_| "http://localhost:9110".to_string()),
video_editors_url: std::env::var("VIDEO_EDITORS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8089".to_string()),
.unwrap_or_else(|_| "http://localhost:9111".to_string()),
graphic_designers_url: std::env::var("GRAPHIC_DESIGNERS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8090".to_string()),
.unwrap_or_else(|_| "http://localhost:9112".to_string()),
social_media_managers_url: std::env::var("SOCIAL_MEDIA_MANAGERS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8091".to_string()),
.unwrap_or_else(|_| "http://localhost:9113".to_string()),
fitness_trainers_url: std::env::var("FITNESS_TRAINERS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8092".to_string()),
.unwrap_or_else(|_| "http://localhost:9114".to_string()),
catering_services_url: std::env::var("CATERING_SERVICES_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8093".to_string()),
.unwrap_or_else(|_| "http://localhost:9115".to_string()),
ugc_content_creators_url: std::env::var("UGC_CONTENT_CREATORS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8095".to_string()),
.unwrap_or_else(|_| "http://localhost:9117".to_string()),
payments_url: std::env::var("PAYMENTS_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8094".to_string()),
.unwrap_or_else(|_| "http://localhost:9116".to_string()),
employees_url: std::env::var("EMPLOYEES_SERVICE_URL")
.unwrap_or_else(|_| "http://localhost:8096".to_string()),
.unwrap_or_else(|_| "http://localhost:9106".to_string()),
client: reqwest::Client::new(),
}
}
@ -240,7 +240,7 @@ async fn main() {
.with_state(services);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8000".to_string())
.unwrap_or_else(|_| "9100".to_string())
.parse()
.expect("PORT must be a valid u16");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -39,7 +39,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8090".to_string())
.unwrap_or_else(|_| "9112".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -39,7 +39,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8082".to_string())
.unwrap_or_else(|_| "9104".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -39,7 +39,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8087".to_string())
.unwrap_or_else(|_| "9109".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -351,7 +351,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8094".to_string())
.unwrap_or_else(|_| "9116".to_string())
.parse()
.expect("PORT must be a valid u16");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -39,7 +39,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8085".to_string())
.unwrap_or_else(|_| "9107".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -39,7 +39,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8091".to_string())
.unwrap_or_else(|_| "9113".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -39,7 +39,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8086".to_string())
.unwrap_or_else(|_| "9108".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -37,7 +37,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8095".to_string())
.unwrap_or_else(|_| "9117".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -107,7 +107,7 @@ async fn main() {
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8080".to_string())
.unwrap_or_else(|_| "9101".to_string())
.parse()
.expect("PORT must be a valid u16");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -39,7 +39,7 @@ async fn main() {
.with_state(state);
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "8089".to_string())
.unwrap_or_else(|_| "9111".to_string())
.parse()
.expect("PORT must be a number");
let addr = SocketAddr::from(([0, 0, 0, 0], port));

View file

@ -1,20 +1,18 @@
version: '3.9'
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: nxtgauge
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-nxtgauge_dev}
POSTGRES_PASSWORD: nxtgauge_dev
POSTGRES_DB: nxtgauge_db
ports:
- '5432:5432'
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
- ./scripts/init-db.sql:/docker-entrypoint-initdb.d/init.sql
- ./scripts/seed.sql:/docker-entrypoint-initdb.d/seed.sql
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U nxtgauge -d nxtgauge_db']
test: ["CMD-SHELL", "pg_isready -U nxtgauge -d nxtgauge_db"]
interval: 5s
timeout: 5s
retries: 10
@ -23,63 +21,93 @@ services:
image: redis:7-alpine
restart: unless-stopped
ports:
- '6379:6379'
- "6379:6379"
volumes:
- redisdata:/data
command: redis-server --appendonly yes
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 10
# ── Core Services ────────────────────────────────────────────────────────
# ── Gateway ───────────────────────────────────────────────────────────────
gateway:
build:
context: .
dockerfile: apps/gateway/Dockerfile
environment:
PORT: 8000
USERS_SERVICE_URL: http://users:8080
COMPANIES_SERVICE_URL: http://companies:8081
JOB_SEEKERS_SERVICE_URL: http://job_seekers:8082
CUSTOMERS_SERVICE_URL: http://customers:8083
PHOTOGRAPHERS_SERVICE_URL: http://photographers:8085
MAKEUP_ARTISTS_SERVICE_URL: http://makeup_artists:8086
TUTORS_SERVICE_URL: http://tutors:8087
DEVELOPERS_SERVICE_URL: http://developers:8088
VIDEO_EDITORS_SERVICE_URL: http://video_editors:8089
GRAPHIC_DESIGNERS_SERVICE_URL: http://graphic_designers:8090
SOCIAL_MEDIA_MANAGERS_SERVICE_URL: http://social_media_managers:8091
FITNESS_TRAINERS_SERVICE_URL: http://fitness_trainers:8092
CATERING_SERVICES_SERVICE_URL: http://catering_services:8093
PAYMENTS_SERVICE_URL: http://payments:8094
REDIS_URL: redis://redis:6379
image: ghcr.io/traceworks2023/nxtgauge-rust-gateway:high-performance-latest
ports:
- '8000:8000'
- "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:3000
ADMIN_URL: http://localhost:4000
USERS_SERVICE_URL: http://users:9101
COMPANIES_SERVICE_URL: http://companies:9102
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
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:
build:
context: .
dockerfile: apps/users/Dockerfile
image: ghcr.io/traceworks2023/nxtgauge-rust-users:high-performance-latest
environment:
PORT: 8080
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9101"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_EXPIRY_MINUTES: 15
REFRESH_TOKEN_EXPIRY_DAYS: 30
FRONTEND_URL: ${FRONTEND_URL:-http://localhost:3000}
SMTP_HOST: ${SMTP_HOST:-}
SMTP_PORT: ${SMTP_PORT:-587}
SMTP_USER: ${SMTP_USER:-}
SMTP_PASS: ${SMTP_PASS:-}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
@ -87,29 +115,25 @@ services:
condition: service_healthy
companies:
build:
context: .
dockerfile: apps/companies/Dockerfile
image: ghcr.io/traceworks2023/nxtgauge-rust-companies:high-performance-latest
environment:
PORT: 8081
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9102"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
job_seekers:
build:
context: .
dockerfile: apps/job_seekers/Dockerfile
job-seekers:
image: ghcr.io/traceworks2023/nxtgauge-rust-job-seekers:high-performance-latest
environment:
PORT: 8082
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9104"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
@ -117,14 +141,25 @@ services:
condition: service_healthy
customers:
build:
context: .
dockerfile: apps/customers/Dockerfile
image: ghcr.io/traceworks2023/nxtgauge-rust-customers:high-performance-latest
environment:
PORT: 8083
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9105"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
employees:
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
@ -134,29 +169,12 @@ services:
# ── 9 Profession Services ─────────────────────────────────────────────────
photographers:
build:
context: .
dockerfile: apps/photographers/Dockerfile
image: ghcr.io/traceworks2023/nxtgauge-rust-photographers:high-performance-latest
environment:
PORT: 8085
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9107"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
makeup_artists:
build:
context: .
dockerfile: apps/makeup_artists/Dockerfile
environment:
PORT: 8086
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
@ -164,14 +182,25 @@ services:
condition: service_healthy
tutors:
build:
context: .
dockerfile: apps/tutors/Dockerfile
image: ghcr.io/traceworks2023/nxtgauge-rust-tutors:high-performance-latest
environment:
PORT: 8087
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9108"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
makeup-artists:
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
@ -179,89 +208,77 @@ services:
condition: service_healthy
developers:
build:
context: .
dockerfile: apps/developers/Dockerfile
image: ghcr.io/traceworks2023/nxtgauge-rust-developers:high-performance-latest
environment:
PORT: 8088
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9110"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
video_editors:
build:
context: .
dockerfile: apps/video_editors/Dockerfile
video-editors:
image: ghcr.io/traceworks2023/nxtgauge-rust-video-editors:high-performance-latest
environment:
PORT: 8089
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9111"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
graphic_designers:
build:
context: .
dockerfile: apps/graphic_designers/Dockerfile
graphic-designers:
image: ghcr.io/traceworks2023/nxtgauge-rust-graphic-designers:high-performance-latest
environment:
PORT: 8090
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9112"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
social_media_managers:
build:
context: .
dockerfile: apps/social_media_managers/Dockerfile
social-media-managers:
image: ghcr.io/traceworks2023/nxtgauge-rust-social-media-managers:high-performance-latest
environment:
PORT: 8091
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9113"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
fitness_trainers:
build:
context: .
dockerfile: apps/fitness_trainers/Dockerfile
fitness-trainers:
image: ghcr.io/traceworks2023/nxtgauge-rust-fitness-trainers:high-performance-latest
environment:
PORT: 8092
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9114"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
catering_services:
build:
context: .
dockerfile: apps/catering_services/Dockerfile
catering-services:
image: ghcr.io/traceworks2023/nxtgauge-rust-catering-services:high-performance-latest
environment:
PORT: 8093
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9115"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
@ -271,46 +288,27 @@ services:
# ── Payments ──────────────────────────────────────────────────────────────
payments:
build:
context: .
dockerfile: apps/payments/Dockerfile
image: ghcr.io/traceworks2023/nxtgauge-rust-payments:high-performance-latest
environment:
PORT: 8094
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9116"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
RAZORPAY_KEY_ID: ${RAZORPAY_KEY_ID:-}
RAZORPAY_KEY_SECRET: ${RAZORPAY_KEY_SECRET:-}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
employees:
build:
context: .
dockerfile: apps/employees/Dockerfile
environment:
PORT: 8095
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
# ── UGC ───────────────────────────────────────────────────────────────────
ugc_content_creators:
build:
context: .
dockerfile: apps/ugc_content_creators/Dockerfile
ugc-content-creators:
image: ghcr.io/traceworks2023/nxtgauge-rust-ugc-content-creators:high-performance-latest
environment:
PORT: 8096
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
PORT: "9117"
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_SECRET: local_dev_jwt_secret
depends_on:
postgres:
condition: service_healthy