Hello everyone,
Palworld early access just release and as I would like to play with my friends I decided to setup a secured dedicated palworld server.
The project - Palworld dedicated server
I would like to run a palworld dedicated server but with security in mind. I don't want to expose it to the public and I don't want to open ports on my router. Moreover, I prefer to run those kind of application / servers directly in docker containers.
So as I have an Unraid server at home, I choose to run a docker container of Palworld server on it and use Tailscale in order to securly access to the server.
Let's start !
Install the Palworld server
So I'am using a docker container image to run Palworld. This docker image was prepared by "ich777".
If you have an unraid server like me, just go to your unraid server, then got to "Apps" and Install this docker image :
It will take a while to install because it has to download all the files linked to the game.
Edit the configuration file of your palworld server
Stop your docker container.
The configuration is located at: .../Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
Here you can change whatever settings you want for your server but you should at least change the following :
ServerName="TheNameOfYourServer",
ServerDescription="Descriptions of your server",
AdminPassword="YourAdminPWD",
ServerPassword="NOPASSWORD-REMOVE",
PublicPort=8211,
PublicIP="YourTailScaleUnraidServerIP"
⚠️ At the moment there is an issue with accessing to palworld thought an IP if you have a password setup in the config file of your palworld server. So DELTE the "ServerPassword" and just set :
ServerPassword=""
But as we are using tailscale, everything is secured by tailscale so we won't need this security (the password) to access to the server . Only the authorized tailscale users will be able to access to this IP and Port. Thanks to ACLs. ⚠️
One done, you can launch again your DockerContainer.
Tailscale Installation on your server
Regarding the tailscale setup, As I am using an Unraid server I redirect you to this amazine article from Ibracorp.
Tailscale ACLs
Now we will setup the ACLs.
In tailscalse, invite your friends to join your tailnet :
Then setup the ACLs, for this click on "Access controls" near "Users".
Here is an example of what you can do :
{
// Declare static groups of users.
"groups": {
"group:owner": ["your_email_address_as_you_are_the_owner"],
"group:myfriends": [
"myfriend1@gmail.com",
"myfriend2@gmail.com",
],
},
"acls": [
// Rule for the "owner" group - full access
{
"action": "accept",
"src": ["group:owner"],
"dst": ["*:*"],
},
{
"action": "accept",
"src": ["group:myfriends"],
"dst": ["mytailscaleunraidserverip:8211"],
},
],
}
Here what I did in this example is to allow the "myfriends" group to only access to my unraid server tailscale ip only on the port used by palworld.
So my server is not publicy available, only my friends that have tailscale installed on their battlestation can access to this server. And they can only access to the palworld server and not other servers or services that could be running on my unraid server.
Now is the time to play !
Make sure that tailscale is installed on your battlestation and that you are part of the tailnetwork of the person hosting the server. Make sure you are connected to tailscale. And...
Run the game !
Enter your tailscale ip and your port :
Enjoy ! 🤓🕹️