VulCode
Blog

Jak postawić serwer SCP: Secret Laboratory na Linuksie, krok po kroku

Instalujesz serwer przez SteamCMD na Debianie 13 albo Ubuntu 26.04, uruchamiasz LocalAdmin w tmux, otwierasz port UDP, ustawiasz config_gameplay.txt i zgłaszasz serwer do weryfikacji. Według wiki technicznej Northwood, z jej dwiema pułapkami.

VulCodeVulCode10 min czytania
Jak postawić serwer SCP: Secret Laboratory na Linuksie, krok po kroku - VulCode
Co zbudujeszBash, 9 kroków
  1. Pakiety i użytkownikLinuxSteamCMD, tmux, .NET 9 i osobne konto.
  2. Aplikacja 996560SteamCMDSerwer pobrany anonimowo.
  3. Serwer w tmuxLocalAdminDziała po zamknięciu SSH.
  4. WeryfikacjaNorthwoodSerwer na liście zweryfikowanych.

Poradnik w skrócie

Postawisz serwer SCP: Secret Laboratory na Linuksie, który działa po zamknięciu sesji SSH, ma własną nazwę i opis w przeglądarce serwerów, otwarty port i aktualizuje się jednym skryptem. Na końcu zgłosisz go do weryfikacji, żeby trafił na listę zweryfikowanych serwerów.

Serwer SCP:SL od zera

Grupa
Serwery i hosting
Poziom
podstawowy
Czas czytania
około 10 min
Kod
Bash

Pliki: config_gameplay.txt, aktualizuj.sh; do tego polecenia w terminalu.

Kroki
9 kroków

W 9 z nich kod albo polecenia do skopiowania.

Sprawdzenie
Publiczne dane SteamCMD z api.steamcmd.net

Aplikacja 996560 zgodna z poradnikiem; serwera SCP:SL nie uruchamialiśmy

Dokumentacja
4 oficjalne dokumenty

Northwood tech wiki: How to create a Dedicated Server; Northwood tech wiki: Gameplay Config Setup; Northwood tech wiki: How do I verify my server?; LocalAdmin V2 (northwood-studios)

Z naszego kodu
Flaem

frozeggs/eggs/scp-sl/dedicated.json

Zanim zaczniesz

Opieramy się na wiki technicznej Northwood. Ma ona dwie pułapki, które przy przepisywaniu poleceń zatrzymają Cię w połowie: zapis pliku przez sudo echo i literówkę w nazwie użytkownika. Obie poprawiamy w krokach poniżej.

Co musisz mieć
Serwer SCP:SL od zera
Debian 13 albo Ubuntu 26.04 na procesorze x86
Wiki wymaga co najmniej Debiana 13 (Trixie) albo Ubuntu 26.04 LTS. Procesory ARM nie są obsługiwane i nie da się na nich uruchomić serwera SCP:SL.
Zasoby
Minimum to 3 GB RAM, 2 rdzenie i 4 GB miejsca dla pełnego serwera na 25 graczy bez pluginów. Do weryfikacji Northwood oczekuje co najmniej dwóch fizycznych rdzeni, 4 GB pamięci i 20 GB miejsca.
Dostęp root albo sudo
Instalujesz pakiety jako użytkownik z sudo, a serwer uruchamiasz z osobnego konta bez uprawnień administratora.
Serwer poza domem, jeśli chcesz weryfikacji
Northwood zdecydowanie odradza zweryfikowany serwer z domowego łącza: otwarty port i lista zweryfikowanych narażają na DDoS i ujawnienie adresu. Użyj VPS-a albo serwera dedykowanego.

Co i gdzie na serwerze

ElementWartośćUwagi
Aplikacja Steam996560SCP: Secret Laboratory Dedicated Server Tool, logowanie anonimowe
Katalog serwera/home/scpsl-server/steamcmd/scpslLocalAdmin uruchamiasz z tego katalogu
Konfiguracja gry~/.config/SCP Secret Laboratory/config/<port>/osobno dla każdego portu
Port gry7777UDP, nie TCP ani TCP/UDP

Krok po kroku

9 kroków z poleceniami i plikami do skopiowania. Spis obok pokazuje, gdzie jesteś.

Zainstaluj pakiety

SteamCMD jest w repozytorium non-free i potrzebuje bibliotek 32-bitowych, stąd architektura i386. tmux trzyma serwer przy życiu po zamknięciu SSH, a libicu76 jest potrzebne środowisku .NET.

Wiki zapisuje plik repozytorium poleceniem sudo echo "..." > plik. To nie działa: przekierowanie wykonuje Twoja powłoka, bez uprawnień root, i dostajesz Permission denied. Poniżej ten sam wpis przez sudo tee.

bashbash, 5 linii
sudo apt updateecho "deb http://ftp.uk.debian.org/debian trixie main non-free" | sudo tee /etc/apt/sources.list.d/non-free.listsudo dpkg --add-architecture i386sudo apt updatesudo apt install lib32gcc-s1 steamcmd tmux libicu76

Zainstaluj środowisko .NET

Nagłówek w wiki mówi o .NET 4.8, ale polecenia instalują dotnet-runtime-9.0 z repozytorium Microsoftu dla Debiana 13. Na Linuksie potrzebujesz właśnie tego pakietu.

bashbash, 5 linii
wget https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb -O packages-microsoft-prod.debsudo dpkg -i packages-microsoft-prod.debrm packages-microsoft-prod.debsudo apt-get updatesudo apt-get install -y dotnet-runtime-9.0

Utwórz użytkownika dla serwera

Serwer działa z konta scpsl-server, nie z root. W wiki drugie polecenie to sudo passwd scpsl, czyli hasło dla użytkownika, który nie istnieje. Poprawna nazwa to scpsl-server.

Katalog /usr/games dopisujesz do PATH, bo tam Debian instaluje polecenie steamcmd.

bashbash, 7 linii
sudo useradd -m scpsl-serversudo passwd scpsl-serversudo -u scpsl-server -scd ~echo 'export PATH="/usr/games:$PATH"' >> ~/.bashrcsource ~/.bashrcmkdir -p ~/steamcmd/scpsl

Pobierz serwer przez SteamCMD

Aplikacja 996560 to czysty serwer z wbudowanym frameworkiem pluginów Northwood Plugin API. Konto Steam nie jest potrzebne: logujesz się anonimowo. To samo polecenie z parametrem validate posłuży później do aktualizacji.

bashbash, 1 linia
steamcmd +force_install_dir /home/scpsl-server/steamcmd/scpsl +login anonymous +app_update 996560 validate +quit
Uwaga
Wersję beta instalujesz przez app_update 996560 -beta <nazwa> validate. O dostępnych gałęziach beta Northwood informuje na oficjalnym Discordzie SCP:SL.

Otwórz port UDP

Serwer SCP:SL przyjmuje graczy przez UDP. Wiki Northwood podkreśla: port otwierasz dla UDP, nie dla TCP ani TCP/UDP. W przykładzie używamy portu 7777, który podajesz też LocalAdmin jako argument.

bashbash, 5 linii
# z ufwsudo ufw allow 7777/udp # albo z nftables / iptablessudo iptables -A INPUT -p udp --dport 7777 -j ACCEPT

Uruchom LocalAdmin w tmux

LocalAdmin to program, który uruchamia serwer i daje jego konsolę. Przyjmuje port jako pierwszy argument i szuka plików serwera w bieżącym katalogu, dlatego najpierw cd, potem ./LocalAdmin. Przy pierwszym starcie zada kilka pytań o konfigurację.

bashbash, 5 linii
tmux new -s scpslcd ~/steamcmd/scpsl./LocalAdmin 7777# odłącz się od sesji: Ctrl+B, potem D# wróć: tmux attach -t scpsl

Ustaw nazwę, opis i kontakt

Plik config_gameplay.txt leży w katalogu domowym użytkownika, który uruchamia LocalAdmin, osobno dla każdego portu. Do weryfikacji potrzebujesz czterech pól: server_name, serverinfo_pastebin_id z identyfikatorem wpisu w Pastebin z zasadami i kontaktem, contact_email, który trzeba dopisać ręcznie, i max_players (domyślnie 20; zweryfikowany serwer może mieć zwykle najwyżej 60 miejsc).

config_gameplay.txtyaml, 5 linii
# ~/.config/SCP Secret Laboratory/config/7777/config_gameplay.txtserver_name: Serwer testowy VulCodeserverinfo_pastebin_id: TwojIdZPastebincontact_email: admin@twojadomena.plmax_players: 20

Aktualizuj jednym skryptem

Po każdej aktualizacji gry serwer musi mieć tę samą wersję co klienci. Skrypt zatrzymuje serwer w sesji tmux, uruchamia SteamCMD z validate i startuje LocalAdmin ponownie.

aktualizuj.shbash, 6 linii
#!/bin/bash# ~/aktualizuj.sh: zatrzymaj serwer w tmux, zaktualizuj, uruchom ponownietmux send-keys -t scpsl "stop" Entersleep 15steamcmd +force_install_dir /home/scpsl-server/steamcmd/scpsl +login anonymous +app_update 996560 validate +quittmux send-keys -t scpsl "cd ~/steamcmd/scpsl && ./LocalAdmin 7777" Enter

Zgłoś serwer do weryfikacji

Weryfikacja to zobowiązanie: lista zweryfikowanych jest dla serwerów, które działają niemal bez przerwy i przestrzegają Community Server Guidelines. Preferowana metoda to polecenie w konsoli serwera, które sprawdza połączenie z serwerami Northwood.

Gdy to zawiedzie, napisz na safety.compliance@scpslgame.com z adresu z contact_email: publiczny adres IPv4, czy jest stały czy zmienny, i port. Odpowiedź przychodzi w 3 do 7 dni roboczych, a na końcu w konsoli pojawi się link do podpisania zasad.

konsola LocalAdminbash, 2 linie
!verify static     # serwer ma stały adres IP!verify dynamic    # serwer ma zmienny adres IP

Sprawdź, czy działa

Na potrzeby poradnika nie uruchamialiśmy serwera SCP:SL. Sprawdziliśmy natomiast 6 października 2026 r. publiczne dane aplikacji 996560 w SteamCMD: to SCP: Secret Laboratory Dedicated Server Tool dla Windows i Linuksa, z gałęziami public, experimental i early-server-build. Wszystkie polecenia porównaliśmy z wiki Northwood i opisaliśmy miejsca, w których wiki się myli.

terminal6 października 2026Publiczne dane SteamCMD z api.steamcmd.net
$ curl -s https://api.steamcmd.net/v1/info/996560
name: SCP: Secret Laboratory Dedicated Server Tool
oslist: windows,linux
branches: early-server-build, experimental, public
public buildid: 24893701 (2026-08-23)
Aplikacja 996560 zgodna z poradnikiem; serwera SCP:SL nie uruchamialiśmy
Co znaczą linie wyniku
  1. linie 2Aplikacja 996560

    To SCP: Secret Laboratory Dedicated Server Tool, czyli to, co pobierasz w kroku 4.

  2. linie 3-4Systemy i gałęzie

    Serwer jest dla Windows i Linuksa, z gałęziami public, experimental i early-server-build.

  3. linie 5Kompilacja gałęzi public

    W dniu sprawdzenia gałąź public miała kompilację 24893701 z 23 sierpnia 2026 r.

Po czym poznasz, że działa u Ciebie

  • SteamCMD kończy pobieranie komunikatem Success! App '996560' fully installed.
  • LocalAdmin startuje bez błędów, a serwer widać w przeglądarce serwerów gry.
  • Po odłączeniu od tmux i zamknięciu SSH serwer nadal działa.
  • W menu pauzy na serwerze widać opis z Pastebin.

Najczęstsze błędy

