Open-source project
Nimdy/Dedicated_Valheim_Server_Script avatar
Nimdy/Dedicated_Valheim_Server_Script

Njord Menu: a menu driven Valheim dedicated server installer for Linux

Valheim Server Manager . Supports: ValheimPlus, Bepinex, Multi-world, Multi-Lang, Update, Backup, Restore and more: Built for Linux

712 stars113 forksShellAGPL-3.0

At a glance

What is it?
A Bash script that installs, updates, backs up and restores a Valheim dedicated server on Ubuntu, with multi world support, mod support through BepInEx and ValheimPlus, and translations. It is a single script with a menu rather than a service manager, and the author is candid that the web GUI is still on a beta branch.
Who is it for?
Adopt this script if you want a Valheim server on a fresh Ubuntu machine and prefer a menu over a configuration file, especially if you also need multi world setups, BepInEx mods or a scheduled backup. Skip it if you want a systemd unit with a reproducible configuration, since the script's model is an interactive menu that you run as root, and skip the web GUI branch for anything but experimentation because the readme says to use it only if you know what you are doing.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 4 days ago.
What is it written in?
Mainly Shell, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A script for people who want a menu, not a service unit

The project is a Valheim Server Manager, and the name of the script gives away the interaction model. The readme describes a new easy to use menu system to manage and install your Valheim Dedicated Server, and the release is named Njord Menu 5.0 Odin, updated for Valheim 1.0, with a last validation on 21-SEP-2026.

The framing is deliberately casual. The readme says "So easy a Viking can do it!", and the top of the file carries a Discord badge, a contributors graph, a YouTube channel and a link to a video demo. The current release is 5.0-Odin, published on 2026-09-21, and before it came 4.0-Thor on 2024-05-26 and 3.5-lokis-dance on 2023-04-24. The naming convention with a Norse name attached to each version is a small thing that tells you this is a solo maintained project with a personality.

The feature list in the repository description covers ValheimPlus, Bepinex, multi world, multi lang, update, backup, restore and more, and it is built for Linux. The Built With section names BASH, UBUNTU and SteamCMD, which is the whole stack: a shell script, an Ubuntu server, and Valve's command line tool for downloading the dedicated server.

The audience is people standing up a Valheim server for themselves or a small group, on a fresh Ubuntu box, who want a guided path rather than a configuration file to write from scratch. The wiki pages linked from the readme cover updating a server and a top 10 reasons your server is not working and how to fix it, which is the sort of documentation a self-hosted game server actually needs.

The install path is a short sequence of shell commands

The documented install is a numbered list, and it is worth following literally because several steps have specific reasons attached.

First you need the prerequisites: a cloud hosting or virtualization service, with Digital Ocean described as highly recommended, and AWS, Azure and Google Cloud Platform as alternatives. You need Ubuntu, with the readme naming Ubuntu 24.04 LTS, and if you are on Windows, Putty 64bit and WinSCP 64bit for transferring world files between machines.

Then you SSH into the newly created VM, and the readme makes a useful point about that step: if you can connect via Putty or Terminal, then you have set up at least one firewall rule correctly, and later you can just add the required ports for Valheim.

The commands themselves are simple. Verify git and the network tools are present:

sh
sudo apt update && sudo apt install git net-tools

Change to /opt for the installation script:

sh
cd /opt

Clone the repository:

sh
git clone https://github.com/Nimdy/Dedicated_Valheim_Server_Script.git

Move into the cloned directory and make the menu executable:

sh
cd Dedicated_Valheim_Server_Script
sh
sudo chmod +x njordmenu.sh

And then launch it. The readme asks you to run this as root first, or as a true user account with sudo permissions, and warns against using sudo -u, saying to use sudo -i instead.

That last instruction is not pedantry. The script is going to create a local Steam account, install a service and write to system paths, and the difference between sudo -i and sudo -u is the difference between running as root and running with a mangled environment, which is where shell scripts that assume certain paths and variables tend to break.

The menu asks for a local Steam account, a server name and a password

Once the menu is running, the installation path is a set of prompts, and the prompts are where the design decisions are visible.

The documented flow is: select Option 3, Install Valheim Server or Add another Valheim Instance. Then you enter a password for the newly created NONROOT local Steam account, and the readme is explicit that this is not your Steam account, just a local account to run the Valheim server. Then you enter what you wish your public Valheim server display will be called. Then your local world name, which is the name your map data files will be called and what your world is called for those who play in it. Then the password required to connect to your server, which the readme notes is required.

