a0ae58c29e
Upload/browse/delete UI for files under public/uploads/, covered by the existing /admin/* auth gate with no separate feature flag needed (no SQLite dependency to gate). Extension allowlist and max upload size are configurable; filenames are sanitized and de-duplicated on upload, and deletes re-verify the resolved path lands inside the upload directory before touching disk. Docker gains a fourth-turned-third named volume for public/uploads/ so uploads survive a rebuild. images/ (reserved scaffolding for a future image feature) is removed — nothing ever consumed it, and public/uploads/ now covers that use case. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
30 lines
720 B
YAML
30 lines
720 B
YAML
services:
|
|
web:
|
|
build: .
|
|
ports:
|
|
- "8080:80"
|
|
volumes:
|
|
- cache:/var/www/html/public/cache
|
|
- uploads:/var/www/html/public/uploads
|
|
- data:/var/www/html/data
|
|
# Uncomment to override the baked-in App/ with a host copy, no rebuild:
|
|
# - ./App:/var/www/html/App
|
|
|
|
# Optional — only needed if App/config.php adds a db_connections entry
|
|
# with driver: mysql. See /admin/docs/database.
|
|
# db:
|
|
# image: mysql:8
|
|
# environment:
|
|
# MYSQL_DATABASE: novaconium
|
|
# MYSQL_USER: novaconium
|
|
# MYSQL_PASSWORD: change-me
|
|
# MYSQL_ROOT_PASSWORD: change-me
|
|
# volumes:
|
|
# - mysql-data:/var/lib/mysql
|
|
|
|
volumes:
|
|
cache:
|
|
uploads:
|
|
data:
|
|
# mysql-data:
|