{"id":16696255,"url":"https://github.com/atterdag/conanexiles-server-howto","last_synced_at":"2025-04-10T02:16:19.289Z","repository":{"id":93635268,"uuid":"86243445","full_name":"atterdag/conanexiles-server-howto","owner":"atterdag","description":"Conan Exiles SysV init script","archived":false,"fork":false,"pushed_at":"2017-07-28T07:13:36.000Z","size":8,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T02:16:12.189Z","etag":null,"topics":["conanexiles","documentation","howto","script","start","stop","sysvinit"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atterdag.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-26T15:31:49.000Z","updated_at":"2023-09-08T17:22:47.000Z","dependencies_parsed_at":"2023-03-21T00:32:49.354Z","dependency_job_id":null,"html_url":"https://github.com/atterdag/conanexiles-server-howto","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atterdag%2Fconanexiles-server-howto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atterdag%2Fconanexiles-server-howto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atterdag%2Fconanexiles-server-howto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atterdag%2Fconanexiles-server-howto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atterdag","download_url":"https://codeload.github.com/atterdag/conanexiles-server-howto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142906,"owners_count":21054671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["conanexiles","documentation","howto","script","start","stop","sysvinit"],"created_at":"2024-10-12T17:27:07.464Z","updated_at":"2025-04-10T02:16:19.280Z","avatar_url":"https://github.com/atterdag.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Installing Conan Exiles on Debian Stretch                                          #\nThere are several articles that helps you with how to install a Conan Exiles Dedicated Server on Linux. But none of them seems to take security into account, so I decided to write my own.\n\n## Source material used\n* [Installing Wine on Debian Jessie](https://wiki.winehq.org/Debian)\n* [Running a Conan Exiles Server on Ubuntu Linux using WINE By Runningman](http://steamcommunity.com/sharedfiles/filedetails/?id=869441506)\n* [Conan Exiles How To Create Your Own Dedicated Server (With Admin Commands)](http://www.gamerevolution.com/faq/conan-exiles/how-to-create-your-own-dedicated-server-with-admin-commands-129183)\n* [Conan Exiles dedicated server configuration](https://gist.github.com/Dids/9564a693bb5b40cc0773cf8a5f07b4c1)\n\n## Prerequisites\n* A server with sufficient resources for your configuration\n* Debian Stretch amd64 installation\n* At least 4 GB available free space on /home partition, and 1G on /opt\n* Set up a firewall - I recommend UFW, as it's easy to install, and manage.\n* Install some sort of security policy extension, such as SELinux or AppArmor. I prefer SELinux because of its ability to automatically generate new policies. But whatever is preferred.\n\nIf you want some tips on how to set up SELinux, or UFW on Debian, then check out my [Typical Debian Stuff (Updated for Jessie) blog post](http://valdemar.lemche.net/2014/03/typical-debian-stuff.html)\n\n## Preparing the OS                                                           #\nIf using SELinux, set it in permissive mode.\n\n```\n$ sudo setenforce 0\n```\n \nInstall X Virtual Framebuffer, screen, and a HTTPS extension to APT, as well as ensuring that sudo, and sqlite3 is installed.\n\n```\n$ sudo apt-get install sudo xvfb screen apt-transport-https sqlite3 libasound2-plugins:i386\n```\n\n## Installing Wine                                                            #\nAllow 32 bit packages:\n\n```\n$ sudo dpkg --add-architecture i386\n```\n\nDownload, and add key used to sign wine packages.\n\n```\n$ wget https://dl.winehq.org/wine-builds/Release.key \u0026\u0026 sudo apt-key add Release.key\n```\n\nAdd the repository to **/etc/apt/sources.list.d/**\n\n```\n$ cat \u003c\u003c EOF | sudo tee /etc/apt/sources.list.d/winehq.list\ndeb https://dl.winehq.org/wine-builds/debian/ stretch main\nEOF\n```\n\nUpdate package list\n\n```\n$ sudo apt-get update\n```\n\nInstall Wine packages\n\n```\n$ sudo apt-get install --install-recommends wine-staging\n```\n\n## Installing Steam                                                           #\nInstall steamcmd\n\n```\n$ sudo apt-get install --install-recommends steamcmd\n```\n\n## Installing Conan Exiles as runtime user                                    #\nCreate steam group\n\n```\n$ sudo groupadd -r steam\n```\n\nCreate runtime user\n\n```\n$ sudo useradd -g steam -m -s /bin/false steam\n```\n\nBecome runtime user\n\n```\n$ sudo su - steam -s /bin/bash\n```\n\nFirst initialize your Wine environmnet\n```\n$ /opt/wine-staging/bin/wineboot\n```\n\nDownload Conan Exiles\n\n```\n$ steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/steam/conanexiles +login anonymous +app_update 443030 validate +quit\n```\n\nTest that you can start Conan Exiles server\n\n```\n$ xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' /opt/wine-staging/bin/wine64 /home/steam/conanexiles/ConanSandboxServer.exe -log\n```\n\nAfter it starts up, then just kill it with Ctrl+C\n\n## Configuring Conan Exiles                                                   #\nStill as runtime user, create the configuration files. Change the values below to what you want, such as passwords, and server name.\n\nNB: With the current release I'm not really able to tell the server to listen to other ports than the new default ports 7778/udp, and 14001/udp.\n\n```\n$ cat \u003e ~/conanexiles/ConanSandbox/Saved/Config/WindowsServer/Engine.ini \u003c\u003c EOF\n[OnlineSubsystemSteam]\nServerName=\"atterdag's super test server\"\nServerPassword=secret\n# Default server port is 7778\n#Port=7778 # Don't set it here, and set it the start script\n# Default query port is 27015\n#QueryPort=14001 # Don't set it here, and set it the start script\nEOF\n\n$ cat \u003e ~/conanexiles/ConanSandbox/Saved/Config/WindowsServer/Game.ini \u003c\u003c EOF\n[ConanSandbox]\n# set to the username of your runtime user\nUserID=steam\n\n[/script/engine.gamesession]\n# Raise this number to allow more concurrent players - duh!\n#MaxPlayers=10 # Don't set it here, and set it the start script\nEOF\n\n$ cat \u003e ~/conanexiles/ConanSandbox/Saved/Config/WindowsServer/ServerSettings.ini \u003c\u003c EOF\n[ServerSettings]\n# Its a good idea to set a strong password here\nAdminPassword=SuperSecret\n# 0=no nudity, 1=semi nudity, 2=full nudity\nMaxNudity=2\n# To disallow PVP then set to False\nPVPEnabled=True\n# 0=none, 1=Purist, 2=Relaxed, 3=Hardcore, 4=roleplaying, 5=experimental\nServerCommunity=5\nIsBattlEyeEnabled=True\nEOF\n```\n\nIts also in ServerSettings.ini that you set all the settings that you can do in-game as Administrator. And its kinda easier to do it from there.\n\nIf you'r running a LAN Server, then its a good idea to raise the values as below\n\n**Engine.ini**\n\n```\n[OnlineSubsystemSteam]\nAsyncTaskTimeout=60\n\n[/script/onlinesubsystemutils.ipnetdriver]\nMaxClientRate=100000\nMaxInternetClientRate=100000 \n```\n\n**Game.ini**\n\n```\n[/script/engine.gamenetworkmanager]\nTotalNetBandwidth=4000000\nMaxDynamicBandwidth=100000\nMinDynamicBandwidth=40000\n```\n\nLog off the runtime user\n\n```\n$ logout\n```\n\n## Create SysV script to manage Conan Exiles                                  #\nsystemd only support predefined actions such as start/stop/restart etc. So to have actions such as backup, update, connect to screen, then we need to make a traditional SysV script\n\n```\n$ sudo wget -O /etc/init.d/conanexiles https://raw.githubusercontent.com/atterdag/conanexiles-server-howto/master/conanexiles.init\n```\n\nMake the script executable\n\n```\n$ sudo chmod +x /etc/init.d/conanexiles\n```\n\nTell OS to run script at boot\n\n```\n$ sudo update-rc.d conanexiles defaults\n```\n\nThe SysV script supports the following actions\n* start - Start the server\n* stop - Stop the server\n* restart - Restart the server\n* status - Check if server is running or not\n* connect - Connect to screen session\n* update - Update game files\n* backup - Backup server configuration, and database\n* restore - Restore server from archive file\n* checkgamedb - Verify game databases integrety\n\nBut for now we'll just start it\n\n```\n$ sudo /etc/init.d/conanexiles start\n```\n\n## Configure UFW to allow incoming traffic to Conan Exiles                    #\nCreate UFW application profile for Conan Exiles default ports\n\n```\n$ cat \u003c\u003c EOF | sudo tee /etc/ufw/applications.d/conanexiles\n[conanexiles]\ntitle=Conan Exiles Server\ndescription=Conan Exiles dedicated server default ports\nports=7778/udp|7779/udp|14001/udp\ncategories=Game;\nreference=[https://github.com/atterdag/conanexiles-server-howto]\nEOF\n```\n\nTell UFW to load the profile\n\n```\n$ sudo ufw allow conanexiles\n```\n\nIf you are setting your own Netfilter script, then I'm sure you can add these ports to it yourself.\n\n## Wrapping up the OS                                                         #\nEnforce SELinux polices again\n\n```\n$ sudo setenforce 1\n```\n\nClean apt cache\n\n```\n$ sudo apt-get clean\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatterdag%2Fconanexiles-server-howto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatterdag%2Fconanexiles-server-howto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatterdag%2Fconanexiles-server-howto/lists"}