No description
Find a file
Pat Hartl 4fc1a45f88 Add support for horizontal scaling
This commit adds support to allow the LANCommander server to scale horizontally. Multiple instances of the application can be deployed for load-balancing purposes. This will require a load balancer in front of the instances, as well as either MySQL or PostgreSQL and a Redis cache.
2026-07-22 20:19:31 -05:00
.github Generate PowerShell completions in ui_tests CI job 2026-06-23 22:26:42 -05:00
LANCommander.AppHost Bump to .NET 10 2026-04-10 02:19:50 -05:00
LANCommander.AutoUpdater Bump to .NET 10 2026-04-10 02:19:50 -05:00
LANCommander.Build macOS build 2025-03-21 19:34:05 -05:00
LANCommander.CompletionGenerator Add completions for built-in PowerShell cmdlets 2026-05-10 20:56:17 -05:00
LANCommander.Documentation v2.1.8 release notes 2026-07-08 18:59:36 -05:00
LANCommander.Launcher Merge branch 'main' into release/2.2.0 2026-07-22 17:13:51 -05:00
LANCommander.Launcher.Data Track tools per game 2026-06-27 11:51:55 -05:00
LANCommander.Launcher.IntegrationTests Remove old launcher, rename Avalonia launcher 2026-06-06 05:49:24 -05:00
LANCommander.Launcher.Legacy Fix unicode support for win9x 2026-05-23 21:07:28 -05:00
LANCommander.Launcher.Models Process version switch/update as queue item 2026-06-30 22:23:38 -05:00
LANCommander.Launcher.Services Merge branch 'main' into release/2.2.0 2026-07-22 17:13:51 -05:00
LANCommander.Launcher.Services.Tests Fix reconciliation of library games based on user libraries enabled/disabled 2026-06-27 18:38:42 -05:00
LANCommander.Launcher.Settings Add big screen mode 2026-05-28 00:09:53 -05:00
LANCommander.Launcher.Tests Add GameDetailView visual baselines from Linux CI render 2026-06-24 18:48:19 -05:00
LANCommander.Launcher.Win9x Inital Win9x launcher commit 2026-05-13 02:00:14 +00:00
LANCommander.Packager Fix packager LCX upload 2026-06-04 22:03:18 -05:00
LANCommander.SDK Add support for horizontal scaling 2026-07-22 20:19:31 -05:00
LANCommander.SDK.Cpp Fix includes 2026-05-23 16:58:45 -05:00
LANCommander.SDK.SourceGenerators Register cmdlets via source generated extension 2026-05-26 20:36:25 -05:00
LANCommander.SDK.Tests Fix SDK tests 2026-07-21 17:45:34 -05:00
LANCommander.Server Add support for horizontal scaling 2026-07-22 20:19:31 -05:00
LANCommander.Server.Data Merge branch 'main' into release/2.2.0 2026-07-22 17:13:51 -05:00
LANCommander.Server.Data.MySQL Merge branch 'main' into release/2.2.0 2026-07-22 17:13:51 -05:00
LANCommander.Server.Data.PostgreSQL Merge branch 'main' into release/2.2.0 2026-07-22 17:13:51 -05:00
LANCommander.Server.Data.SQLite Merge branch 'main' into release/2.2.0 2026-07-22 17:13:51 -05:00
LANCommander.Server.ImportExport Merge branch 'main' into release/2.2.0 2026-07-22 17:13:51 -05:00
LANCommander.Server.Services Add support for horizontal scaling 2026-07-22 20:19:31 -05:00
LANCommander.Server.Settings Add support for horizontal scaling 2026-07-22 20:19:31 -05:00
LANCommander.Server.Tests Merge branch 'main' into release/2.2.0 2026-07-22 17:13:51 -05:00
LANCommander.Server.UI.Tests Tests for first time setup creation of administrator account 2026-06-25 01:51:42 -05:00
LANCommander.ServiceDefaults Bump to .NET 10 2026-04-10 02:19:50 -05:00
LANCommander.Steam Add WebP support for media 2026-06-22 17:05:47 -05:00
LANCommander.UI Convert description editor to markdown editor 2026-07-06 04:24:42 -05:00
PCGamingWikiClient Lookup player counts from PCGamingWiki for multiplayer modes 2023-01-14 18:22:51 -06:00
Scripts Add helper PowerShell scripts 2025-09-25 19:27:45 -05:00
.gitignore Enhance PowerShell completions with generated type definitions 2026-05-08 02:13:36 -05:00
CONTRIBUTING.md Update repository documentation 2026-06-06 06:35:49 -05:00
Directory.Packages.props Add support for horizontal scaling 2026-07-22 20:19:31 -05:00
LANCommander.slnx Merge remote-tracking branch 'origin/main' into pr-396 2026-06-23 21:13:19 -05:00
LICENSE Create LICENSE 2024-03-24 15:57:40 -05:00
Microsoft.Common.props Ignore json files from all builds in solution 2024-08-22 01:13:02 -05:00
README.md Update repository documentation 2026-06-06 06:35:49 -05:00
SECURITY.md Update repository documentation 2026-06-06 06:35:49 -05:00
setup-vendor.ps1 Missing files for legacy launcher 2026-05-23 20:33:04 -05:00

LANCommander

GitHub Release GitHub commit activity GitHub Actions Workflow Status GitHub License Documentation Discord Support me on Patreon

Self-hosted game distribution - no internet required.

LANCommander is an open-source, self-hostable digital game platform. Host your own game library, distribute games across your local network, and let players browse and install from a polished desktop launcher. Originally built for LAN parties where internet access isn't available, but works anywhere you want a private game distribution platform.

Screenshots

Game Depot - browse popular games, genres, and new releases Game Detail - view game info, media, and launch games
Depot - browse by genre, popularity, and new releases Game detail view with media, description, and play controls
Game Library - your full collection at a glance Server Admin - web-based game management dashboard
Library shelf - your full game collection at a glance Server admin dashboard - manage games, users, and settings

Features

Game Distribution

  • Self-hosted game library - host and distribute games over your local network
  • No internet dependency - all assets served locally, perfect for closed networks
  • Multi-part archive uploads with chunked transfer for large games
  • Automatic metadata lookup from IGDB and SteamGridDB (covers, icons, backgrounds)
  • Redistributable management - bundle and auto-install Visual C++, .NET, DirectX, etc.

Desktop Launcher

  • Polished game browser with depot storefront, library shelf, and search/filtering
  • Download queue with progress tracking and install management
  • Cloud saves - automatic backup and restore of game save files
  • Auto-discovery - finds servers on your network via UDP beacon
  • Media viewer - browse screenshots and video trailers for each game
  • Discord Rich Presence integration
  • Offline mode support

Server Administration

  • Web-based dashboard built on ASP.NET Blazor
  • User management with registration, approval workflows, and role-based access
  • OpenID Connect authentication support
  • PowerShell scripting - pre/post install, pre/post launch hooks with a built-in editor
  • Dedicated server management with RCON support
  • Play session tracking and statistics

Game Packaging

  • Dedicated Packager tool with step-by-step wizard for creating game packages
  • Automatic metadata lookup - search IGDB and auto-fill game details
  • Registry capture and installer monitoring
  • Direct upload to your LANCommander server

Developer SDK

  • Published on NuGet - LANCommander.SDK
  • Build custom clients and tools with the .NET SDK
  • Full API access via dependency injection

Platform Support

Component Windows Linux macOS
Server x64, arm64 x64, arm64 x64, arm64
Launcher x64, arm64 x64, arm64 x64, arm64
Packager x86 - -

Note: The launcher is primarily tested on Windows. Linux and macOS builds are provided but may have limited functionality.

Quick Start

A Docker image is available on Docker Hub:

services:
  lancommander:
    image: lancommander/lancommander:latest
    container_name: lancommander
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      # Uncomment the line below to install SteamCMD
      # - STEAMCMD=1
      # Uncomment the line below to install WINE
      # - WINE=1
    volumes:
      - /path/to/app/data:/app/Data
    ports:
      - 1337:1337/tcp   # Web interface
      - 35891:35891/udp # Beacon broadcast
      - 213:213/udp     # IPX relay
    restart: unless-stopped

All config and uploaded game archives are stored in /app/Data.

Standalone

Download the latest release for your platform from the Releases page. The server is a self-contained binary with no external dependencies beyond a supported OS.

SteamCMD Support

The Docker image supports optional SteamCMD installation. Set STEAMCMD=1 to enable it. SteamCMD will be installed in /app/Data/Steam with cached credentials persisted across container restarts.

WINE Support

Set WINE=1 to install WINE with wine32, wine64, and winetricks support in the Docker container.

Note: The Docker image runs the Linux build. Features such as server management may be limited.

FAQ

How do I get games?

LANCommander is a management and distribution platform; it does not come bundled with any games. The best candidates are portable, DRM-free, freeware, shareware, or abandonware titles. Join our Discord where the community shares pre-packaged freeware games.

I have a large LAN party planned. What about scaling?

LANCommander communicates over HTTP(S). All downloads are served through standard API routes (/api/Games/{id}/Download), making it compatible with reverse proxies and LAN caching solutions.

Where can I get help?

  • Documentation: lancommander.app
  • Community: Discord - the best place for help with the platform, scripting, and game packaging

How do I contribute?

See CONTRIBUTING.md for build instructions and contribution guidelines. If you're not a developer, contributing to the documentation is a great way to help.

Roadmap

The following features are being considered for future releases:

  • Peer-to-peer file sharing of game files
  • Built-in VPN client/server for remote LAN parties
  • Integration with platforms such as Discord, TeamSpeak, Mumble

Community

License

LANCommander is licensed under the MIT License.