37 lines
1.5 KiB
YAML
37 lines
1.5 KiB
YAML
services:
|
|
|
|
# ── .NET API + Razor Pages + Static Files ────────────────────────────────────
|
|
api:
|
|
image: mirror.soroushasadi.com/drsousan/api:${API_TAG:-latest}
|
|
build: # used by local: docker compose build
|
|
context: ./DrSousan.Api
|
|
dockerfile: Dockerfile
|
|
container_name: drsousan_api
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${HOST_PORT:-5000}:8080" # http://localhost:5000
|
|
volumes:
|
|
- db_data:/data # SQLite database (persistent)
|
|
- uploads_data:/app/wwwroot/uploads # user-uploaded images (persistent)
|
|
environment:
|
|
# Database — SQLite stored on /data volume
|
|
ConnectionStrings__Default: "Data Source=/data/drsousan.db"
|
|
|
|
# JWT — CHANGE Jwt__Key in production (min 32 chars)
|
|
Jwt__Key: "${JWT_KEY:-DrSousanSecretKey2024!ChangeThisInProduction!MinLength32Chars}"
|
|
Jwt__Issuer: "${JWT_ISSUER:-DrSousanApi}"
|
|
Jwt__Audience: "${JWT_AUDIENCE:-DrSousanAdmin}"
|
|
|
|
# Admin login — override via .env file in production
|
|
Admin__Username: "${ADMIN_USERNAME:-admin}"
|
|
Admin__Password: "${ADMIN_PASSWORD:-admin123}"
|
|
|
|
ASPNETCORE_ENVIRONMENT: "Production"
|
|
|
|
# ── Named Volumes ────────────────────────────────────────────────────────────
|
|
volumes:
|
|
db_data:
|
|
driver: local
|
|
uploads_data:
|
|
driver: local
|