See docker-compose for example of precompiled image. just run docker-compose up -d and you'll be up and running!
This project aims to autostart a Stardew Valley Expanded Multiplayer Server as easy as possible.
Because the SVE base mod is extremely large (about 500M), you can download it through this Google Drive folder, or you can install it manually. An auto installation script will be provided soon.
Extract the mods to docker/mods
so that the directory listing looks like:
$ ls ./docker/mods -1
'Always On Server'
AutoLoadGame
ChatCommands
CropsAnytimeAnywhere
FriendsForever
"Grandpa's Farm"
'Immersive Farm 2 Remastered'
NoFenceDecay
NonDestructiveNPCs
RemoteControl
SVE
TimeSpeed
UnlimitedPlayers
To enable different farm types that are supported by Stardew Valley Expanded,
edit your docker-compose.yml
and enable Grandpa's Farm or Immersive Farm 2.
Do not enable both of them at once.
- Updating to most recent version requires a rebuild:
docker-compose build --no-cache
- Although I'm trying to put out updates, I don't have the time for testing, so I recommend forking and fixing things on your own.
- Ansible and Terraform will not be supported anymore
- Thanks to the brilliant configuration script from Novex and the genius baseimage from jlesage this now looks a bit better
git clone https://github.com/humanoidsandvichdispenser/sve-multiplayer-docker
cd sve-multiplayer-docker
docker-compose up
Intially you have to create or load a game once via VNC or Web interface. After
that the Autoload Mod jumps into the previously loaded savegame everytime you
restart or rebuild the container. The AutoLoad Mod config file is by default
mounted as a volume, since it keeps the state of the ongoing SaveGame, but you
can also copy your existing SaveGame to the Saves
volume and define the
SaveGame's name in the environment variables.
Place all of your mods in the docker/mods
directory, rebuild the
container, then edit your docker-compose.yml
.
Your compose file should set environment variables for each mod you want enabled.
The name of the environment variable is the mod name in the docker/mods
directory, allcaps with no spaces. For example, to enable docker/mods/Tractor Mod
, you must add the environment variable ENABLE_TRACTORMOD=true
.
If the name of the mod contains characters that can not be used for environment variables (slashes, brackets, etc.), you must either rename it for move it to a nested directory that has a valid name.
Use a vnc client like TightVNC
on Windows or plain vncviewer
on any Linux
distribution to connect to the server. You can modify the VNC Port and IP
address and Password in the docker-compose.yml
file like this:
Localhost:
# Server is only reachable on localhost on port 2342...
ports:
- 127.0.0.1:2342:5900
# ... with the password "insecure"
environment:
- VNCPASS=insecure
On port 5800 inside the container is a web interface. This is a bit easier and more accessible than just the VNC interface. Although you will be asked for the vnc password, I wouldn't recommend exposing the port to the outside world.
The game will be pulled from my (printfuck's) servers (I'll assume you already
own the game - since you're looking for a multiplayer - so please don't rip it
from there) and the modloader (SMAPI) will be pulled from Github when building
the container. You can control the mods's settings with environment variables
in the docker-compose.yml
file.
- AutoLoadGame
- Always On
- Unlimited Players
- some more ...
Usually you should be able to ignore any message there. If the game doesn't start or any errors appear, you should look for messages like "cannot open display", which would most likely indicate permission errors.
Access the game via VNC to initially load or start a pregenerated savegame. You can control the Server from there or edit the config.json files in the configs folder.
I'd recomend a VPS/Machine with at least four logical CPUs and 4GB Ram, otherwise there will be horrible lags. The minimum configuration I'd consider playable with two to four players would be two logical CPUs and 1GB of Ram.