- require ADMIN_PASSWORD (no default), remove CORS - close public DB port, move DB credentials to .env (DB_PASSWORD) - fix HTML escaping, add helmet + sec headers (no CSP due to inline scripts) - rate limit public routes by IP (express-rate-limit) - validate restore data and confine file unlinking to uploads/ - block dangerous upload extensions, 30MB per-entry limit, SVG not served inline - return 400 on unknown group_id in POST /api/entries - add commented Caddy/Let's Encrypt reverse-proxy scaffold + Caddyfile.example - update README
20 lines
1.0 KiB
Caddyfile
20 lines
1.0 KiB
Caddyfile
# Пример конфигурации Caddy для публичного развёртывания WhatIDo.
|
||
#
|
||
# Порядок включения:
|
||
# 1. Скопируйте этот файл в ./Caddyfile (cp Caddyfile.example Caddyfile)
|
||
# 2. Замените yourdomain.example на реальный домен/WWW, указывающий на сервер
|
||
# 3. В docker-compose.yml расскомментируйте сервис caddy (и тома caddy_data/caddy_config)
|
||
# и переведите блок ports сервиса app в expose (см. комментарии в compose)
|
||
# 4. docker compose up -d --build
|
||
#
|
||
# Caddy автоматически получит Let's Encrypt сертификат на 80/443 портах.
|
||
# Запрос к app идёт по HTTPS на внутренний порт 3443 (самоподписанный серт
|
||
# приложения, поэтому tls_insecure_skip_verify).
|
||
|
||
yourdomain.example {
|
||
reverse_proxy app:3443 {
|
||
transport http {
|
||
tls_insecure_skip_verify
|
||
}
|
||
}
|
||
} |