fix: use unique ports 9100-9117 (avoids conflicts with BrowserOS on 9000/9103)
This commit is contained in:
parent
d151653ab1
commit
d46f455c03
18 changed files with 192 additions and 194 deletions
|
|
@ -39,7 +39,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8093".to_string())
|
.unwrap_or_else(|_| "9115".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8081".to_string())
|
.unwrap_or_else(|_| "9102".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8083".to_string())
|
.unwrap_or_else(|_| "9105".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8088".to_string())
|
.unwrap_or_else(|_| "9110".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -65,10 +65,10 @@ async fn main() {
|
||||||
.route("/health", get(|| async { "Employees OK" }))
|
.route("/health", get(|| async { "Employees OK" }))
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("EMPLOYEES_PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8085".to_string())
|
.unwrap_or_else(|_| "9106".to_string())
|
||||||
.parse()
|
.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));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
||||||
tracing::info!("Employees service listening on {}", addr);
|
tracing::info!("Employees service listening on {}", addr);
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8092".to_string())
|
.unwrap_or_else(|_| "9114".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -38,37 +38,37 @@ impl Services {
|
||||||
fn from_env() -> Self {
|
fn from_env() -> Self {
|
||||||
Self {
|
Self {
|
||||||
users_url: std::env::var("USERS_SERVICE_URL")
|
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")
|
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")
|
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")
|
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")
|
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")
|
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")
|
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")
|
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")
|
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")
|
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")
|
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")
|
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")
|
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")
|
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")
|
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")
|
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(),
|
client: reqwest::Client::new(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -240,7 +240,7 @@ async fn main() {
|
||||||
.with_state(services);
|
.with_state(services);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8000".to_string())
|
.unwrap_or_else(|_| "9100".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a valid u16");
|
.expect("PORT must be a valid u16");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8090".to_string())
|
.unwrap_or_else(|_| "9112".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8082".to_string())
|
.unwrap_or_else(|_| "9104".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8087".to_string())
|
.unwrap_or_else(|_| "9109".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -351,7 +351,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8094".to_string())
|
.unwrap_or_else(|_| "9116".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a valid u16");
|
.expect("PORT must be a valid u16");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8085".to_string())
|
.unwrap_or_else(|_| "9107".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8091".to_string())
|
.unwrap_or_else(|_| "9113".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8086".to_string())
|
.unwrap_or_else(|_| "9108".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8095".to_string())
|
.unwrap_or_else(|_| "9117".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ async fn main() {
|
||||||
|
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8080".to_string())
|
.unwrap_or_else(|_| "9101".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a valid u16");
|
.expect("PORT must be a valid u16");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ async fn main() {
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
||||||
let port: u16 = std::env::var("PORT")
|
let port: u16 = std::env::var("PORT")
|
||||||
.unwrap_or_else(|_| "8089".to_string())
|
.unwrap_or_else(|_| "9111".to_string())
|
||||||
.parse()
|
.parse()
|
||||||
.expect("PORT must be a number");
|
.expect("PORT must be a number");
|
||||||
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
let addr = SocketAddr::from(([0, 0, 0, 0], port));
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,18 @@
|
||||||
version: '3.9'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:16-alpine
|
image: postgres:16-alpine
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: nxtgauge
|
POSTGRES_USER: nxtgauge
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-nxtgauge_dev}
|
POSTGRES_PASSWORD: nxtgauge_dev
|
||||||
POSTGRES_DB: nxtgauge_db
|
POSTGRES_DB: nxtgauge_db
|
||||||
ports:
|
ports:
|
||||||
- '5432:5432'
|
- "5432:5432"
|
||||||
volumes:
|
volumes:
|
||||||
- pgdata:/var/lib/postgresql/data
|
- 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:
|
healthcheck:
|
||||||
test: ['CMD-SHELL', 'pg_isready -U nxtgauge -d nxtgauge_db']
|
test: ["CMD-SHELL", "pg_isready -U nxtgauge -d nxtgauge_db"]
|
||||||
interval: 5s
|
interval: 5s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 10
|
retries: 10
|
||||||
|
|
@ -23,63 +21,93 @@ services:
|
||||||
image: redis:7-alpine
|
image: redis:7-alpine
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- '6379:6379'
|
- "6379:6379"
|
||||||
volumes:
|
volumes:
|
||||||
- redisdata:/data
|
- redisdata:/data
|
||||||
command: redis-server --appendonly yes
|
command: redis-server --appendonly yes
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ['CMD', 'redis-cli', 'ping']
|
test: ["CMD", "redis-cli", "ping"]
|
||||||
interval: 5s
|
interval: 5s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 10
|
retries: 10
|
||||||
|
|
||||||
# ── Core Services ────────────────────────────────────────────────────────
|
# ── Gateway ───────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
gateway:
|
gateway:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-gateway:high-performance-latest
|
||||||
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
|
|
||||||
ports:
|
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:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
redis:
|
redis:
|
||||||
condition: service_healthy
|
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:
|
users:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-users:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/users/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8080
|
PORT: "9101"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: local_dev_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:-}
|
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
@ -87,29 +115,25 @@ services:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
companies:
|
companies:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-companies:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/companies/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8081
|
PORT: "9102"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: local_dev_jwt_secret
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
redis:
|
redis:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
job_seekers:
|
job-seekers:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-job-seekers:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/job_seekers/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8082
|
PORT: "9104"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: local_dev_jwt_secret
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
@ -117,14 +141,25 @@ services:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
customers:
|
customers:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-customers:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/customers/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8083
|
PORT: "9105"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
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:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
@ -134,29 +169,12 @@ services:
|
||||||
# ── 9 Profession Services ─────────────────────────────────────────────────
|
# ── 9 Profession Services ─────────────────────────────────────────────────
|
||||||
|
|
||||||
photographers:
|
photographers:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-photographers:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/photographers/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8085
|
PORT: "9107"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
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:
|
|
||||||
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}
|
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
@ -164,14 +182,25 @@ services:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
tutors:
|
tutors:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-tutors:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/tutors/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8087
|
PORT: "9108"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
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:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
@ -179,89 +208,77 @@ services:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
developers:
|
developers:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-developers:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/developers/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8088
|
PORT: "9110"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: local_dev_jwt_secret
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
redis:
|
redis:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
video_editors:
|
video-editors:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-video-editors:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/video_editors/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8089
|
PORT: "9111"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: local_dev_jwt_secret
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
redis:
|
redis:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
graphic_designers:
|
graphic-designers:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-graphic-designers:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/graphic_designers/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8090
|
PORT: "9112"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: local_dev_jwt_secret
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
redis:
|
redis:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
social_media_managers:
|
social-media-managers:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-social-media-managers:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/social_media_managers/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8091
|
PORT: "9113"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: local_dev_jwt_secret
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
redis:
|
redis:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
fitness_trainers:
|
fitness-trainers:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-fitness-trainers:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/fitness_trainers/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8092
|
PORT: "9114"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: local_dev_jwt_secret
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
redis:
|
redis:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
catering_services:
|
catering-services:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-catering-services:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/catering_services/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8093
|
PORT: "9115"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: local_dev_jwt_secret
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
@ -271,46 +288,27 @@ services:
|
||||||
# ── Payments ──────────────────────────────────────────────────────────────
|
# ── Payments ──────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
payments:
|
payments:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-payments:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/payments/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8094
|
PORT: "9116"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: local_dev_jwt_secret
|
||||||
RAZORPAY_KEY_ID: ${RAZORPAY_KEY_ID:-}
|
|
||||||
RAZORPAY_KEY_SECRET: ${RAZORPAY_KEY_SECRET:-}
|
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
redis:
|
redis:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
employees:
|
# ── UGC ───────────────────────────────────────────────────────────────────
|
||||||
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_content_creators:
|
ugc-content-creators:
|
||||||
build:
|
image: ghcr.io/traceworks2023/nxtgauge-rust-ugc-content-creators:high-performance-latest
|
||||||
context: .
|
|
||||||
dockerfile: apps/ugc_content_creators/Dockerfile
|
|
||||||
environment:
|
environment:
|
||||||
PORT: 8096
|
PORT: "9117"
|
||||||
DATABASE_URL: postgresql://nxtgauge:${POSTGRES_PASSWORD:-nxtgauge_dev}@postgres:5432/nxtgauge_db
|
DATABASE_URL: postgresql://nxtgauge:nxtgauge_dev@postgres:5432/nxtgauge_db
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: local_dev_jwt_secret
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue