winget install --id=LANCommander.Server -e
LANCommander is a self-hosted game distribution platform designed for LAN parties and personal libraries. This server software is your central repository for games, redistributables, saves, and users.
LANCommander Server is a self-hosted platform designed for managing games, redistributables, saves, and users locally, making it ideal for LAN parties and personal libraries. It serves as a central repository, supporting MySQL, PostgreSQL, and SQLite databases to facilitate straightforward setup without complex configurations.
Key features include:
Ideal for game enthusiasts, LAN organizers, IT professionals, and developers, LANCommander Server streamlines the process of distributing games locally. It offers efficient server management, a user-friendly experience, and robust scalability, all while fostering a community-driven development environment.
The software can be installed via winget, ensuring easy setup on supported systems.
LANCommander is an open-source digital game platform.
The main application is self-hostable and is built on the ASP.NET Blazor web application framework. Your self-hosted platform can be accessed through the offical LANCommander launcher. The database is implemented using SQLite so there is no complex setup required.
The platform is designed to work on local networks and loads no assets from the internet. It was originally developed to help assist a LAN party where the local network is closed and no internet access is permitted.
Builds for Windows, Linux, and macOS are provided, with varying levels of support/compatibility. Currently the launcher has only been tested to run on Windows
A Docker image is available over at Docker Hub. A sample compose file is provided below:
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/appdata/config:/app/config
ports:
- 1337:1337/tcp # Webinterface
- 35891:35891/udp # Beacon Broadcast
- 213:213/udp # IPX Relay
restart: unless-stopped
All config files are available from /config
. This include any archive uploads for games. Many of these paths can be changed under Settings if you wish to add additional volume mappings.
The Docker image supports optional SteamCMD installation. To enable this feature, set the environment variable in your docker-compose.yml file. When enabled, SteamCMD will be installed in and made available as command.
STEAMCMD=1
/home/steam/steamcmd
steamcmd
The Docker image supports optional WINE installation. To enable this feature, set the WINE=1
environment variable in your docker-compose.yml file. When enabled, WINE will be installed with wine32, wine64, and winetricks support. A wine
user will be created with a configured WINE environment in /home/wine/.wine
.
Note: The Docker image runs the Linux build and features such as server management may be limited.
The best games are either portable games or DRM-free games. Freeware, shareware, abandonware are all great available options. LANCommander is only a management/distribution system. It does not come bundled with any games.
It's worth joining our Discord as some pre-packaged freeware games are available to download.
LANCommander communicates over HTTP(S). There is no LAN cache configuration provided, but all downloads are provided through the /api/Games/{id}/Download
route.
Documentation can be found at our documentation site. The Getting Started guide contains enough information to get your server up and running in minutes.
Our soon to be retired wiki is still available to plug any documentation holes while we work on updating the documentation site. Tutorials as well as sample configurations for Games and Redistributables can be found there.
Hit that fork button, submit a PR, there are no hard rules right now.
If you're not a developer but still want to contribute, contributing to our documentation site is a great way to give back to the community!
The LANCommander dev team is currently spearheaded by one developer in their free time. Paid donation tiers are available over at the Patreon page.
A separate assembly called LANCommander.SDK
has been created for use in client applications. Here is a quick example of how one can authenticate to a LANCommander server and install a game to C:\Games
:
var client = new LANCommander.SDK.Client("http://localhost:1337", "C:\\Games");
await client.AuthenticateAsync("username", "password");
client.Games.Install("114f653d-ea91-484b-8fe9-8e9bb58bde81");
LANCommander is far from complete. The basic implementation that exists will allow you to:
The following features are being considered: