= Dedicated Server Hosting For Valheim With Mods =

I've been in charge of dedicated hosting Valheim servers for my raiding party for a while, so when they found some mods they wanted to try out I thought it'd be like taking candy from a small person. Or something

It wasn't. It. I pulled together info from aof different sites, ran into aof pits, went to the bar, slept that off, then figured it out

Here's how I did it. (TL;DR at the bottom for script kiddies)
Start off with basic LightSail hosting, as documented here:
httpsaws.amazon.com/getting-started/hands-on/valheim-on-aws/
Follow those instructions until you get to 3.3 - I chose Ubuntu 20.04 LTS but the version may have gone up since I wrote this. Go through with all steps up to 3.2 and 3.3, but understand that you will need to adjust the naming of your save file in a few steps. Leaving it as the default ('Dedicated') is fine for now, but we'll change it in a bit

This is the basis for a normal Valheim hosted dedicated server, if that's all you want you're good here. Please note that I know basically nothing about docker and all that. If you have the capability to take the rest of these instructions and dockerize this whole thing, there are a million people who would appreciate it

If you want to add mods, here's what I did

Grab the mod manager Thunderstore from httpswww.overwolf.com/app/Thunderstore-Thunderstore_Mod_Manager onto your gaming rig

My friends wanted to play the Epic Valheim set of mods, so I searched in the Mod Manager for Epic Valheim and downloaded and installed that

This puts the files for all these mods in a secondary location on your local gaming rig. You can find that location in the Mod Manager by going to settings, then locations, then clicking Browse data folder. YOU WILL NEED THIS LATER - KEEP THE WINDOW OPEN
Launch a local game of Valheim through the "Start modded" button on the Mod Manager, create a new world, and make sure all your mods are applied as you expect

Go back to the data folder that came up and click into Valheim/profiles/Epic Valheim (or whatever)
Take the BepInEx folder and make a zip out of it

Upload that zip to AWS S3 or some otheravailable hosting service (make sure to twiddle the permissions so you can access them, limit by IP if you're nervous about people bogarting your data on your nickel)
Jump back to your LightSail instance, move to /home/ubuntu/valheim/server and wget  whatever you just uploaded


Then wget the dll pack for Valheim - The way I figured this out was to go to httpsvalheim.thunderstore.io/package/denikson/BepInExPack_Valheim/ and click on Manual Download. That downloaded it to my computer, but they have somescriptingthat obfuscates the address of the actual file. If you watch the network traffic (Hit F12 in Firefox, for example) you can watch the actual network traffic and find out that the file is actually at httpsgcdn.thunderstore.io/live/repository/packages/denikson-BepInExPack_Valheim-5.4.1900.zip. Find the file you want and wget it from the server (mine was wget httpsgcdn.thunderstore.io/live/repository/packages/denikson-BepInExPack_Valheim-5.4.1900.zip)
Install unzip (sudo apt install unzip)
Unzip the BepInExPack first - unzip denikson-BepInExPack_Valheim-5.4.1900.zip
Move the files that enable doorstop and unstripped_corlib into place - mv BepInExPack_Valheim/* 

Delete the unused folder - rm -rf BepInExPack_Valheim/
Delete the unmodded BepInEx folder - rm -rf BepInEx
Unzip the file you uploaded from your gaming rig (unzip BepInEx.zip or whatever you named it) - this contains both the mods and the config that you had locally
Make sure that your directory structure looks something like:
valheim/server$ ls
BepInEx logs
BepInEx.zipmanifest.json
LinuxPlayer_s.debug server_exit.drp
README.mdstart_game_bepinex.
UnityPlayer.sostart_server.
UnityPlayer_s.debug start_server_bepinex.
'Valheim Dedicated Server Manual.pdf' start_server_xterm.
config.json steam_appid.txt
denikson-BepInExPack_Valheim-5.4.1900.zip steamapps
discord.json steamclient.so
doorstop_config.ini unstripped_corlib
doorstop_libs valheim_server.x86_64
icon.png valheim_server_Data linux64
winhttp.dll
Change permissions on the run script - chmod 755 start_server_bepinex.
Edit the run script to the name, world, and password you want. - vi start_server_bepinex.and go to the line that starts 'exec ./valheim_server
Start the server in a way that it will continue running after you log out of LightSail - sudo ./start_server_bepinex.&
Go back to your LightSail instance, find the IP Address and copy it

Start a modded version of Valheim with the Mod Manager

Select Join IP and drop your LightSail IP address in there

BE A VIKING
TL;DR:
Create LightSail Ubuntu Instance
Alter networking for instance to add a rule allowing UDP on ports 2456-2458
curl -fsSL httpsget.docker.com -o get-docker.
sudoget-docker.
sudo apt install docker-compose
curl -o docker-compose.yml httpsgist.githubusercontent.com/robzhu/a127a6bce1ea25b01d40efb57ad1c26e/raw/30a2927a901dd614a518319cfeaa63a6bd2648a4/gistfile1.txt
sudo docker-compose up
(let it run until you see "Done generating locations, duration:" - then hit CONTROL-C tothe process)
Install mods you want to run on your gaming rig via Thunderstore Mod Manager
Go to your local install folder, find the BepInEx folder, zip that up into a .zip file, upload it to a place where it can be easily accessed (I pushed it to S3 and set it to public)
cd /home/ubuntu/valheim/server
wget 
wget  (might be wget httpsgcdn.thunderstore.io/live/repository/packages/denikson-BepInExPack_Valheim-5.4.1900.zip)
sudo apt install unzip

unzip denikson-BepInExPack_Valheim-5.4.1900.zip
mv BepInExPack_Valheim/* 

rm -rf BepInExPack_Valheim/
rm -rf BepInEx
unzip BepInEx.zip
chmod 755 start_server_bepinex.
vi start_server_bepinex.
sudo ./start_server_bepinex.&
Great Thread. I've never worked in a linux terminal to this point, but had a few rusty C skills from college, and a lot of google

I was a little confused on a few parts:
Move the files that enable doorstop and unstripped_corlib into place - mv BepInExPack_Valheim/* 

the syntax
*mv BepInExPack_Valheim didn't work for me. I had to use the full directories in the move function

(let it run until you see "Done generating locations, duration:" - then hit CONTROL-C tothe process)
This was in the TL:DR: but not it the full version

So on the first point, what I posted vs what you mentioned - there was a lacking- when using the mv command, the first parameter is where from and the second parameter is where to. The purpose of that command is to move everything from the folder BepInExPack_Valheim (which is what the suffix /* is for) to here (which is what the . is for)
As for the second, I am an imperfect soul. Mighta left something out, but I'm here for questions

== About Community ==
Vikings
Deer currently honking
== Similar to this post ==
r/TerrariaDedicated server with TmodLoader100%34/13/2019
r/OculusQuestDedicated router for Virtual Desktop89%419/2/2020
r/ConanExilesDedicated server 9999 ping and unjoinable100%309/24/2020
r/spaceengineersDedicated server (performance) plugins100%15Jan 20
- r/hetznerDedicated servers and vSwitch network speed100%69/3/2021
r/valheimFor all of you who have been working what the devs have94%7823d
r/valheimFound an unconnected portal in Da Lat, Vietnam.99%426d
r/valheimI never post but this needs to be said92%2342d
r/valheimSo um… who knew cloudberries were actually a thing?96%2112d
r/valheimA Friend and I tried out the harpoon cannon. Wasn't99%761d
r/valheimThe Black Forest seen from the Meadows.98%461d
r/valheimMe trying to put my boars inside the breeder98%456d
r/valheimValheim moment97%3820h
r/valheimGotta love this First Person Camera mod98%1145d
r/valheimMaybe just wishful thinking but I suspect they might97%1754d