Files
DosVault/DOCKER.md
2025-09-06 13:53:44 -04:00

2.5 KiB

DosVault Docker Deployment

Quick Start

  1. Copy the environment template:

    cp .env.example .env
    
  2. Edit .env with your configuration:

    • Set IGDB_CLIENT_ID and IGDB_SECRET_KEY (required)
    • Set ROMS_PATH to your ROM collection directory
    • Optionally customize host/port settings
  3. Start the application:

    docker-compose up -d
    
  4. Create admin user:

    docker-compose exec dosvault python src/create_admin.py
    
  5. Access the application:

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 file
    • roms.db - SQLite database
    • images/ - Downloaded game artwork
    • logs/ - 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 db-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