From bb5f40a027da9a4a1c39ecc19b4c042c01e3e803 Mon Sep 17 00:00:00 2001 From: Waleed Date: Thu, 28 Aug 2025 17:16:24 -0700 Subject: [PATCH] feat(pg): added ability to customize postgres port when running containerized app (#1173) --- .devcontainer/docker-compose.yml | 10 +++++----- apps/sim/.env.example | 3 +++ docker-compose.local.yml | 8 ++++---- docker-compose.ollama.yml | 8 ++++---- docker-compose.prod.yml | 8 ++++---- 5 files changed, 20 insertions(+), 17 deletions(-) diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 5a959dbd39..3dc62b5ebc 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -9,8 +9,8 @@ services: command: sleep infinity environment: - NODE_ENV=development - - DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio - - POSTGRES_URL=postgresql://postgres:postgres@db:5432/simstudio + - DATABASE_URL=postgresql://postgres:postgres@db:${POSTGRES_PORT:-5432}/simstudio + - POSTGRES_URL=postgresql://postgres:postgres@db:${POSTGRES_PORT:-5432}/simstudio - BETTER_AUTH_URL=http://localhost:3000 - NEXT_PUBLIC_APP_URL=http://localhost:3000 - BUN_INSTALL_CACHE_DIR=/home/bun/.bun/cache @@ -39,7 +39,7 @@ services: command: sleep infinity environment: - NODE_ENV=development - - DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio + - DATABASE_URL=postgresql://postgres:postgres@db:${POSTGRES_PORT:-5432}/simstudio - BETTER_AUTH_URL=http://localhost:3000 - NEXT_PUBLIC_APP_URL=http://localhost:3000 depends_on: @@ -60,7 +60,7 @@ services: context: .. dockerfile: docker/db.Dockerfile environment: - - DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio + - DATABASE_URL=postgresql://postgres:postgres@db:${POSTGRES_PORT:-5432}/simstudio depends_on: db: condition: service_healthy @@ -77,7 +77,7 @@ services: - POSTGRES_PASSWORD=postgres - POSTGRES_DB=simstudio ports: - - "5432:5432" + - "${POSTGRES_PORT:-5432}:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s diff --git a/apps/sim/.env.example b/apps/sim/.env.example index ee2c0f84d6..0e55237157 100644 --- a/apps/sim/.env.example +++ b/apps/sim/.env.example @@ -1,6 +1,9 @@ # Database (Required) DATABASE_URL="postgresql://postgres:password@localhost:5432/postgres" +# PostgreSQL Port (Optional) - defaults to 5432 if not specified +# POSTGRES_PORT=5432 + # Authentication (Required) BETTER_AUTH_SECRET=your_secret_key # Use `openssl rand -hex 32` to generate, or visit https://www.better-auth.com/docs/installation BETTER_AUTH_URL=http://localhost:3000 diff --git a/docker-compose.local.yml b/docker-compose.local.yml index 4700314d6e..7af3f70560 100644 --- a/docker-compose.local.yml +++ b/docker-compose.local.yml @@ -10,7 +10,7 @@ services: limits: memory: 8G environment: - - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio} + - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-simstudio} - BETTER_AUTH_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000} - NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000} - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET:-your_auth_secret_here} @@ -41,7 +41,7 @@ services: context: . dockerfile: docker/realtime.Dockerfile environment: - - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio} + - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-simstudio} - NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000} - BETTER_AUTH_URL=${BETTER_AUTH_URL:-http://localhost:3000} - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET:-your_auth_secret_here} @@ -67,7 +67,7 @@ services: context: . dockerfile: docker/db.Dockerfile environment: - - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio} + - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-simstudio} depends_on: db: condition: service_healthy @@ -78,7 +78,7 @@ services: image: pgvector/pgvector:pg17 restart: always ports: - - '5432:5432' + - '${POSTGRES_PORT:-5432}:5432' environment: - POSTGRES_USER=${POSTGRES_USER:-postgres} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres} diff --git a/docker-compose.ollama.yml b/docker-compose.ollama.yml index e5b75cac02..94a44a56c7 100644 --- a/docker-compose.ollama.yml +++ b/docker-compose.ollama.yml @@ -13,7 +13,7 @@ services: limits: memory: 8G environment: - - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio} + - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-simstudio} - BETTER_AUTH_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000} - NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000} - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET:-sim_auth_secret_$(openssl rand -hex 16)} @@ -43,7 +43,7 @@ services: context: . dockerfile: docker/realtime.Dockerfile environment: - - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio} + - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-simstudio} - NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000} - BETTER_AUTH_URL=${BETTER_AUTH_URL:-http://localhost:3000} - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET:-sim_auth_secret_$(openssl rand -hex 16)} @@ -70,7 +70,7 @@ services: context: . dockerfile: docker/db.Dockerfile environment: - - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio} + - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-simstudio} depends_on: db: condition: service_healthy @@ -82,7 +82,7 @@ services: image: pgvector/pgvector:pg17 restart: always ports: - - '5432:5432' + - '${POSTGRES_PORT:-5432}:5432' environment: - POSTGRES_USER=${POSTGRES_USER:-postgres} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres} diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 4396b0e138..5c23c771af 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -9,7 +9,7 @@ services: limits: memory: 8G environment: - - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio} + - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-simstudio} - BETTER_AUTH_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000} - NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000} - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET:-your_auth_secret_here} @@ -46,7 +46,7 @@ services: limits: memory: 4G environment: - - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio} + - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-simstudio} - NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000} - BETTER_AUTH_URL=${BETTER_AUTH_URL:-http://localhost:3000} - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET:-your_auth_secret_here} @@ -63,7 +63,7 @@ services: migrations: image: ghcr.io/simstudioai/migrations:latest environment: - - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio} + - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-simstudio} depends_on: db: condition: service_healthy @@ -74,7 +74,7 @@ services: image: pgvector/pgvector:pg17 restart: unless-stopped ports: - - '5432:5432' + - '${POSTGRES_PORT:-5432}:5432' environment: - POSTGRES_USER=${POSTGRES_USER:-postgres} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}