Ta sama droga co w "Co zbudujesz" na górze strony, z miejscami, w których praca staje najczęściej. Przy każdym błędzie: objaw, przyczyna i co zrobić.

Gdzie staje i dlaczego

Pakiety i użytkownik

Linux

SteamCMD, tmux, .NET 9 i osobne konto.

  • Zatrzymuje się: Permission denied przy zapisie pliku repozytorium

    sudo echo "..." > plik: przekierowanie wykonuje powłoka bez root. Co zrobić: echo "..." | sudo tee /etc/apt/sources.list.d/non-free.list

  • Zatrzymuje się: passwd: user 'scpsl' does not exist

    Literówka w wiki: użytkownik nazywa się scpsl-server. Co zrobić: sudo passwd scpsl-server

Aplikacja 996560

SteamCMD

Serwer pobrany anonimowo.

  • Zatrzymuje się: steamcmd: command not found

    Brak /usr/games w PATH użytkownika scpsl-server. Co zrobić: Dopisz export PATH="/usr/games:$PATH" do ~/.bashrc i wykonaj source ~/.bashrc.

Serwer w tmux

LocalAdmin

Działa po zamknięciu SSH.

  • Zatrzymuje się: Nikt spoza sieci nie może dołączyć

    Port otwarty dla TCP albo zamknięty na zaporze dostawcy. Co zrobić: Otwórz port dla UDP, także w panelu dostawcy serwera, jeśli ma własną zaporę.

  • Zatrzymuje się: LocalAdmin nie znajduje serwera

    Uruchomiony spoza katalogu z plikami serwera. Co zrobić: Najpierw cd ~/steamcmd/scpsl, potem ./LocalAdmin.

Weryfikacja

Northwood

Serwer na liście zweryfikowanych.

    Jak to robimy u siebie

    Ten sam temat w kodzie, który utrzymujemy: Flaem.

    Panel klienta hostingu na telefonie z serwerem SCP:SL

    Ten sam serwer jako egg w Flaem

    W Flaem serwer SCP:SL instaluje się z eggu, czyli przepisu instalacji serwera, z repozytorium frozeggs. Robi to samo co poradnik: SteamCMD z aplikacją 996560 i logowaniem anonimowym, a potem start ./LocalAdmin z portem przydzielonym serwerowi.

    Dwie rzeczy dochodzą w kontenerze: kopiowanie biblioteki steamclient.so do .steam/sdk32 i sdk64, tak jak w społecznościowych eggach SteamCMD, i reguły panelu: serwer uznaje się za uruchomiony, gdy w konsoli pojawi się "Waiting for players..", a zatrzymuje komendą EXIT.

    frozeggs/eggs/scp-sl/dedicated.jsonjson, 14 linii
    {  "slug": "scp-sl-dedicated",  "name": "SCP: Secret Laboratory",  "docker_image": "ghcr.io/parkervcp/steamcmd:debian",  "startup_invocation": "./LocalAdmin ${SERVER_PORT}",  "process_configuration": {    "startup": { "done": ["Waiting for players.."] },    "stop": { "type": "command", "value": "EXIT" }  },  "install": {    "container_image": "ghcr.io/pterodactyl/installers:debian",    "script": "... ./steamcmd.sh +force_install_dir /mnt/server +login anonymous +app_update 996560 validate +quit\nmkdir -p /mnt/server/.steam/sdk32 /mnt/server/.steam/sdk64\ncp -f linux32/steamclient.so /mnt/server/.steam/sdk32/steamclient.so\ncp -f linux64/steamclient.so /mnt/server/.steam/sdk64/steamclient.so"  }}

    Egg serwera SCP:SL z Flaem, skrócony skrypt instalacji.

    Powiązane strony i źródła

    Usługa, narzędzia i hasła, do których odsyła ten poradnik, i kolejne poradniki.

    Oficjalna dokumentacja

    Wolisz, żeby zrobił to ktoś, kto już to robił?

    Opisz swój system. Odpiszemy w godzinę z planem integracji i wyceną.

    Pytania