Docker container to host a Necesse dedicated server (SteamCMD App ID 1169370), auto-updated via SteamCMD, running under a non-root steam user.
ludix0/necesse14159/udp.env file providing at least TZ, PUID, PGID, password, maxPlayers, jeux1 (host port), and optionally OWNER_IDservices:
necesse:
image: ludix0/necesse:latest
container_name: necesse
restart: unless-stopped
volumes:
- ${HOME}/volumes/necesse/filesServer:/home/steam/necesse_server
- ${HOME}/volumes/necesse/saves:/home/steam/necesse_saves
- ${HOME}/volumes/steamcmd:/home/steam/steamcmd
environment:
- TZ=${TZ}
- PUID=${PUID}
- PGID=${PGID}
- UPDATE_ON_START=true
- STEAM_USER=
- STEAM_PASSWORD=
- WORLD_NAME=World1
- IGNORE_SEASONS=false
- GAME_PORT=14159
- MAX_PLAYERS=${maxPlayers}
- SERVER_PASSWORD=${password}
- OWNER_NAME=${OWNER_ID}
- MOTD=Welcome to the Necesse server
- PAUSE_WHEN_EMPTY=0
- GIVE_CLIENTS_POWER=0
- LANGUAGE=
- BIND_IP=
- SETTINGS_FILE=
- LOCAL_DIR=false
- LOGGING=1
- ZIP_SAVES=1
- LOGS_DIR=/home/steam/necesse_saves/logs
- SAVE_DIR=/home/steam/necesse_saves
ports:
- "${jeux1}:14159/udp"
Create a .env file next to this docker-compose.yml with your own values, then:
docker compose up -d
git clone <YOUR-GITHUB-REPO-URL>
cd necesse
cp .env.example .env # fill in your values
docker compose build
docker compose up -d
| Variable | Required | Description |
|---|---|---|
TZ, PUID, PGID | Yes | Timezone and user/group IDs to avoid permission issues |
UPDATE_ON_START | Yes | true/false — run SteamCMD update on every container start |
STEAM_USER, STEAM_PASSWORD | No | Leave empty for anonymous SteamCMD login (default, works fine for Necesse) |
WORLD_NAME | Yes | Save/world name to load or create (-world) |
IGNORE_SEASONS | No | true/false — disable seasonal content (-ignoreseasons) |
GAME_PORT | Yes | UDP port the server listens on inside the container (-port) |
MAX_PLAYERS | Yes | Max concurrent players, 1–250 (-slots) |
SERVER_PASSWORD | No | Server join password, empty = no password (-password) |
OWNER_NAME | No | Player name that receives owner permissions on join (-owner) |
MOTD | No | Message of the day (-motd) |
PAUSE_WHEN_EMPTY | No | 0/1 — pause the world when no player is connected (-pausewhenempty) |
GIVE_CLIENTS_POWER | No | 0/1 — client-side anti-cheat authority (-giveclientspower) |
LANGUAGE | No | Server language, empty = game default (-language) |
BIND_IP | No | Bind to a specific network interface, empty = all interfaces (-ip) |
SETTINGS_FILE | No | Path to an alternate settings file (-settings) |
LOCAL_DIR | No | true/false — store files next to the game binary instead of the default path (-localdir) |
LOGGING | No | 0/1 — enable log file generation (-logging) |
LOGS_DIR | No | Folder for log files (-logs) |
ZIP_SAVES | No | 0/1 — compress save files (-zipsaves) |
SAVE_DIR | Yes | Root data folder for saves/config/logs (-datadir), must match the mounted volume |
| Volume | Content |
|---|---|
/home/steam/necesse_server | Server binaries (installed by SteamCMD) |
/home/steam/necesse_saves | Saves, config, and logs (-datadir root) |
/home/steam/steamcmd | Shared SteamCMD installation |
| Port | Protocol | Usage |
|---|---|---|
| 14159 | UDP | Game traffic (only port used by Necesse) |
Conteneur Docker pour héberger un serveur dédié Necesse (SteamCMD App ID 1169370), mis à jour automatiquement via SteamCMD, exécuté sous un utilisateur steam non-root.
ludix0/necesse14159/udp.env fournissant au moins TZ, PUID, PGID, password, maxPlayers, jeux1 (port hôte), et éventuellement OWNER_IDservices:
necesse:
image: ludix0/necesse:latest
container_name: necesse
restart: unless-stopped
volumes:
- ${HOME}/volumes/necesse/filesServer:/home/steam/necesse_server
- ${HOME}/volumes/necesse/saves:/home/steam/necesse_saves
- ${HOME}/volumes/steamcmd:/home/steam/steamcmd
environment:
- TZ=${TZ}
- PUID=${PUID}
- PGID=${PGID}
- UPDATE_ON_START=true
- STEAM_USER=
- STEAM_PASSWORD=
- WORLD_NAME=World1
- IGNORE_SEASONS=false
- GAME_PORT=14159
- MAX_PLAYERS=${maxPlayers}
- SERVER_PASSWORD=${password}
- OWNER_NAME=${OWNER_ID}
- MOTD=Bienvenue sur le serveur Necesse
- PAUSE_WHEN_EMPTY=0
- GIVE_CLIENTS_POWER=0
- LANGUAGE=
- BIND_IP=
- SETTINGS_FILE=
- LOCAL_DIR=false
- LOGGING=1
- ZIP_SAVES=1
- LOGS_DIR=/home/steam/necesse_saves/logs
- SAVE_DIR=/home/steam/necesse_saves
ports:
- "${jeux1}:14159/udp"
Créez un fichier .env à côté de ce docker-compose.yml avec vos propres valeurs, puis :
docker compose up -d
git clone <URL-DE-VOTRE-DEPOT-GITHUB>
cd necesse
cp .env.example .env # renseignez vos valeurs
docker compose build
docker compose up -d
| Variable | Obligatoire | Description |
|---|---|---|
TZ, PUID, PGID | Oui | Fuseau horaire et UID/GID pour éviter les problèmes de permissions |
UPDATE_ON_START | Oui | true/false — lance la mise à jour SteamCMD à chaque démarrage du conteneur |
STEAM_USER, STEAM_PASSWORD | Non | Laisser vide pour une connexion SteamCMD anonyme (par défaut, fonctionne pour Necesse) |
WORLD_NAME | Oui | Nom de la sauvegarde/monde à charger ou créer (-world) |
IGNORE_SEASONS | Non | true/false — désactive le contenu saisonnier (-ignoreseasons) |
GAME_PORT | Oui | Port UDP d'écoute du serveur dans le conteneur (-port) |
MAX_PLAYERS | Oui | Nombre max de joueurs, 1 à 250 (-slots) |
SERVER_PASSWORD | Non | Mot de passe de connexion, vide = pas de mot de passe (-password) |
OWNER_NAME | Non | Pseudo du joueur qui reçoit les droits propriétaire à sa connexion (-owner) |
MOTD | Non | Message du jour (-motd) |
PAUSE_WHEN_EMPTY | Non | 0/1 — met le monde en pause quand personne n'est connecté (-pausewhenempty) |
GIVE_CLIENTS_POWER | Non | 0/1 — autorité anti-triche côté client (-giveclientspower) |
LANGUAGE | Non | Langue du serveur, vide = défaut du jeu (-language) |
BIND_IP | Non | Liaison à une interface réseau précise, vide = toutes les interfaces (-ip) |
SETTINGS_FILE | Non | Chemin vers un fichier de configuration alternatif (-settings) |
LOCAL_DIR | Non | true/false — stocke les fichiers à côté du binaire au lieu du chemin par défaut (-localdir) |
LOGGING | Non | 0/1 — active la génération de fichiers journaux (-logging) |
LOGS_DIR | Non | Dossier des fichiers journaux (-logs) |
ZIP_SAVES | Non | 0/1 — compresse les fichiers de sauvegarde (-zipsaves) |
SAVE_DIR | Oui | Dossier racine des données (sauvegardes/config/logs) (-datadir), doit correspondre au volume monté |
| Volume | Contenu |
|---|---|
/home/steam/necesse_server | Binaires du serveur (installés par SteamCMD) |
/home/steam/necesse_saves | Sauvegardes, configuration et journaux (racine -datadir) |
/home/steam/steamcmd | Installation SteamCMD partagée |
| Port | Protocole | Usage |
|---|---|---|
| 14159 | UDP | Trafic de jeu (seul port utilisé par Necesse) |
Content type
Image
Digest
sha256:261ad3ece…
Size
135.5 MB
Last updated
7 days ago
docker pull ludix0/necesse