That last set of prompts is the multi world feature in practice. The world name is the identifier for the map data, and the fact that the option is phrased as Install Valheim Server or Add another Valheim Instance tells you the same installation flow is reused for each additional world on the same machine. This is the difference from a single instance script, and it is why the world name and the server display name are asked separately: one is for players, the other is for files.

The dedicated local Steam account is the other structural decision. Valheim's dedicated server is distributed through SteamCMD, and running it as a non root local account means a compromised or misbehaving server process does not run as root on the host. The prompt for a password is there because that account is created with one.

The readme also notes that your information is now saved for you later, and that a lot of people seem to forget. That saved state lives in the repository's config.conf file, and it is the reason the script can reinstall, update or restore without asking you to re-enter everything.

The two CPU and 4GB RAM floor, and why it grows

The readme gives a minimal requirement and, unusually for a project of this kind, explains the reasoning rather than just stating a number.

The requirement is 2 CPU and 4GB RAM. The readme says you might be able to get it working with less, but that it is a dice roll with any cloud services. Then it makes the point that matters: once your world starts becoming explored and you start building stuff, you will wish you had the minimal requirements.

The analogy is the Minecraft server, and the mechanism is the database. Your database will grow as you continue to play, therefore the need for additional CPU and RAM resources will grow.

That is a fair and useful piece of advice, and it is worth taking seriously in a specific way. Cloud providers let you resize a droplet, but a Valheim world database that has grown is not the same as a small world, and the first time a new player explores the map is when the server will need the headroom. Sizing for day one rather than for month three is how a small server ends up being rebuilt.

The prerequisites section also names a Windows workflow, Putty 64bit for Windows users and WinSCP 64bit for Windows users who wish to transfer world files from one machine to another. The WinSCP point is the practical one, since moving a world between a local machine and a server is how you test a map or keep a backup you control.

Updates, backups and restores are the reason to use a script at all

A dedicated game server has three recurring chores, and the script exists to cover all three.

Updating is the first. The wiki link in the readme goes to a page on how to update your Valheim server, and the feature list includes update as a first class operation. Valheim versions arrive, and the dedicated server binary has to be replaced and the world migrated if the format changed. Doing that by hand means knowing which files to copy, which to keep, and when a world needs converting. The script's update path knows the layout because the script created it.

Backup is the second, and there is a dedicated script in the repository for it, valheim_backup.sh, sitting alongside the menu script. A separate backup script rather than a menu option is the right shape, because a backup is something you want to run from cron or from a timer rather than by hand.

Restore is the third, and it is the reason backups are worth having. Restoring a world that has been corrupted, or rolling back to a world from before a bad update, is the operation that saves an evening.

The other two features in the list are extensions rather than chores. ValheimPlus and Bepinex are the two modding routes for Valheim, and supporting both means the script has to know how to install and enable them and how to keep them working across an update. Multi lang is a server display concern, and the presence of a lang directory in the repository tree is the implementation of it.

The repository tree is small and confirms the shape: njordmenu.sh is the interactive script, valheim_backup.sh is the backup script, config.conf holds the saved settings, lang holds the translations, and the playground and rebirth directories sit alongside them.

Where this script is the wrong choice

There are situations where a shell menu is the wrong tool, and this one has a couple.

The first is reproducibility. The configuration lives in config.conf, written by the menu, and the installation is a sequence of interactive answers. That is a good fit for one person setting up one server, and a poor fit for a fleet, for a configuration management system, or for a second machine that must match the first. If you want a server you can rebuild from a script, a declarative unit file or a container is a better shape, and this one does not offer that.

The second is the root requirement. The readme asks you to run the menu as root, or as a real user with sudo, and explicitly says not to use sudo -u. A script that needs root, wraps an interactive menu around it, and then creates and manages a service is a lot of privilege to hand to a shell script. It is not a criticism of this project specifically, since that is how most game server installers work, but it is a real risk to weigh for a machine that does anything else.

The third is the beta web GUI, and the readme is unusually direct about it. The BETA Branch has the web GUI we are working on, and only use the BETA branch if you know what you are doing. That is a clear signal, and it should be taken at face value. A web interface for server management is exactly the kind of thing that should not be exposed to the internet on a beta branch, and the menu script is the stable path.

The fourth is platform scope. It is built for Linux, and specifically for Ubuntu. The readme names Ubuntu 24.04 LTS, and the topics list ubuntu, ubuntu-server, valheim-linux and valheim-service. A Debian, Fedora or Arch machine is out of the documented path, and the script's assumptions about apt and Ubuntu paths are not guaranteed to hold elsewhere.

And the fifth is the support model. There is a Discord for tech support, a YouTube channel and a wiki, all maintained by one person, and the readme carries a DigitalOcean referral link for the author's own hosting. That combination is fine for a hobby server and not what you want under a service level agreement.

The web GUI branch and the licensing

Two things are worth reading carefully before you commit.

The first is the beta branch. The BETA Branch has the web GUI the project is working on, and the instruction is to only use the BETA branch if you know what you are doing. The current stable line is the Njord Menu 5.0 Odin release, updated for Valheim 1.0, with a last validation date of 21-SEP-2026.

The second is the licence. The project is licensed under AGPL-3.0, which is the copyleft licence for network software and one of the more demanding ones for anyone who modifies and then serves the result. For a game server script that you run on your own machine for your own players, AGPL is unremarkable. It is a different question if you plan to fork it, change it and run it as a service for other people, and that question deserves an answer from your own legal advice before you publish anything.

The rest of the project housekeeping is standard. There is a CODE_OF_CONDUCT.md, a .github directory, a .gitignore, and the repository has a Discord badge, a contributors graph and a star graph in the readme. The author also links Patreon and Buy Me a Coffee for tipping, and notes that contributions, in the form of code or translation, are welcome.

The last push was on 2026-10-19, so the project is being worked on, and the release naming tracks the Valheim version it targets, which means you can tell at a glance whether a release supports the game build you are running.

Editorial conclusion

Adopt this script if you want a Valheim server on a fresh Ubuntu machine and prefer a menu over a configuration file, especially if you also need multi world setups, BepInEx mods or a scheduled backup. Skip it if you want a systemd unit with a reproducible configuration, since the script's model is an interactive menu that you run as root, and skip the web GUI branch for anything but experimentation because the readme says to use it only if you know what you are doing. Verify first that you meet the stated 2 CPU and 4GB RAM requirement, and read the documented top 10 server issue fixes before blaming the script.

Frequently asked questions

How do I install the Njord Menu Valheim server script?

Clone the repository into /opt with git clone, change into the cloned directory, make njordmenu.sh executable with sudo chmod +x njordmenu.sh, then run sudo ./njordmenu.sh and select option 3, Install Valheim Server or Add another Valheim Instance. The readme asks you to run it as root or as a real user with sudo, and not to use sudo -u.

What does the Valheim server installer ask me during setup?

It asks for a password for a newly created non root local Steam account to run the server, the public display name for your Valheim server, your local world name which becomes the map data file name, and the password required for players to connect.

What are the minimum server requirements for Valheim?

The readme states 2 CPU and 4GB RAM as the minimal requirements, and says you might get away with less but that it is a dice roll. It also warns that the need grows as the world is explored and built, because the world database grows as you play.

Does this script support multiple worlds and mods?

Yes. The project description lists multi world, multi lang, ValheimPlus and Bepinex among its features, and the install option is phrased as Install Valheim Server or Add another Valheim Instance, so the same flow adds further instances. The lang directory in the repository holds the translations.

Is the web GUI in this project stable?

No. The readme says the BETA branch has the web GUI being worked on, and that you should only use the BETA branch if you know what you are doing. The stable line is the 5.0 Odin release, updated for Valheim 1.0.

What licence is the Dedicated Valheim Server Script released under?

AGPL-3.0. The repository is not archived, the last push was on 2026-10-19, and the recent releases are 5.0-Odin on 2026-09-21, 4.0-Thor on 2024-05-26 and 3.5-lokis-dance on 2023-04-24.

Official sources

  1. Issues
  2. License: AGPL-3.0
  3. Nimdy/Dedicated_Valheim_Server_Script on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/nimdy-dedicated-valheim-server-script.svg)](https://hysenlabs.com/projects/nimdy-dedicated-valheim-server-script)

Was this useful?