fix: Align nginx backend port for production Docker deployments (v2.2.2) (#88)

Fix 502 Bad Gateway on root path in production Docker/Traefik deployments.

  - nginx.conf: backend:3001 → backend:3000 (matches production container port)
  - docker-compose.yml: align dev environment to use port 3000
  - Bump version to 2.2.2
This commit is contained in:
Paul Nothaft
2026-01-08 15:51:10 +01:00
committed by GitHub
4 changed files with 10 additions and 10 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "picpeak-backend", "name": "picpeak-backend",
"version": "2.2.1", "version": "2.2.2",
"description": "Backend for PicPeak event photo sharing platform", "description": "Backend for PicPeak event photo sharing platform",
"main": "server.js", "main": "server.js",
"scripts": { "scripts": {
+3 -3
View File
@@ -7,7 +7,7 @@ services:
restart: unless-stopped restart: unless-stopped
environment: environment:
- NODE_ENV=${NODE_ENV:-production} - NODE_ENV=${NODE_ENV:-production}
- PORT=3001 - PORT=3000
- JWT_SECRET=${JWT_SECRET} - JWT_SECRET=${JWT_SECRET}
- ADMIN_USERNAME=${ADMIN_USERNAME:-admin} - ADMIN_USERNAME=${ADMIN_USERNAME:-admin}
- ADMIN_EMAIL=${ADMIN_EMAIL:[email protected]} - ADMIN_EMAIL=${ADMIN_EMAIL:[email protected]}
@@ -43,12 +43,12 @@ services:
- ./backup:/backup - ./backup:/backup
- ./storage:/app/storage - ./storage:/app/storage
ports: ports:
- "${BACKEND_PORT:-3001}:3001" - "${BACKEND_PORT:-3001}:3000"
depends_on: depends_on:
postgres: postgres:
condition: service_healthy condition: service_healthy
healthcheck: healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://127.0.0.1:3001/health"] test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://127.0.0.1:3000/health"]
interval: 30s interval: 30s
timeout: 10s timeout: 10s
retries: 3 retries: 3
+5 -5
View File
@@ -43,7 +43,7 @@ server {
# API proxy # API proxy
location /api { location /api {
proxy_pass http://backend:3001; proxy_pass http://backend:3000;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade'; proxy_set_header Connection 'upgrade';
@@ -61,7 +61,7 @@ server {
# Photo serving proxy # Photo serving proxy
location /photos { location /photos {
proxy_pass http://backend:3001; proxy_pass http://backend:3000;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
@@ -75,7 +75,7 @@ server {
# Thumbnail serving proxy # Thumbnail serving proxy
location /thumbnails { location /thumbnails {
proxy_pass http://backend:3001; proxy_pass http://backend:3000;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
@@ -90,7 +90,7 @@ server {
# Uploads serving proxy (logos, favicons, watermarks) # Uploads serving proxy (logos, favicons, watermarks)
# ^~ modifier stops regex matching, ensuring uploads are proxied not served locally # ^~ modifier stops regex matching, ensuring uploads are proxied not served locally
location ^~ /uploads { location ^~ /uploads {
proxy_pass http://backend:3001; proxy_pass http://backend:3000;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
@@ -104,7 +104,7 @@ server {
# Delegate root requests to backend for public landing page handling # Delegate root requests to backend for public landing page handling
location = / { location = / {
proxy_pass http://backend:3001/; proxy_pass http://backend:3000/;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade'; proxy_set_header Connection 'upgrade';
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "picpeak-frontend", "name": "picpeak-frontend",
"private": true, "private": true,
"version": "2.2.1", "version": "2.2.2",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",