Skip to content
 
 

Latest commit

 

History

566 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JunimoServer

Latest Release Preview Build Static Badge CodeQL E2E Tests Discord

JunimoServer makes Stardew Valley multiplayer hosting simple and flexible. Host your farm anytime, anywhere — on your local machine, a VPS, or a dedicated server.

This open-source project enables 24/7 multiplayer farms without needing to keep the game running on your machine. Players can connect at any time without requiring you to be online. With customizable settings, automated backups, and support for larger farms, JunimoServer makes multiplayer management easier than ever.

Table of Contents

Features

JunimoServer gives you everything you need to host Stardew Valley:

  • Always-On Hosting: Keep your farm running 24/7 without needing to leave the game open.
  • Easy Management: Control your server through a simple, web-based interface with admin capabilities.
  • Persistent Progress: Protect your crops and ensure your farm continues to thrive, even when no one’s online.
  • Automatic Backups: Regularly save your farm so you can easily restore it if something goes wrong.
  • Fully Customizable: Change game modes, tweak settings, and optimize performance to fit your needs.
  • Mod-Friendly: Supports SMAPI mods to enhance your Stardew Valley experience with customizations and extra content.

Quick start

Prerequisites

  • Docker: Install Docker Desktop (Windows/Mac) or Docker Engine (Linux)
  • Steam account: A Steam account that owns Stardew Valley (required to download game files)

Getting started

  1. Create Configuration:

    Create a new server folder with the config files:

    curl -fsSL https://docs.junimoserver.com/install.sh | bash
    cd junimoserver

    On Windows: powershell -c "irm https://docs.junimoserver.com/install.ps1 | iex", then cd junimoserver.

    Then edit .env and configure your server. Here is a minimal example:

    # Steam Account Details (required for downloading the game server)
    STEAM_USERNAME=""
    STEAM_PASSWORD=""
    
    # VNC Server (for web-based administration access)
    VNC_PASSWORD=""
    
    # HTTP API key (the server won't start until VNC_PASSWORD and API_KEY are set)
    API_KEY=""
  2. First-Time Setup:

    Run the interactive setup to authenticate with Steam:

    docker compose run --rm -it steam-auth setup

    This will prompt you for Steam Guard authentication if enabled on your account, and downloads the game files. Once Steam can log in without prompts, a fresh server downloads the game files itself on first start.

  3. Start the Server:

    To start the server as a background process, run docker compose up -d.

    To see logs, run docker compose logs -f.

  4. Stop the Server:

    To save and stop the server, run docker compose down.

    Your save files and Steam session are stored in Docker volumes (saves and steam-session) and persist across restarts.

Updating to a new version

When a new version is released, run:

curl -fsSL https://docs.junimoserver.com/update.sh | bash

On Windows: powershell -c "irm https://docs.junimoserver.com/update.ps1 | iex"

This pulls the new image, installs the matching docker-compose.yml, and restarts. Your .env, saves, and settings are untouched. Keep your own compose changes in a docker-compose.override.yml (see Upgrading).

Using preview releases

Note: JunimoServer is under heavy development. If the latest stable release isn't working for you, try the preview release — it often contains fixes that haven't been officially released yet. As the project matures, stable releases will become more reliable.

Preview builds are published automatically with every code change. To use a preview release, add this to your .env file:

# Use the latest preview build
IMAGE_VERSION=preview

To switch back to stable releases, remove the line or set it to latest:

IMAGE_VERSION=latest

After changing the version, run the update command above — it pulls the matching image and docker-compose.yml for whichever IMAGE_VERSION you set (stable, preview, or pinned).

You can also pin to a specific version (e.g., IMAGE_VERSION=1.0.0 or IMAGE_VERSION=1.1.0-preview.3). Check Docker Hub for available tags.

Documentation

Explore the full documentation to get started. Here's what you'll find:

  • Getting Started: Step-by-step instructions on setting up and managing your server.
  • Server Guide: Learn how to use and manage your server.
  • Community: Find out how to get involved and get help.

Support

JunimoServer is free and open-source, maintained in spare time. If it keeps your farm running and you'd like to give something back, donations help cover server/hosting costs and development time — entirely optional, always appreciated. 🌱

  • GitHub Sponsors — monthly or one-time, 100% goes to development.
  • Ko-fi — buy the project a coffee (one-time, PayPal or card).

Not in a position to donate? Starring the repo, reporting bugs, improving the docs, or helping others on Discord helps just as much.

About

A Linux Docker image to run a headless dedicated multiplayer server for Stardew Valley.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages