Restored all configuration and documentation files that were missing: - devenv.nix and devenv.lock for development environment - README.md, CLAUDE.md, DOCKER.md, WARP.md for documentation - alembic.ini for database migrations - requirements.txt for Python dependencies - Dockerfile, docker-compose.yml, entrypoint.sh for containerization - build.sh for build automation - pytest.ini for test configuration All database concurrency improvements and logging fixes remain intact. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2.6 KiB
2.6 KiB
DosVault Docker Deployment
Quick Start
-
Copy the environment template:
cp .env.example .env -
Edit
.envwith your configuration:- Set
IGDB_CLIENT_IDandIGDB_SECRET_KEY(required) - Set
ROMS_PATHto your ROM collection directory- Set
DOSVAULT_ADMIN_USERNAMEto you admin username - Set
DOSVAULT_ADMIN_EMAILto your admin email - Set
DOSVAULT_ADMIN_PASSWORDto your admin password
- Set
- Optionally customize host/port settings
- Set
-
Start the application:
docker-compose up -d -
Create admin user:
docker-compose exec dosvault python src/create_admin.py -
Access the application:
- Web interface: http://localhost:8080
- Admin panel: http://localhost:8080/admin
Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
IGDB_CLIENT_ID |
Yes | Twitch API Client ID |
IGDB_SECRET_KEY |
Yes | Twitch API Client Secret |
ROMS_PATH |
No | Path to ROM collection (default: ./roms) |
DOSFRONTEND_CONFIG_DIR |
No | Application data directory (default: /app/data) |
Configuration Persistence
Configuration changes made through the web interface are automatically persisted to the mounted volume:
- In Docker: Configuration is stored in
/app/data/config.json(mounted volume) - Regular install: Configuration is stored in
~/.config/dosfrontend/config.json - File structure: All application data uses the same base directory:
config.json- Main configuration fileroms.db- SQLite databaseimages/- Downloaded game artworklogs/- Application logs
Volume Mounts
dosvault_data:/app/data- Application data (database, images, logs)${ROMS_PATH}:/app/data/roms:ro- ROM collection (read-only)
Database Management
Initialize Database
docker-compose exec dosvault python src/migrate.py init
Run Migrations
docker-compose exec dosvault python src/migrate.py upgrade
Scrape ROM Metadata
docker-compose exec dosvault python -m src
Maintenance
View Logs
docker-compose logs -f dosvault
Backup Database
docker-compose exec dosvault cp /app/data/roms.db /app/data/backup.db
docker cp $(docker-compose ps -q dosvault):/app/data/backup.db ./backup.db
Update Application
docker-compose pull
docker-compose up -d
Troubleshooting
Check Container Health
docker-compose ps
Access Container Shell
docker-compose exec dosvault bash
Reset Data
docker-compose down -v
docker-compose up -d