selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GameVault logo

Self-host GameVault

17.1.0

Self-hosted gaming platform for DRM-free game libraries

ReleaseSource AvailableOther
Updated8 hours ago
LanguageTypescript
Setup difficultyModerate
MobileResponsive
ThemeDark mode
Stars
328
Ports
8080 (HTTP server and Web UI), 8443 (HTTPS server (optional))
Docker
phalcode/gamevault-backend
GameVault library view showing game collection with cover artMulti-user and social features showing community gamingPlaytime and progress tracking dashboardAutomatic metadata enrichment with cover art and game detailsEasy installation via Microsoft Store and setup guideCommunity-driven development with Discord and GitHub links

What is GameVault?

GameVault Backend is the server component of a gaming platform you host yourself for DRM-free titles. It scans your storage for game files, pulls cover art and metadata from IGDB, and serves everything through a REST API and WebSockets. Players access their library via a built-in web interface or native desktop clients (Windows, Linux, macOS). The server handles multiple users with role-based permissions, parental controls, playtime statistics, and a plugin system. Deployment options include Docker Compose (with PostgreSQL or SQLite), CapRover, TrueNAS, UNRAID, Synology, or a standalone binary. The code is source-available under CC BY-NC-SA 4.0, not open source, and an optional GameVault+ subscription unlocks cloud saves and Steam/Discord integrations.

Should you self-host GameVault?

GameVault scores 49/100 on selfhost.directory (how scoring works) and ranks #10 of 14 in Gaming. It has 328 GitHub stars.

It shipped 6 stable releases in the past year. The latest, 17.1.0, came out on 27 October 2026. New versions land roughly every 2 months.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Other-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Retrom (58/100, 2 100 stars). It scores higher overall, so compare the two before you pick. See GameVault vs Retrom side by side.

Features

  • Automatic game indexing
  • Database backup & restore
  • Game save file syncRequires GameVault+ subscription
  • Metadata Enrichment
  • Multi-user support
  • OAuth2/OIDC Authentication
  • Parental Controls
  • Playtime Tracking
  • Plugin framework
  • REST API
  • Websocket Support
  • Web UI

GameVault README

How to configure GameVault

  • AUTH_BASIC_AUTH_ENABLEDtrueEnables or disables Basic Auth (username/password login).

    Enables or disables Basic Auth (username/password login).

    values: true, false

  • AUTH_OAUTH2_AUTH_URLThe OAuth2 authorization endpoint URL provided by your Identity Provider.

    The OAuth2 authorization endpoint URL provided by your Identity Provider.

    values: Any valid URL

  • AUTH_OAUTH2_CALLBACK_URLThe OAuth2 callback/redirect URL to GameVault (your server URL + /api/auth/oauth2/login).

    The OAuth2 callback/redirect URL to GameVault (your server URL + /api/auth/oauth2/login).

    values: The URL of your GameVault server + /api/auth/oauth2/login

  • AUTH_OAUTH2_CLIENT_IDThe OAuth2 client ID.

    The OAuth2 client ID.

    values: Any string

  • AUTH_OAUTH2_CLIENT_SECRETThe OAuth2 client secret.

    The OAuth2 client secret.

    values: Any string

  • AUTH_OAUTH2_ENABLEDfalseEnables or disables OAuth2 integration.

    Enables or disables OAuth2 integration.

    values: true, false

  • AUTH_OAUTH2_TOKEN_URLThe OAuth2 token endpoint URL provided by your Identity Provider.

    The OAuth2 token endpoint URL provided by your Identity Provider.

    values: Any valid URL

  • AUTH_OAUTH2_USERINFO_URLThe OAuth2 user info endpoint URL provided by your Identity Provider.

    The OAuth2 user info endpoint URL provided by your Identity Provider.

    values: Any valid URL

  • DB_DATABASEgamevaultThe database name (not needed for SQLITE).

    The database name (not needed for SQLITE).

    values: Any valid database name

  • DB_HOSTlocalhostThe host of the database (not needed for SQLITE).

    The host of the database (not needed for SQLITE).

    values: Any valid host name

  • DB_PASSWORDdefaultThe password for the database (not needed for SQLITE).

    The password for the database (not needed for SQLITE).

    values: Any valid password

  • DB_PORT5432The port of the database (not needed for SQLITE).

    The port of the database (not needed for SQLITE).

    values: Any valid port number

  • DB_SYSTEMPOSTGRESQLThe database system used (POSTGRESQL or SQLITE).

    The database system used (POSTGRESQL or SQLITE).

    values: POSTGRESQL, SQLITE

  • DB_USERNAMEdefaultThe username for the database (not needed for SQLITE).

    The username for the database (not needed for SQLITE).

    values: Any valid username

  • GAMES_MAX_UPLOAD_SIZE100 gbThe maximum file size allowed for game uploads via the API. Set to 0 to disable game uploads.

    The maximum file size allowed for game uploads via the API. Set to 0 to disable game uploads.

    values: e.g. "50 gb", "100 gb", "1 tb"

  • METADATA_IGDB_CLIENT_IDThe Client-ID used for authenticating requests to the IGDB API.

    The Client-ID used for authenticating requests to the IGDB API.

    values: Your Client ID

  • METADATA_IGDB_CLIENT_SECRETThe Client-Secret used for authenticating requests to the IGDB API.

    The Client-Secret used for authenticating requests to the IGDB API.

    values: Your Client Secret

  • METADATA_IGDB_ENABLEDtrueEnables or disables the built-in integration with IGDB for metadata retrieval.

    Enables or disables the built-in integration with IGDB for metadata retrieval.

    values: true, false

  • SERVER_ADMIN_USERNAMEUsed for role recovery of existing users. Grants Admin Role to an existing User with this username on register or startup.

    Used for role recovery of existing users. Grants Admin Role to an existing User with this username on register or startup.

    values: Any username

  • SERVER_PORT8080The port the server should use (only relevant if run without Docker on bare metal).

    The port the server should use (only relevant if run without Docker on bare metal).

    values: Any non-reserved free port (1024 to 49151)

  • SERVER_REGISTRATION_DISABLEDfalseIf registration is enabled or not.

    If registration is enabled or not.

    values: true, false

  • VOLUMES_FILES/filesFolder inside container used for game files.

    Folder inside container used for game files.

    values: Any valid folder path

  • VOLUMES_MEDIA/mediaFolder inside container used for media.

    Folder inside container used for media.

    values: Any valid folder path

GameVault releases & version history

FAQ

Is this related to gambling apps?

No, GameVault is a gaming utility with no affiliation to gambling platforms sharing a similar name.

What is your stance on piracy?

GameVault is built for legally owned DRM-free content and does not endorse or support piracy.

Does GameVault support game streaming?

No, GameVault focuses on library management and file distribution. Games run locally on your hardware for best performance.

Are there native Mac or Linux clients?

Currently there is a native Windows client and a responsive Web UI. Linux and Mac users can use the Web UI or community compatibility layers.

Is GameVault free to use?

Yes, the core GameVault ecosystem is and will always be free. GameVault+ is an optional premium subscription for advanced features.

Does it support Steam or Epic Games?

GameVault is built for DRM-free content like GOG or Humble Bundle games. Most major storefronts use proprietary DRM incompatible with independent hosting.

Is GameVault a multi-platform launcher?

No, GameVault is a self-hosted ecosystem for hosting and managing your own DRM-free game files, not a launcher that aggregates existing stores.

More in Gaming

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…