Sign inSign up

ludix0/necesse

By ludix0

•Updated 7 days ago

necesse server

Image
0

253

ludix0/necesse repository overview

⁠Necesse — Dedicated Server (Docker)

🇬🇧 English⁠ | 🇫🇷 Français⁠


⁠English

Docker container to host a Necesse dedicated server (SteamCMD App ID 1169370), auto-updated via SteamCMD, running under a non-root steam user.

⁠Requirements
  • Docker and Docker Compose installed
  • A .env file providing at least TZ, PUID, PGID, password, maxPlayers, jeux1 (host port), and optionally OWNER_ID
services:
  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
⁠Method 2 — Build from source (GitHub)
git clone <YOUR-GITHUB-REPO-URL>
cd necesse
cp .env.example .env   # fill in your values
docker compose build
docker compose up -d
⁠Environment variables
VariableRequiredDescription
TZ, PUID, PGIDYesTimezone and user/group IDs to avoid permission issues
UPDATE_ON_STARTYestrue/false — run SteamCMD update on every container start
STEAM_USER, STEAM_PASSWORDNoLeave empty for anonymous SteamCMD login (default, works fine for Necesse)
WORLD_NAMEYesSave/world name to load or create (-world)
IGNORE_SEASONSNotrue/false — disable seasonal content (-ignoreseasons)
GAME_PORTYesUDP port the server listens on inside the container (-port)
MAX_PLAYERSYesMax concurrent players, 1–250 (-slots)
SERVER_PASSWORDNoServer join password, empty = no password (-password)
OWNER_NAMENoPlayer name that receives owner permissions on join (-owner)
MOTDNoMessage of the day (-motd)
PAUSE_WHEN_EMPTYNo0/1 — pause the world when no player is connected (-pausewhenempty)
GIVE_CLIENTS_POWERNo0/1 — client-side anti-cheat authority (-giveclientspower)
LANGUAGENoServer language, empty = game default (-language)
BIND_IPNoBind to a specific network interface, empty = all interfaces (-ip)
SETTINGS_FILENoPath to an alternate settings file (-settings)
LOCAL_DIRNotrue/false — store files next to the game binary instead of the default path (-localdir)
LOGGINGNo0/1 — enable log file generation (-logging)
LOGS_DIRNoFolder for log files (-logs)
ZIP_SAVESNo0/1 — compress save files (-zipsaves)
SAVE_DIRYesRoot data folder for saves/config/logs (-datadir), must match the mounted volume
⁠Volumes
VolumeContent
/home/steam/necesse_serverServer binaries (installed by SteamCMD)
/home/steam/necesse_savesSaves, config, and logs (-datadir root)
/home/steam/steamcmdShared SteamCMD installation
⁠Ports
PortProtocolUsage
14159UDPGame traffic (only port used by Necesse)

⁠Français

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.

⁠Prérequis
  • Docker et Docker Compose installés
  • Un fichier .env fournissant au moins TZ, PUID, PGID, password, maxPlayers, jeux1 (port hôte), et éventuellement OWNER_ID
⁠Méthode 1 — Installation rapide depuis Docker Hub (recommandé)
services:
  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
⁠Méthode 2 — Build depuis les sources (GitHub)
git clone <URL-DE-VOTRE-DEPOT-GITHUB>
cd necesse
cp .env.example .env   # renseignez vos valeurs
docker compose build
docker compose up -d
⁠Variables d'environnement
VariableObligatoireDescription
TZ, PUID, PGIDOuiFuseau horaire et UID/GID pour éviter les problèmes de permissions
UPDATE_ON_STARTOuitrue/false — lance la mise à jour SteamCMD à chaque démarrage du conteneur
STEAM_USER, STEAM_PASSWORDNonLaisser vide pour une connexion SteamCMD anonyme (par défaut, fonctionne pour Necesse)
WORLD_NAMEOuiNom de la sauvegarde/monde à charger ou créer (-world)
IGNORE_SEASONSNontrue/false — désactive le contenu saisonnier (-ignoreseasons)
GAME_PORTOuiPort UDP d'écoute du serveur dans le conteneur (-port)
MAX_PLAYERSOuiNombre max de joueurs, 1 à 250 (-slots)
SERVER_PASSWORDNonMot de passe de connexion, vide = pas de mot de passe (-password)
OWNER_NAMENonPseudo du joueur qui reçoit les droits propriétaire à sa connexion (-owner)
MOTDNonMessage du jour (-motd)
PAUSE_WHEN_EMPTYNon0/1 — met le monde en pause quand personne n'est connecté (-pausewhenempty)
GIVE_CLIENTS_POWERNon0/1 — autorité anti-triche côté client (-giveclientspower)
LANGUAGENonLangue du serveur, vide = défaut du jeu (-language)
BIND_IPNonLiaison à une interface réseau précise, vide = toutes les interfaces (-ip)
SETTINGS_FILENonChemin vers un fichier de configuration alternatif (-settings)
LOCAL_DIRNontrue/false — stocke les fichiers à côté du binaire au lieu du chemin par défaut (-localdir)
LOGGINGNon0/1 — active la génération de fichiers journaux (-logging)
LOGS_DIRNonDossier des fichiers journaux (-logs)
ZIP_SAVESNon0/1 — compresse les fichiers de sauvegarde (-zipsaves)
SAVE_DIROuiDossier racine des données (sauvegardes/config/logs) (-datadir), doit correspondre au volume monté
⁠Volumes
VolumeContenu
/home/steam/necesse_serverBinaires du serveur (installés par SteamCMD)
/home/steam/necesse_savesSauvegardes, configuration et journaux (racine -datadir)
/home/steam/steamcmdInstallation SteamCMD partagée
⁠Ports
PortProtocoleUsage
14159UDPTrafic de jeu (seul port utilisé par Necesse)

Tag summary

Content type

Image

Digest

sha256:261ad3ece…

Size

135.5 MB

Last updated

7 days ago

docker pull ludix0/necesse