- Use standard user uid:gid 1000:1000 instead of 100:101 (postfix:crontab)
- Add user override in docker-compose.yml to ensure consistent uid:gid
- Prevents .env files from having system service account permissions
- Addresses critical security concern in issue #109
Previously, configuration created via the web UI was lost when containers were
recreated or updated, requiring users to reconfigure each time. This was due to
the .env file being stored inside the container filesystem.
Changes:
- Add persistent volume mount for configuration directory in docker-compose.yml
- Update ConfigApi to auto-detect Docker vs development environment
- Configure dotenv loading to use persistent config path when available
- Update file watcher to monitor correct .env file location
- Remove conflicting host .env file mount
- Update README with new volume configuration instructions
Configuration now persists across container updates, eliminating the need for
users to reconfigure after updates.
Fixes#94🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Consolidate server dependencies into root package.json.
Refactor Dockerfile to use multi-stage build, build CSS,
run as non-root user, and install production dependencies only.
Update .gitignore and docker-compose.yml build context.
- Remove GitHub workflows and related files
- Simplify Dockerfile to focus on production build only
- Update README to focus on local development with Docker for production
- Remove docker-compose and other Docker-related files
- Clean up documentation to match new simplified approach