Masz kilkadziesiąt gier z GOG-a, kilka paczek z Humble Bundle i itch.io, a do tego stare gry z dzieciństwa? Zamiast pobierać instalatory na każdy komputer osobno, możesz trzymać całą kolekcję na domowym serwerze i instalować gry jednym kliknięciem - jak w Steamie, tylko u siebie. Do nowszych gier służy Drop, a do starych gier z konsol i komputerów RomM. Oba są otwarte i darmowe.
Co to jest „własny Steam”
Steam, GOG Galaxy czy Heroic robią trzy rzeczy: pokazują bibliotekę gier z okładkami, pobierają gry na komputer i pilnują aktualizacji. Na domowym serwerze możesz zrobić to samo z grami, które już masz:
- gry z GOG-a - wszystkie są bez DRM i można pobrać ich instalatory,
- gry z itch.io, Humble Bundle i od twórców niezależnych sprzedawane bez zabezpieczeń,
- stare gry z konsol i komputerów (Pegasus, Game Boy, Amiga, DOS) - tym zajmuje się RomM.
Gier ze Steama, Epic Games Store czy Ubisoftu tak nie przeniesiesz: są przywiązane do konta i zabezpieczeń. Do nich na Linuksie służą zwykły Steam i Heroic, o których piszemy w artykule Granie na Linuksie.
Drop - sklep z grami na serwerze
Drop to otwarta platforma do rozprowadzania gier, którą sami autorzy opisują jako „otwarty Steam”. Na serwerze działa sklep w przeglądarce z okładkami, opisami i zrzutami gier, a na komputerach - program Drop, który pobiera, instaluje i aktualizuje gry z serwera, liczy czas gry i uruchamia je jednym przyciskiem.

Drop ma konta (zakładane przez zaproszenia), może korzystać z logowania jednym kontem (SSO), pozwala ograniczyć dzieciom gry według kategorii wiekowej. Interfejs jest na razie po angielsku: polskie tłumaczenie powstaje w wersji rozwojowej, ale nie trafiło jeszcze do wydania 0.4.0-rc-6.
Instalacja serwera
Drop potrzebuje Dockera i bazy danych PostgreSQL. Na NAS-ie z OpenMediaVault utwórz najpierw katalog współdzielony na gry (np. „Gry”), a potem w Usługi → Compose → Pliki dodaj plik drop według instrukcji projektu:
services:
postgres:
image: postgres:14-alpine
healthcheck:
test: pg_isready -d drop -U drop
interval: 30s
retries: 5
start_period: 10s
volumes:
- ./db:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=TwojeHaslo
- POSTGRES_USER=drop
- POSTGRES_DB=drop
restart: unless-stopped
drop:
image: ghcr.io/drop-oss/drop:0.4.0-rc-6
depends_on:
postgres:
condition: service_healthy
ports:
- 3000:3000
volumes:
- /srv/dev-disk-by-uuid-…/Gry:/library
- ./data:/data
environment:
- DATABASE_URL=postgres://drop:TwojeHaslo@postgres:5432/drop
- EXTERNAL_URL=http://192.168.1.20:3000
restart: unless-stopped
Hasło wpisz w dwóch miejscach (POSTGRES_PASSWORD i w DATABASE_URL), a w EXTERNAL_URL - adres, pod którym komputery w domu widzą serwer.
Po uruchomieniu (Up) Drop nie wpuści Cię od razu: pierwszy raz otwiera się go specjalnym linkiem z jednorazowym kluczem, który znajdziesz w logach kontenera (w OpenMediaVault: Usługi → Compose → Pliki → Logi, w terminalu poleceniem jak niżej):

Kreator ma dwa kroki: Setup your admin account (konto administratora - nazwa użytkownika musi mieć co najmniej 5 małych liter) i Create a library, czyli źródło gier. Jako typ wybierz Drop-style, a jako ścieżkę wpisz /library - tak jak w pliku Compose:

Żeby Drop pobierał okładki i opisy z największej bazy gier IGDB, załóż darmowe konto deweloperskie na Twitchu, utwórz aplikację i dopisz w sekcji environment jej identyfikatory: IGDB_CLIENT_ID i IGDB_CLIENT_SECRET. Bez tego gry też zaimportujesz, tylko z opisem wpisanym ręcznie albo z innej bazy.
Folder z grami
Drop wymaga konkretnego układu: folder gry, a w nim folder wersji z plikami gry:
Gry/
├── Celeste/
│ └── 1.4/
│ ├── Celeste.exe
│ └── … pozostałe pliki gry …
└── Stardew Valley/
├── 1.6.14/
└── 1.6.15/
Wersja może być:
- przenośna - folder z już zainstalowaną grą. To najwygodniejsza droga: zainstaluj grę z GOG-a raz (np. przez Heroic), skopiuj jej folder na serwer, a przy imporcie wskaż plik uruchamiający, np.
Celeste.exe, - instalator - sam plik
setup_….exez GOG-a w trybie instalacji. Drop uruchomi go na komputerze po pobraniu, ale potem nie pokaże przycisku „Graj”, więc przenośna wersja jest wygodniejsza.
Wersje mogą być też spakowane (ZIP, 7z, RAR). Nowa aktualizacja gry to po prostu nowy folder wersji obok starego.
Import gier
Gdy wrzucisz grę do folderu, w panelu administratora (Library) pojawi się komunikat „Drop has detected you have new games to import” z przyciskiem Import:

Zaimportuj grę
Wybierz folder gry z listy, wyszukaj ją w bazie opisów i kliknij Import - Drop pobierze okładkę, opis i zrzuty. Bez kluczy do baz opisów kliknij Import without metadata i uzupełnij opis ręcznie.
Zaimportuj wersję
Na stronie gry otwórz Versions → Import version i wybierz folder wersji. W Launch executable/command kliknij Add, wskaż plik uruchamiający (Drop podpowiada pliki z folderu) i platformę, np. Windows. Dla samego instalatora włącz Setup mode, a dla łatki - Update mode. Na koniec Import - Drop przeczyta wszystkie pliki i policzy sumy kontrolne, przy dużej grze potrwa to kilka minut.
Zaproś domowników
W Users → Authentication utwórz zaproszenia. Każdy domownik zakłada konto i dodaje gry do swojej biblioteki.

Program Drop na Linuksie
Program pobierzesz ze strony Drop: są paczki .deb (Ubuntu, Linux Mint), .rpm (Fedora) i dla Archa, a wersja Flatpak jest na razie w testach. Przy pierwszym uruchomieniu podajesz adres serwera i logujesz się swoim kontem.
Gry z Windowsa Drop uruchamia na Linuksie przez Protona, tak jak Steam. Potrzebne są do tego:
- UMU Launcher - program, przez który Drop uruchamia Protona; paczki znajdziesz na stronie projektu,
- wersja Protona - najprościej zainstalujesz GE-Proton programem ProtonUp-Qt, a Drop sam znajdzie go w folderze dodatkowych Protonów Steama,
- domyślny Proton w ustawieniach Drop - bez tego żadna gra z Windowsa się nie uruchomi. Dla pojedynczej gry możesz go zmienić w opcjach gry → Launch.
Gry, które na Linuksie wymagają poprawek, sprawdzisz w bazie ProtonDB - zasady są te same co w Steamie.
A co z GameVault?
Szukając „własnego Steama”, trafisz też na GameVault. Działa podobnie, ale nie jest otwarty (autorzy wprost piszą, że nigdy nie był), ma płatną wersję z dodatkowymi funkcjami, a program na komputer jest tylko na Windowsa - na Linuksie zostaje wersja w przeglądarce. Dlatego go nie polecamy, skoro są otwarte Drop i RomM.
RomM - stare gry w przeglądarce
RomM robi dla starych gier to, co Drop dla nowych: z folderu z plikami gier z dawnych konsol i komputerów robi bibliotekę z okładkami, opisami i zrzutami. Ma jednak jedną przewagę: w większość gier zagrasz od razu w przeglądarce - na komputerze, tablecie albo telewizorze z przeglądarką, bez instalowania emulatorów.

