4.8 KiB
SCP: Secret Laboratory Docker Server
A Docker container for easily running an SCP: Secret Laboratory dedicated server made by (Matthew Green)[https://git.matthewgreen.gg/mgreen/scp-secret-laboratory-server-docker] and slightly modified by me to add an option to select the manifest version.
Quick Start
Using Docker Compose (Recommended)
- Create a
docker-compose.ymlfile:
services:
scp-sl-server:
image: greenmatthew/scp-secret-laboratory-server:latest
container_name: scp-sl-server
ports:
- "7777:7777/udp"
volumes:
- ./config:/home/steam/.config
environment:
- UID=1000
- GID=1000
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List).
# - TZ=Etc/UTC
# To use a specific server version, uncomment the next line and set a manifest ID.
# See the "Using an Older Server Version" section for details.
# - MANIFEST_ID=none
# If you need to use your own Steam credentials, uncomment and set the following variables.
# - STEAM_USER=your_steam_username
# - STEAM_PASSWORD=your_steam_password
# - STEAM_GUARD_CODE=your_2fa_code
restart: unless-stopped
- Start the server:
docker-compose up -d
- Check logs:
docker-compose logs -f
Using Docker CLI
- Pull the image:
docker pull greenmatthew/scp-secret-laboratory-server:latest
- Run the server:
docker run -d \
--name scp-sl-server \
-p 7777:7777/udp \
-v ./config:/home/steam/.config \
-e UID=1000 \
-e GID=1000 \
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List).
# -e TZ=Etc/UTC \
# To use a specific server version, uncomment the next line and set a manifest ID.
# See the "Using an Older Server Version" section for details.
# -e MANIFEST_ID=none \
# If you need to use your own Steam credentials, uncomment and set the following variables.
# -e STEAM_USER=your_steam_username \
# -e STEAM_PASSWORD=your_steam_password \
# -e STEAM_GUARD_CODE=your_2fa_code \
--restart unless-stopped \
greenmatthew/scp-secret-laboratory-server:latest
- Check logs:
docker logs -f scp-sl-server
Configuration
Mounting the .config directory allows you to configure any server setting and have it persist between container restarts.
Environment Variables
UID: User ID to run the server as (default: 1000)GID: Group ID to run the server as (default: 1000)TZ: Timezone identifier for the container (default: Etc/UTC). Examples:America/Chicago,Europe/London,Asia/TokyoDEPOT_ID: The Steam Depot ID for the server files (default:996562). This generally should not be changed.MANIFEST_ID: The Steam Manifest ID for a specific server version (default:none). See the "Using an Older Server Version" section for details.STEAM_USER: Your Steam username (default:anonymous).STEAM_PASSWORD: Your Steam password (default:"").STEAM_GUARD_CODE: The 2FA code from your authenticator app (default:""). Only needed if your account has Steam Guard enabled.
Using an Older Server Version
You can run an older version of the SCP:SL dedicated server by specifying a manifest ID. This is useful for compatibility with certain mods or for playing on a specific game version.
You can find a list of available manifest IDs on SteamDB. Note that you may need to be logged into Steam (e.g. via the SteamDB browser extension) to see the full list of historical manifests.
https://steamdb.info/depot/996562/manifests/
Once you have a manifest ID, set it using the MANIFEST_ID environment variable. When the container starts, it will download and run the server version corresponding to the specified manifest ID. To go back to the latest version, simply remove the MANIFEST_ID environment variable or set it back to none.
Port Configuration
The default server port is 7777/UDP. To use a different external port, adjust the port mapping:
In Docker Compose
ports:
- "8777:7777/udp" # Maps external port 8777 to internal port 7777
In Docker CLI
-p 8777:7777/udp # Maps external port 8777 to internal port 7777
Development
A Makefile is included for development:
# For available commands
make help
License
Released under the MIT License. See LICENSE file for details.