Monter et configurer un serveur Post Scriptum sous Linux
Système requis pour heberger un serveur Post Scriptum
- CPU: i7 7700k / i7 8700k / i7 6700k OC 4.5 or 4.4
- Memoire : 32GB Ram / 3200Mhz
- Espace Disque : 20GB
- OS (Serveur): Windows Server / Linux
- Accès Root / Accès distance
Notez que la configuration d'un serveur Post Scriptum est valide aussi bien pour Windows que pour Linux, seule l'installation de steamcmd et le lancement du serveur diffèrent (emploi d'un fichier .bat - que vous trouverez dans la page officielle - au lieu d'un .sh)
- Vous connaissez les bases de l'administration d'un serveur dédié, savoir s'y connecter à l'aide de Putty, etc ...
- Ce tuto a été testé le 04/09/2018 sur une Débian9 et Ubuntu 18.4 et il est fonctionnelle.
Tutoriel :
Ce tuto est librement inspiré par la page officielle
Installation de Steam :
Pour monter un serveur Post Scriptum, il faut dans un premier temps installer SteamCMD
Il convient pour les OS 64bits d'installer les dépendances requises pour SteamCMD.
sous "ROOT" faites un :
aptitude install lib32gcc1
(Si vous avez l'habitude de travaillez avec apt-get, tapez "apt-get" au lieu de "aptitude")
Pour installer steam on utilise "user" à partir de son répertoire "home/user/". On ne travaille surtout pas sous "ROOT".
On installe Steam.
On crée le repertoire "steamcmd" pour y installer steam et on lance le programme steamcmd :
mkdir steamcmd
cd steamcmd
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
./steamcmd.sh
Ensuite on charge les fichiers serveurs depuis steam, pour cela on utilise le compte "anonymous".
Vous pouvez installer le serveur dans le repertoire "steam" mais on prend le parti d’installer les fichiers du serveur sur le repertoire /home/user/serveur/ps_serveur
login anonymous
force_install_dir /home/user/serveur/ps_serveur
app_update 746200 validate
quit
Voilà les fichiers sont chargés.
Il ne reste plus qu'à configurer votre serveur.
Notez que comme PS est à la base un mod de Squad sa configuration est quasiment similaire.
Configuration de votre serveur PS :
Les fichiers de configuration se trouvent dans /home/user/serveur/ps_serveur/PostScriptum/ServerConfig/ et sont les suivants :
Admins.cfg
Bans.cfg
License.cfg
MapRotation.cfg
Rcon.cfg
RemoteAdminListHosts.cfg
RemoteBanListHosts.cfg
Server.cfg
ServerMessages.cfg
Admins.cfg vous permet de définir les administrateurs et les modérateurs du serveur, ceux qui pourront mettre fin à la partie, kicker les trolls....
Vous pouvez créer des groupes avec différents paramètres
Group=SuperAdmin:changemap,cheat,private,balance,chat,kick,ban,config,cameraman,debug,pause
Group=Admin:changemap,balance,chat,kick,ban,cameraman,pause
Group=Moderateur:changemap,chat,kick,ban
Admin=XXXXXXXXXXXXX:SuperAdmin //joueur 1
Admin=XXXXXXXXXXXXX:SuperAdmin //joueur 2
Admin=XXXXXXXXXXXXX:Admin //joueur 3
Admin=XXXXXXXXXXXXX:Admin //joueur 4
Admin=XXXXXXXXXXXXX:Moderateur //joueur 5
Admin=XXXXXXXXXXXXX:Moderateur //joueur 6
xxxxxxxxxxxxxxx = SteamID du joueur
Voir le paragraphe "Les niveaux d'accès" plus bas pour les détails.
Bans.cfg est le fichier sur lequel figure les bans et tempban de vos trolls
XXXXXXXXXXXXXXXX:0 //Ban Permanent
XXXXXXXXXXXXXXXX:1454455855 //team kill
xxxxxxxxxxxxxxx = SteamID du joueur
:0 = Sans limite de temps
:1454455855 = Temps (en sec) restant
MapRotation.cfg est le fichier dans lequel est configurée la rotation.
Vous pouvez le modifier manuellement.
Heelsum Single 01
Driel Single 01
Oosterbeek Single 01
Driel Single 02
Heelsum Single 02
Driel Single 03
Oosterbeek Single 02
Driel Single 06
Heelsum Single 03
Driel Single 07
Oosterbeek Single 03
Driel Double 01
Heelsum Single 06
Oosterbeek Single 06
Heelsum Single 07
Oosterbeek Single 07
Heelsum Single 08
Oosterbeek Double 01
Heelsum Double 01
Oosterbeek Double 02
Heelsum Double 02
Il ne s'agit pas du fichier par défaut.
Il s'agit d'une source du discord officiel.
A vous de le modifier selon vos gouts. Vous trouverez toutes les options de chaque map sur notre galerie dédié à Post Scriptum.
Pour faire un serveur d'entrainement il faut juste modifier votre MapRotation.cfg comme ceci :
Arnhem Range
Modificatif suite implantation du mode Armored (08/03/2019) :
Avec le mode Armored apparait le vote des maps.
Si vous voulez laisser les joueurs choisir la map sur laquelle ils peuvent évoluer il faut modifier le server.cfg en ajoutant la commande :
MapVoting=True
Dans ce cas il faut créer un fichier MapVoting.cfg, en plus du fichier MapRotation.cfg dans lequel sera aussi indiqué les map Armored ou "classique".
MapVoting.cfg pour le mod AAS/Offensive :
Arnhem_AAS=Arnhem_AAS_01,Arnhem_AAS_02,Arnhem_AAS_03
Driel_AAS=Driel_AAS_01,Driel_AAS_02,Driel_AAS_03,Driel_AAS_04,Driel_AAS_05
Heelsum_AAS=Heelsum_AAS_01,Heelsum_AAS_02
Doorwerth_AAS = Doorwerth_AAS_01,Doorwerth_AAS_02,Doorwerth_AAS_03,Doorwerth_AAS_04,Doorwerth_AAS_05
Oosterbeek_AAS=Johanna_Hoeve_AAS_01,Johanna_Hoeve_AAS_02,Johanna_Hoeve_AAS_03,Johanna_Hoeve_AAS_04,Johanna_Hoeve_AAS_05,Johanna_Hoeve_AAS_06
Veghel_AAS = Veghel_AAS_01,Veghel_AAS_02,Veghel_AAS_03,Veghel_AAS_04,Veghel_AAS_05,Veghel_AAS_06,Veghel_AAS_07,Veghel_AAS_08,Veghel_AAS_09,Veghel_AAS_10
Velmolen_AAS = Wolfheze_AAS_01,Wolfheze_AAS_02,Wolfheze_AAS_03,Wolfheze_AAS_04,Wolfheze_AAS_05,Wolfheze_AAS_06,Wolfheze_AAS_07,Wolfheze_AAS_08,Wolfheze_AAS_09
Arnhem_Offensive=Arnhem_Offensive_Single_01,Arnhem_Offensive_Single_02
Driel_Offensive=Driel_Offensive_Single_01,Driel_Offensive_Single_02,Driel_Offensive_Single_03,Driel_Offensive_Single_04,Driel_Offensive_Single_05,Driel_Offensive_Single_06,Driel_Offensive_Single_07,Driel_Offensive_Single_08,Driel_Offensive_Single_09,Driel_Offensive_Single_10,Driel_Offensive_Double_01,Driel_Offensive_Double_02
Heelsum_Offensive=Heelsum_Offensive_Single_01,Heelsum_Offensive_Single_02,Heelsum_Offensive_Single_03,Heelsum_Offensive_Single_04,Heelsum_Offensive_Single_05,Heelsum_Offensive_Single_06,Heelsum_Offensive_Single_07,Heelsum_Offensive_Single_08,Heelsum_Offensive_Single_09,Heelsum_Offensive_Single_10,Heelsum_Offensive_Double_01,Heelsum_Offensive_Double_02
Doorwerth_Offensive=Doorwerth_Offensive_Single_01,Doorwerth_Offensive_Single_02,Doorwerth_Offensive_Single_03,Doorwerth_Offensive_Single_04,Doorwerth_Offensive_Single_05,Doorwerth_Offensive_Single_06,Doorwerth_Offensive_Single_07,Doorwerth_Offensive_Single_08,Doorwerth_Offensive_Single_09,Doorwerth_Offensive_Single_10,Doorwerth_Offensive_Double_01
Oosterbeek_Offensive=Johanna_Hoeve_Offensive_Single_01,Johanna_Hoeve_Offensive_Single_02,Johanna_Hoeve_Offensive_Single_03,Johanna_Hoeve_Offensive_Single_04,Johanna_Hoeve_Offensive_Single_05,Johanna_Hoeve_Offensive_Single_06,Johanna_Hoeve_Offensive_Single_07,Johanna_Hoeve_Offensive_Single_08,Johanna_Hoeve_Offensive_Single_09,Johanna_Hoeve_Offensive_Single_10,Johanna_Hoeve_Offensive_Double_01,Johanna_Hoeve_Offensive_Double_02
Veghel_Offensive=Veghel_Offensive_Single_01,Veghel_Offensive_Single_02,Veghel_Offensive_Single_03,Veghel_Offensive_Single_04
Velmolen_Offensive=Wolfheze_Offensive_Single_01,Wolfheze_Offensive_Single_02,Wolfheze_Offensive_Single_03,Wolfheze_Offensive_Single_04
MapVoting.cfg pour le mod Armored :
Veghel_Armoured = Veghel_Armored_01
Driel_Armoured=Driel_Armored_01
Heelsum_Armoured=Heelsum_Armored_01
Doorwerth_Armoured = Doorwerth_Armored_01
ATTENTION : A l'heure actuelle, le mod AAS/Offensive et le mod Armored ne peuvent pas co-éxister sur le même serveur.
Le mod Armored est limité à 64 slots par serveur alors que le mod AAS/Offensive peut monter à 80 slots.
Fin de modif (08/03/2019)
Rcon.cfg permet de configurer un mot de passe Rcon pour l'utilisation d'outil à distance.
Vous y configurez l'IP, le port Rcon, le mot de passe Rcon, le nombre maximum de connexion et la limite de temps avant de déconnecter une session inactive.
Pensez à ouvrir le port TCP correspondant.
RemoteAdminListHosts.cfg et RemoteBanListHosts.cfg ces deux fichiers s'utilisent uniquement si vous avez plusieurs serveurs. Ils doivent contenir pour le premier l'URL d'un fichier unique répertoriant tous les admins/modo et le second l'URL du fichier où doivent se trouver vos bans.
http://mysite.com/banlists/ban-list.cfg
Server.cfg est le fichier principal de votre serveur. On y configure le nom du serveur, le nombre de slots ...
ServerName="[FR-NGBC]NotGoodButCrazy Server|www.notgoodbutcrazy.eu"
MaxPlayers=80
NumReservedSlots=4
IsLANMatch=false
ShouldAdvertise=true
NumPlayersDiffForTeamChanges=3
AllowTeamChanges=true
PreventTeamChangeIfUnbalanced=true
EnforceTeamBalance=true
RejoinSquadDelayAfterKick=300
RecordDemos=false
ServerMessageInterval=300
// Forced on for Licensed servers (Only OWI staff & qa are admins)
AllowCommunityAdminAccess=false
// Forced on for Licensed servers (Only OWI devs)
AllowDevProfiling=false
Il est explicite pas besoin de détailler.
Si vous voulez mettre un mot de passe permanent sur votre serveur vous pouvez ajouter cette ligne dans votre server.cfg
ServerPassword=test
La commande admin disponible plus bas sert uniquement pour verrouiller votre serveur lorsque vous êtes en jeu.
ServerMessages.cfg est le fichier dans lequel vous configurez les messages qui défileront sur votre serveur.
1 ligne par message, la fréquence de diffusion est définie dans le server.cfg (ServerMessageInterval)
Bienvenue sur le serveur des [NGBC]
C'est un serveur Français mais tout le monde d'où qu'il vienne est le bienvenue
Les 2 règles principales : Respect et se faire plaisir
Suivez nous sur notre site www.notgoodbutcrazy.eu
Votre ligne de commande
Comme les choses sont bien faites sur PS, les fichiers serveurs Linux contiennent déjà un fichier de lancement.
home/user/serveurs/ps_serveur/PostScriptumServer.sh
Assurez vous qu'il soit exécutable et lancez le fichier .sh en y ajoutant les ports nécessaire et les options de log :
./PostScriptumServer.sh Port=10027 QueryPort=10037 -fullcrashdump -log
Pour reboot/stop/start le serveur il convient d'utiliser la commande dans un screen ou un script mais ça je vous laisse gérer.
Configuration des ports
Assurez vous d'ouvrir les ports nécessaires.
UDP: 10027
UDP: 10037
Si vous voulez changer les ports par défaut (notamment pour ouvrir plusieurs serveurs sur la même machine) vous devez modifier votre ligne de commande avec les arguments correspondants :
Port=10047 QueryPort=10067
Nota : Pensez à changer le Port RCON en créant un second serveur. Il ne doit pas être identique à votre 1er serveur sinon vous aurez une erreur de segmentation.
Administration du Serveur :
Les niveaux d'accès
Voici ce qui peut être autorisé ou non aux admin/modo (Admin.cfg )
changemap | Peut changer la map |
canseeadminchat | Peut voir ce que le chat des admins |
Balance | Ce groupe peut changer de team, sans se soucié de l'équilibre |
Pause | Commande de match |
cheat | Accès à certaines commandes de cheat |
Private | Peut définir un mot de passe pour fermer le serveur |
Chat | Accès admin chat |
Kick | Accès Commande Kick |
Ban | Accès Commande Ban |
Config | Peut agir sur la configuration du serveur |
immunity | Ne peut pas être kické ou Banni |
manageserver | Administre le serveur / Peut le couper |
cameraman | Mod spectateur (voir les commandes en fin de tuto) |
featuretest | Commands being tested |
forceteamchange | Force le changement de team |
reserve | Accès au slot réservé |
demos | Autorisé à filmer (actuellement cassé) |
debug | Commande debug |
teamchange | Peut changer d'équipe sans pénalité |
- Pour accéder à la console la touche est le ²
Admin Command | Access | Description |
---|---|---|
AdminKick | kick | AdminKick "<NameOrSteamId>" <KickReason> (Éjecte un joueur du serveur) |
AdminKickById | kick | AdminKickById <PlayerId> <KickReason> (Ejecte un joueur via son ID) |
AdminBan | ban | AdminBan "<NameOrSteamId>" "<BanLength>" <BanReason> (Bans un joueur pour un certain temps. 0 = Perm, 1d = 1 jour, 1M = 1 Mois, etc) |
AdminBanById | ban | AdminBanById <PlayerId> "<BanLength>" <BanReason> ( Bans un joueur via son ID pour un certain temps . 0 = Perm, 1d = 1 Day, 1M = 1 Month, etc) |
AdminBroadcast | chat | AdminBroadcast <Message> (Envoie un message à tous les joueurs sur le serveur) |
ChatToAdmin | chat | ChatToAdmin <Message> (Envoie un message à tous les admins sur le serveur) |
AdminRestartMatch | pause | AdminRestartMatch (Redémarre la partie) |
AdminEndMatch | pause | AdminEndMatch (Met fin à la partie) |
AdminPauseMatch | pause | AdminPauseMatch (Met le serveur en pause) |
AdminUnpauseMatch | pause | AdminUnpauseMatch (Met fin à la pause du serveur) |
AdminKillServer | manageserver | AdminKillServer <Force 0/1> (Coupe le serveur) |
AdminChangeMap | changemap | AdminChangeMap <MapName> (Change la carte) |
AdminSetNextMap | changemap | AdminSetNextMap <MapName> (Paramètre la prochaine map) |
AdminSetMaxNumPlayers | config | AdminSetMaxNumPlayers <NumPlayers> (Limite le nombre maximum de joueur) |
AdminSetNumReservedSlots | config | AdminSetNumReservedSlots <NumReserved> (Règle le nombre de slots réservés) |
AdminSetServerPassword | private | AdminSetServerPassword <Password> (Règle le mot de passe du serveur ou utiliser "" pour l'enlever) |
AdminSlomo | cheat | AdminSlomo <TimeDilation> (Augmente ou réduit la vitesse du temps sur le serveur 0.1 = 10% de la vitesse normale, 2.0 multiplie par 2 la vitesse normale) |
AdminStats | debug | AdminStats (Affiche les stats du serveur : FPS ...) |
AdminForceTeamChangeById | forceteamchange |
AdminForceTeamChangeById |
AdminForceTeamChange | forceteamchange |
AdminForceTeamChange |
AdminAlwaysValidPlacement | cheat | AdminAlwaysValidPlacement <alwaysValid> (Sets the server to ignore placement rules for deployables) |
AdminDisableVehicleClaiming | cheat | AdminDisableVehicleClaiming |
AdminAllKitsAvailable | cheat | AdminAllKitsAvailable <Valid> (Sets the server to ignore kit restrictions) |
AdminNetTestStart | debug | AdminNetTestStart (Starts the network test and prints it to the clients logs) |
AdminNetTestStop | debug | AdminNetTestStop (Stops the network test) |
AdminDemoPlay | demos | AdminDemoPlay <FileName> (Plays back the demo recording, must have file from server) |
AdminDemoRec | demos | AdminDemoRec <FileName> (Records gameplay, you must run this first) |
AdminDemoStop | demos | AdminDemoStop (Stops recording and saves the demo to disk) |
AdminProfileServer | debug | AdminProfileServer <SecondsToProfileFor> <bUseRaw> (Starts profiling on the server for a fixed length of time, after which the profiling data is saved to disk.) |
TraceViewToggle | FeatureTest | TraceViewToggle (Runs a trace from center of screen out to any objects and displays information about that object) |
Les Commandes publiques
Command | Description |
---|---|
ListPlayers | ListPlayers (List player ids with associated player name and SteamId) |
ListCommands | ListCommands (Prints out the information for all commands in the game.) |
ShowCommandInfo | ShowCommandInfo (Print out the details of a particular command) |
ShowNextMap | ShowNextMap (Ask the server what the next map is) |
GiveUp | GiveUp (Die and give up being wounded) |
Respawn | Respawn (Causes the player to commit suicide) |
ChangeTeams | ChangeTeams (Change teams to the other side) |
ChangeTeamsWithId | ChangeTeamsWithId <NewTeam> (Change teams to the specified team number, zero changes to the other side) |
CreateSquad | CreateSquad <Name> (Request the creation of a squad, specifying the name) |
JoinSquadWithName | JoinSquadWithName <Name> (Join a squad on our team with the following name) |
JoinSquadWithId | JoinSquadWithId <Id> (Join a squad on our team with the following id) |
LeaveSquad | LeaveSquad (Leave the squad we are currently in) |
CreateRallyPoint | CreateRallyPoint (Drop a rally point for squad members to spawn from) |
ApproveVehicleClaim | ApproveVehicleClaim (As a squad leader, tries to approve a vehicle clain made by a squad member attempting to enter a vehicle) |
Chat | Chat "<Message>" <ChatType=All|Team|Squad> (Broadcast chat message) |
ChatToAll | ChatToAll <Msg> (Chat to everyone) |
ChatToTeam | ChatToTeam <Msg> (Chat only to same team) |
ChatToSquad | ChatToSquad <Msg> (Chat only to same squad) |
DisableHudWidgets | DisableHudWidgets (Removes all widgets on the HUD) |
DisableUI | DisableUI (Removes the UI components from the screen) |
Stat FPS | Stat FPS (Draw frame rate on screen) |
Stat Unit | Stat Unit (Draws game, draw, and gpu times on screen) |
HighResShot | HighResShot <Resolution/Multiplier> (take a screen shot, e.g., "HighResShot 3840x2160" or "HighResShot 4") |
r.SetRes | r.SetRes <Resolution> (change screen resolution, "r.setres 1920x1080f") |
Disconnect | Disconnect (Disconnects from server) |
Reconnect | Reconnect (Reconnects to previous server) |
Les Commandes de la Camera admin
Command | Description |
---|---|
Shift + P | Turn on/off |
w,a,s,d | Move |
Shift | Move quicker |
Space | Go Up |
C | Go Down |
0 | Info Display |
1 | Speed |
2 | Zoom |
3 | Blur |
6,7,8,9 | Spectator Tools |
Voilà, à vos PC et Bon jeu.
Les commentaires à propos de ce tutoriel sont à faire sur CE SUJET
Edited by Soldat Ryan