To dojrzały projekt (wersja 5.4, ponad 14 tysięcy gwiazdek na GitHubie) z polską wersją językową. Wbudowany emulator obsługuje m.in. NES (Pegasusa), SNES, Game Boya, Segę, PlayStation, Nintendo 64, Nintendo DS, Atari, Commodore 64, Amigę i DOS. Zapisy gier trafiają na serwer, więc grę zaczętą na komputerze dokończysz na tablecie, a do czterech osób może grać razem przez sieć.

Instalacja
RomM działa w Dockerze razem z bazą MariaDB. Pobierz przykładowy plik Compose z instrukcji RomM i zmień w nim:
- folder z grami - linię z
/romm/libraryustaw na swój katalog, np./srv/dev-disk-by-uuid-…/GryRetro:/romm/library, - hasła -
DB_PASSWDw usłudze RomM musi być takie samo jakMARIADB_PASSWORDw bazie, - klucz
ROMM_AUTH_SECRET_KEY- wygeneruj go poleceniemopenssl rand -hex 32, - port - ustaw
8080:8080i otwieraj RomM podhttp://adres-serwera:8080.
W folderze z grami utwórz podfolder roms, a w nim foldery platform: nes, snes, gb, gba, n64, psx, dos (pełną listę nazw znajdziesz w dokumentacji RomM). Przy pierwszym uruchomieniu kreator po polsku przeprowadzi Cię przez trzy kroki: strukturę biblioteki (RomM sam rozpozna foldery roms/… i pokaże wykryte platformy), konto administratora i źródła metadanych.

Okładki i opisy
RomM rozpoznaje gry w kilku bazach. Bez żadnych kont działa Hasheous (rozpoznaje gry po sumach kontrolnych, w pliku Compose jest już włączony). Ostatni krok kreatora pokazuje, które bazy mają klucze, a które czekają na konfigurację:

Lepsze okładki dają darmowe konta:
- ScreenScraper - konto na screenscraper.fr i zmienne
SCREENSCRAPER_USERorazSCREENSCRAPER_PASSWORD, - IGDB - te same klucze z Twitcha co w Dropie, w zmiennych
IGDB_CLIENT_IDiIGDB_CLIENT_SECRET, - RetroAchievements - osiągnięcia jak w nowych grach, każdy domownik wpisuje swoje konto.
Po dodaniu gier otwórz z menu użytkownika Skanuj i kliknij Skanuj. Po prawej zobaczysz na żywo, które gry zostały rozpoznane i w których bazach. Potem wystarczy wybrać grę i kliknąć Graj.

Co wybrać
| Drop | RomM | |
|---|---|---|
| Do czego | nowsze gry na PC bez DRM (GOG, itch.io) | stare gry z konsol i komputerów |
| Jak się gra | program na Linuksa, Windowsa i macOS | w przeglądarce albo na konsolce retro |
| Gry z Windowsa na Linuksie | przez Protona (UMU) | nie dotyczy |
| Stan projektu | wersja testowa, tryb utrzymania | dojrzały, aktywnie rozwijany |
| Polski | jeszcze nie (tłumaczenie w przygotowaniu) | tak |
| Licencja | otwarta (AGPL 3) | otwarta (AGPL 3) |
Nie musisz wybierać - oba działają obok siebie na jednym serwerze. Jeśli masz tylko kilka gier z GOG-a, prościej będzie zostać przy Heroicu, który pobiera je prosto z Twojego konta.
Podsumowanie
- Serwer z Dockerem: NAS z OpenMediaVault albo minikomputer
- Drop: PostgreSQL + Drop, folder gry i folder wersji, klucze IGDB z Twitcha
- Na komputerach program Drop, UMU Launcher i Proton z ProtonUp-Qt
- RomM: MariaDB + RomM, foldery
roms/nes,roms/snesitd. - Tylko gry bez DRM i legalne ROM-y, dla siebie i domowników
- Serwer tylko w sieci domowej, z zewnątrz przez VPN
Własny Steam w domu to projekt dla ciekawych, ale bardzo satysfakcjonujący: cała kolekcja gier w jednym miejscu, z okładkami, na każdym komputerze w domu - a do tego stare gry z dzieciństwa, w które dzieci zagrają w przeglądarce.
Graj na Linuksie
Zobacz, jak grać na Linuksie w gry ze Steama, GOG-a i Epic, i jak zbudować domowy serwer, na którym zmieszczą się wszystkie gry.

