selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

JunimoServer logo

Self-host JunimoServer

sdvd-server-v1.4.0

Docker-based Stardew Valley server with SMAPI mod support

BetaOpen SourceOther
Updated4 days ago
LanguageC#
Setup difficultyModerate
Stars
375
Ports
24642 (UDP game port for multiplayer connections), 27015 (UDP Steam query port), 5800 (TCP VNC web interface), 8080 (TCP HTTP REST API)
Docker
sdvd/server
Install with Docker Compose
Password protection lobby screenLobby interface screenshot

What is JunimoServer?

JunimoServer runs a Stardew Valley dedicated server in Docker so the farm stays online 24/7 without anyone keeping the game client open. It works as a SMAPI mod and adds automatic daily backups, cross-platform play between Steam and GOG users, password-protected lobbies, cabin management, and crop preservation. Admins configure it through environment variables and a JSON settings file, and can use a VNC web interface or a REST API for automation. An optional Discord bot relays chat and shows server status. A Steam account that owns the game is required to download the server files.

Should you self-host JunimoServer?

JunimoServer scores 50/100 on selfhost.directory (how scoring works) and ranks #30 of 62 in Game Servers. It has 375 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Other-licensed and written mostly in C#.

Its closest alternative on selfhost.directory is minecraft (78/100, 14 491 stars). It scores higher overall, so compare the two before you pick. See JunimoServer vs minecraft side by side.

Features

  • Always-on hosting
  • Automatic Backups
  • Cabin management
  • Chest protection
  • Crop preservation
  • Cross-platform multiplayer
  • Discord Bot Integration
  • Password Protection
  • REST API
  • Server mechanics
  • SMAPI mod support
  • Web-based administration (VNC)

JunimoServer README

How to install JunimoServer

Install JunimoServer with Docker Compose

Docker Desktop (Windows/Mac) or Docker Engine (Linux); Steam account owning Stardew Valley
Environment variables
STEAM_USERNAME, STEAM_PASSWORD, VNC_PASSWORD, API_KEY, GAME_PORT, QUERY_PORT, VNC_PORT, API_PORT, SERVER_PASSWORD, DISCORD_BOT_TOKEN, etc.

mkdir junimoserver && cd junimoserver curl -O https://raw.githubusercontent.com/stardew-valley-dedicated-server/server/master/docker-compose.yml curl -O https://raw.githubusercontent.com/stardew-valley-dedicated-server/server/master/.env.example mv .env.example .env

Edit .env with your configuration

Then run:

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

Requires Docker and a Steam account that owns Stardew Valley

How to configure JunimoServer

  • ALLOW_INSECURE_SETUPfalseAllow startup when VNC_PASSWORD or API_KEY is empty

    Allow startup when VNC_PASSWORD or API_KEY is empty

    values: true, false

  • API_ENABLEDtrueEnable HTTP API for external tools

    Enable HTTP API for external tools

  • API_KEY(empty = disabled)API key for authenticating write requests

    API key for authenticating write requests

  • API_PORT8080Port for the HTTP REST API

    Port for the HTTP REST API

  • AUTH_TIMEOUT_SECONDS120Seconds before unauthenticated players are kicked

    Seconds before unauthenticated players are kicked

  • AUTO_SLEEP_GRACE_SECONDS300Wall-clock seconds an empty server waits past 1:00 AM in-game before the host sleeps and closes the day

    Wall-clock seconds an empty server waits past 1:00 AM in-game before the host sleeps and closes the day

  • COMPOSE_PROFILESproxy starts the bundled HTTPS proxy; leave unset to use your own

    proxy starts the bundled HTTPS proxy; leave unset to use your own

  • DISCORD_BOT_TOKENDiscord bot token

    Discord bot token

  • DISCORD_CHAT_CHANNEL_IDChannel ID for chat relay

    Channel ID for chat relay

  • ENABLE_MOD_INCOMPATIBLE_OPTIMIZATIONStrueEnable performance optimizations that may break some mods

    Enable performance optimizations that may break some mods

    values: true, false

  • FORCE_NEW_DEBUG_GAMEfalseForce creation of a new debug game on startup

    Force creation of a new debug game on startup

    values: true, false

  • GAME_PORT24642UDP port for multiplayer connections

    UDP port for multiplayer connections

  • GROUP_ID1000Group ID (GID) of that user

    Group ID (GID) of that user

  • HEALTH_CHECK_SECONDS300Interval for internal health checks

    Interval for internal health checks

  • MAX_LOGIN_ATTEMPTS3Failed login attempts before kick

    Failed login attempts before kick

  • PROXY_ROUTINGpathpath (https://HOST/NAME/) or subdomain (https://NAME.HOST/)

    path (https://HOST/NAME/) or subdomain (https://NAME.HOST/)

    values: path, subdomain

  • PUBLIC_HOSTPublic IP or domain of the HTTPS proxy

    Public IP or domain of the HTTPS proxy

  • QUERY_PORT27015UDP port for Steam query protocol

    UDP port for Steam query protocol

  • SERVER_FPS0Render rate: 0 = rendering disabled, N > 0 = render at N fps

    Render rate: 0 = rendering disabled, N > 0 = render at N fps

  • SERVER_NAME(farm name)Display name shown as the Discord bot nickname and on status widgets

    Display name shown as the Discord bot nickname and on status widgets

  • SERVER_PASSWORD(empty = disabled)Server password for player authentication

    Server password for player authentication

  • SERVER_URL_NAMEserverThis server's name in its URL behind the proxy

    This server's name in its URL behind the proxy

  • STATUS_DASHBOARD_CHANNEL_IDChannel ID for the status dashboard

    Channel ID for the status dashboard

  • STATUS_DASHBOARD_REFRESH_RATE30Dashboard update interval in seconds

    Dashboard update interval in seconds

  • STEAM_PASSWORDSteam account password (required)

    Steam account password (required)

  • STEAM_REFRESH_TOKENPre-existing refresh token (for CI/automation)

    Pre-existing refresh token (for CI/automation)

  • STEAM_USERNAMESteam account username (required)

    Steam account username (required)

  • USER_ID1000User ID (UID) the game runs as inside the container

    User ID (UID) the game runs as inside the container

  • VERBOSE_LOGGINGOverride verbose logging setting

    Override verbose logging setting

  • VNC_PASSWORDPassword for VNC web interface (required)

    Password for VNC web interface (required)

  • VNC_PORT5800TCP port for VNC web interface

    TCP port for VNC web interface

More in Multiplayer

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…