cartridge-legacy icon indicating copy to clipboard operation
cartridge-legacy copied to clipboard

Self-hosted game library.

⚠️ Deprecated

New repository at jamjnsn/cartridge.


Logo

A self-hosted game browser.

About

Cartridge Screenshot Cartridge is a convenient browser for your game collection with easy file downloads and automatically imported metadata and images. This project is designed to be self-hosted on your local server.

Roadmap

Cartridge is currently in development and not yet ready for use. Here's a rough to-do list for an alpha release:

  • ~~Game importer~~
  • ~~Game browser & downloads~~
  • Game search
  • ~~User administration (create, edit, delete)~~
  • Manual IGDB match fix

Development

Cartridge currently utilizes Laravel Sail for a convenient dev environment. By default, the app runs on port 80 and HMR runs on port 8080.

Requirements

Instructions

  1. Clone the repository.
    git clone https://github.com/jamjnsn/cartridge.git
    
  2. Install Composer packages using your local Composer:
    composer install
    
    OR using a temporary container:
    docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php81-composer:latest \
    composer install --ignore-platform-reqs
    
  3. Install Node packages
    sail npm i
    
  4. Create .env file.
    # Volumes
    GAMES_PATH=/path/to/roms
    
    # IGDB credentials
    TWITCH_CLIENT_ID=Your Client ID
    TWITCH_CLIENT_SECRET=Your Client Secret
    
  5. Initialize application. (Note: This should be run outside of the container to ensure the storage symlinks are created properly.)
    sail artisan cart:init
    
  6. Start containers with Sail.
    alias sail="bash vendor/bin/sail" # Optional: add alias to your shell profile
    sail up -d
    
  7. Start HMR.
    sail npm run watch
    

Built With