Files
polskalokalnie/docker-compose.prod.yml
debian ad1d573e89
Deploy Polska Lokalnie / deploy (push) Successful in 12s
Drobne poprawki bezpieczenstwa z audytu
- /api/listings/favorites i /mine/** wymagaja logowania (anonimowo byl blad 500).
- Nowa rozmowa tylko o opublikowanym ogloszeniu.
- Licznik wyswietlen: jedno wyswietlenie na IP i ogloszenie na godzine.
- Rezygnacja z mailingu: GET pyta o potwierdzenie, wypisuje dopiero POST
  (tez z przycisku programu pocztowego); podpis porownywany w stalym czasie.
- Usuniecie konta usuwa jego ogloszenia.
- Haslo przy rejestracji min. 8 znakow; resend-phone-otp nie zdradza, czy konto istnieje.
- docker-compose.prod.yml bez domyslnego Admin123!; bez hasla konto admina
  nie jest zakladane (blad w logu).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-23 17:03:05 +02:00

61 lines
2.5 KiB
YAML

# Nazwa projektu na sztywno: bez tego Compose bierze ja z nazwy katalogu ("app"),
# a na serwerze kazda aplikacja siedzi w katalogu o tej samej nazwie - komenda bez -p
# trafialaby wtedy w stack innej aplikacji.
name: polskalokalnie
services:
db:
restart: unless-stopped
image: postgres:16-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB:-polskalokalnie}
POSTGRES_USER: ${POSTGRES_USER:-polskalokalnie}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-polskalokalnie_dev}
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-polskalokalnie} -d ${POSTGRES_DB:-polskalokalnie}"]
interval: 10s
timeout: 5s
retries: 5
backend:
restart: unless-stopped
build:
context: ./backend
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${POSTGRES_DB:-polskalokalnie}
SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER:-polskalokalnie}
SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD:-polskalokalnie_dev}
SPRING_JPA_HIBERNATE_DDL_AUTO: ${SPRING_JPA_HIBERNATE_DDL_AUTO:-update}
# Bez tych zmiennych backend bierze wartosci domyslne z application.yml, wiec login i haslo
# administratora ustawione w .env nie mialy zadnego wplywu na dzialajaca aplikacje.
APP_ADMIN_EMAIL: ${APP_ADMIN_EMAIL:-admin@softspm.com}
# Bez wartosci domyslnej: brak hasla w .env.production oznacza, ze konto administratora nie
# zostanie zalozone (blad w logu), zamiast powstac z jawnym haslem z repozytorium.
APP_ADMIN_PASSWORD: ${APP_ADMIN_PASSWORD:-}
APP_ADMIN_NAME: ${APP_ADMIN_NAME:-Administrator Polska Lokalnie}
# true = przy starcie ustaw haslo administratora na APP_ADMIN_PASSWORD (odzyskanie dostepu).
APP_ADMIN_RESET_PASSWORD: ${APP_ADMIN_RESET_PASSWORD:-false}
# Sekret podpisujacy tokeny sesji - bez wartosci domyslnej. Gdyby .env.production sie nie
# wczytal, wdrozenie ma sie zatrzymac, a nie wystartowac z jawnym sekretem z repozytorium
# (z nim kazdy moglby wystawic sobie token administratora).
APP_JWT_SECRET: ${APP_JWT_SECRET:?Brak APP_JWT_SECRET w .env.production}
APP_PUBLIC_BASE_URL: ${APP_PUBLIC_BASE_URL:-http://localhost}
depends_on:
db:
condition: service_healthy
web:
restart: unless-stopped
build:
context: .
dockerfile: nginx/Dockerfile
depends_on:
- backend
ports:
- "127.0.0.1:8082:80"
volumes:
postgres-data: