Files
MeshVault/.env.example
T
Keith Solomon d3e8cf8fae build: M1 Dockerized development stack with PHP skeleton, config/logging, Tailwind assets, and wrappers
Implements MeshVault M1 (issues #6–11):

- Four-service Docker Compose stack (nginx, PHP-FPM 8.3, PostgreSQL 17, Node assets)
- Slim 4 + PHP-DI routing with escaped PHP views and production/dev error handling
- Immutable validated AppConfig with redacted diagnostics
- JSON stdout Monolog logging with job-scoped context
- Tailwind CSS v4 deterministic locked builds with template scanning
- POSIX and PowerShell dev wrappers (up/down/test/lint/assets/watch)
- Startup config validation fails before FPM serves as unprivileged www-data
- migrate/seed explicitly unavailable until M2 (#12); #10 remains open

Verified via clean-start acceptance on remote host (keith@192.168.2.23).
2026-10-11 16:45:45 -05:00

31 lines
1.5 KiB
Bash

# Copy to ignored .env and choose a private password before starting.
COMPOSE_PROJECT_NAME=meshvault-m1
MESHVAULT_HTTP_HOST=127.0.0.1
MESHVAULT_HTTP_PORT=8090
MESHVAULT_DB_NAME=meshvault
MESHVAULT_DB_USER=meshvault
MESHVAULT_DB_PASSWORD=
# Dedicated managed destination only, never an original collection.
# Host directory must already exist and be writable by container UID/GID 33.
MESHVAULT_LIBRARY_HOST_DIR=./library
# Absolute in-container path, outside /var/www/html; keep both paths distinct.
MESHVAULT_LIBRARY_DIR=/var/lib/meshvault/library
# Application configuration (Task2 library; startup/Compose wiring is Task3).
# Native PHP does NOT load this file: export variables in the shell or pass an
# explicit string array to AppConfig::fromEnvironment(). Never commit secrets.
# Defaults apply only when a key is absent; explicitly empty values are invalid.
# Allowed: development, test, production. Default: production.
MESHVAULT_ENV=development
# PSR-3: debug, info, notice, warning, error, critical, alert, emergency. Default: info.
MESHVAULT_LOG_LEVEL=info
# Required DB_HOST/DB_NAME/DB_USER/DB_PASSWORD and LIBRARY_DIR have no defaults.
# DB host/name/user must have no controls or surrounding whitespace.
# Password is preserved verbatim; blank/whitespace-only or NUL is invalid.
MESHVAULT_DB_HOST=db
# Decimal digits 1..65535; default: 5432.
MESHVAULT_DB_PORT=5432
# LIBRARY_DIR must be absolute, existing and writable by the actual runtime user.
# Validation never creates/chmods directories or opens a database connection.