Update commenting format in docker-compose file and improve README instructions

This revision cleans up the commenting and syntax layout of the docker-compose file enhancing its readability. The build and setup instructions in the README have been delineated more clearly, contributing to increased user-friendliness and ease of use.
This commit is contained in:
norimicry 2024-03-30 11:21:47 -04:00
parent 594a355fc0
commit 97bb66912c
2 changed files with 64 additions and 62 deletions

View File

@ -4,13 +4,21 @@ This project aims to autostart a Stardew Valley Multiplayer Server as easy as po
## Notes ## Notes
- Updating to most recent version requires a rebuild: `docker-compose build --no-cache` - Updating to most recent version requires a rebuild: `git pull` and `docker-compose build --no-cache`
- Although I'm trying to put out updates, I don't have the time for testing thoroughly, so if you find issues, including - Although I'm trying to put out updates, I don't have the time for testing thoroughly, so if you find issues, including
game updates, please put in an issue request and I will try to help. game updates, please put in an issue request and I will try to help.
- Thanks printfuck for the base code and baolatui for helping with hosting files. - Thanks printfuck for the base code and baolatui for helping with hosting files.
## Setup ## Setup
### Docker-Compose
```
git clone https://github.com/norimicry/stardew-multiplayer-docker.git
docker-compose up
```
### Configuration ### Configuration
Edit the docker-compose.yml with your desired configuration settings. Setting values are quite descriptive as to what Edit the docker-compose.yml with your desired configuration settings. Setting values are quite descriptive as to what
@ -18,13 +26,13 @@ they set.
``` ```
environment: environment:
## VNC # VNC
- VNC_PASSWORD=insecure - VNC_PASSWORD=insecure
- DISPLAY_HEIGHT=900 - DISPLAY_HEIGHT=900
- DISPLAY_WIDTH=1200 - DISPLAY_WIDTH=1200
## Always On Server mod # Always On Server mod
# Removing this will probably defeat the point of ever using this? ## Removing this will probably defeat the point of ever using this?
- ENABLE_ALWAYSONSERVER_MOD=${ENABLE_ALWAYSONSERVER_MOD-true} - ENABLE_ALWAYSONSERVER_MOD=${ENABLE_ALWAYSONSERVER_MOD-true}
- ALWAYS_ON_SERVER_HOTKEY=${ALWAYS_ON_SERVER_HOTKEY-F9} - ALWAYS_ON_SERVER_HOTKEY=${ALWAYS_ON_SERVER_HOTKEY-F9}
- ALWAYS_ON_SERVER_PROFIT_MARGIN=${ALWAYS_ON_SERVER_PROFIT_MARGIN-100} - ALWAYS_ON_SERVER_PROFIT_MARGIN=${ALWAYS_ON_SERVER_PROFIT_MARGIN-100}
@ -56,35 +64,35 @@ environment:
- ALWAYS_ON_SERVER_DANCE_OF_JELLIES_TIMEOUT=${ALWAYS_ON_SERVER_DANCE_OF_JELLIES_TIMEOUT-120} - ALWAYS_ON_SERVER_DANCE_OF_JELLIES_TIMEOUT=${ALWAYS_ON_SERVER_DANCE_OF_JELLIES_TIMEOUT-120}
- ALWAYS_ON_SERVER_FESTIVAL_OF_ICE_TIMEOUT=${ALWAYS_ON_SERVER_FESTIVAL_OF_ICE_TIMEOUT-120 } - ALWAYS_ON_SERVER_FESTIVAL_OF_ICE_TIMEOUT=${ALWAYS_ON_SERVER_FESTIVAL_OF_ICE_TIMEOUT-120 }
## Auto Load Game mod # Auto Load Game mod
# Removing this will mean you need to VNC in to manually start the game each boot ## Removing this will mean you need to VNC in to manually start the game each boot
- ENABLE_AUTOLOADGAME_MOD=${ENABLE_AUTOLOADGAME-null} - ENABLE_AUTOLOADGAME_MOD=${ENABLE_AUTOLOADGAME-null}
- AUTO_LOAD_GAME_LAST_FILE_LOADED=${AUTO_LOAD_GAME_LAST_FILE_LOADED-null} - AUTO_LOAD_GAME_LAST_FILE_LOADED=${AUTO_LOAD_GAME_LAST_FILE_LOADED-null}
- AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE=${AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE-true} - AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE=${AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE-true}
- AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER=${AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER-true} - AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER=${AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER-true}
## Save Backup mod # Save Backup mod
# Disabling this will stop saves being backed up ## Disabling this will stop saves being backed up
- ENABLE_SAVEBACKUP_MOD=${ENABLE_SAVEBACKUP_MOD-true} - ENABLE_SAVEBACKUP_MOD=${ENABLE_SAVEBACKUP_MOD-true}
## Chat Commands mod # Chat Commands mod
- ENABLE_CHATCOMMANDS_MOD=${ENABLE_CHATCOMMANDS_MOD-false} - ENABLE_CHATCOMMANDS_MOD=${ENABLE_CHATCOMMANDS_MOD-false}
## Console Commands mod # Console Commands mod
- ENABLE_CONSOLECOMMANDS_MOD=${ENABLE_CONSOLECOMMANDS_MOD-false} - ENABLE_CONSOLECOMMANDS_MOD=${ENABLE_CONSOLECOMMANDS_MOD-false}
## Time Speed mod # Time Speed mod
- ENABLE_TIMESPEED_MOD=${ENABLE_TIMESPEED_MOD-false} - ENABLE_TIMESPEED_MOD=${ENABLE_TIMESPEED_MOD-false}
# Days are only 20 hours long ## Days are only 20 hours long
# 7.0 = 14 mins per in game day (default) ## 7.0 = 14 mins per in game day (default)
# 10.0 = 20 mins ## 10.0 = 20 mins
# 15.0 = 30 mins ## 15.0 = 30 mins
# 20.0 = 40 mins ## 20.0 = 40 mins
# 30.0 = 1 hour ## 30.0 = 1 hour
# 120.0 = 4 hours ## 120.0 = 4 hours
# 300.0 = 10 hours ## 300.0 = 10 hours
# 600.0 = 20 hours (realtime) ## 600.0 = 20 hours (realtime)
- TIME_SPEED_DEFAULT_TICK_LENGTH=${TIME_SPEED_DEFAULT_TICK_LENGTH-7.0} - TIME_SPEED_DEFAULT_TICK_LENGTH=${TIME_SPEED_DEFAULT_TICK_LENGTH-7.0}
- TIME_SPEED_TICK_LENGTH_BY_LOCATION_INDOORS=${TIME_SPEED_TICK_LENGTH_BY_LOCATION_INDOORS-7.0} - TIME_SPEED_TICK_LENGTH_BY_LOCATION_INDOORS=${TIME_SPEED_TICK_LENGTH_BY_LOCATION_INDOORS-7.0}
@ -100,7 +108,7 @@ environment:
- TIME_SPEED_KEYS_DECREASE_TICK_INTERVAL=${TIME_SPEED_KEYS_DECREASE_TICK_INTERVAL-OemComma} - TIME_SPEED_KEYS_DECREASE_TICK_INTERVAL=${TIME_SPEED_KEYS_DECREASE_TICK_INTERVAL-OemComma}
- TIME_SPEED_KEYS_RELOAD_CONFIG=${TIME_SPEED_KEYS_RELOAD_CONFIG-B} - TIME_SPEED_KEYS_RELOAD_CONFIG=${TIME_SPEED_KEYS_RELOAD_CONFIG-B}
## Crops Anytime Anywhere mod # Crops Anytime Anywhere mod
- ENABLE_CROPSANYTIMEANYWHERE_MOD=${ENABLE_CROPSANYTIMEANYWHERE_MOD-false} - ENABLE_CROPSANYTIMEANYWHERE_MOD=${ENABLE_CROPSANYTIMEANYWHERE_MOD-false}
- CROPS_ANYTIME_ANYWHERE_ENABLE_IN_SEASONS_SPRING=${CROPS_ANYTIME_ANYWHERE_ENABLE_IN_SEASONS_SPRING-true} - CROPS_ANYTIME_ANYWHERE_ENABLE_IN_SEASONS_SPRING=${CROPS_ANYTIME_ANYWHERE_ENABLE_IN_SEASONS_SPRING-true}
@ -115,7 +123,7 @@ environment:
- CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_STONE=${CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_STONE-false} - CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_STONE=${CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_STONE-false}
- CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_OTHER=${CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_OTHER-false} - CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_OTHER=${CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_OTHER-false}
## Friends Forever mod # Friends Forever mod
- ENABLE_FRIENDSFOREVER_MOD=${ENABLE_FRIENDSFOREVER_MOD-false} - ENABLE_FRIENDSFOREVER_MOD=${ENABLE_FRIENDSFOREVER_MOD-false}
- FRIENDS_FOREVER_AFFECT_SPOUSE=${FRIENDS_FOREVER_AFFECT_SPOUSE-false} - FRIENDS_FOREVER_AFFECT_SPOUSE=${FRIENDS_FOREVER_AFFECT_SPOUSE-false}
@ -123,24 +131,16 @@ environment:
- FRIENDS_FOREVER_AFFECT_EVERYONE_ELSE=${FRIENDS_FOREVER_AFFECT_EVERYONE_ELSE-true} - FRIENDS_FOREVER_AFFECT_EVERYONE_ELSE=${FRIENDS_FOREVER_AFFECT_EVERYONE_ELSE-true}
- FRIENDS_FOREVER_AFFECT_ANIMALS=${FRIENDS_FOREVER_AFFECT_ANIMALS-true} - FRIENDS_FOREVER_AFFECT_ANIMALS=${FRIENDS_FOREVER_AFFECT_ANIMALS-true}
## No Fence Decay mod # No Fence Decay mod
- ENABLE_NOFENCEDECAY_MOD=${ENABLE_NOFENCEDECAY_MOD-false} - ENABLE_NOFENCEDECAY_MOD=${ENABLE_NOFENCEDECAY_MOD-false}
## Non-destructive NPCs mod # Non-destructive NPCs mod
- ENABLE_NONDESTRUCTIVENPCS_MOD=${ENABLE_NONDESTRUCTIVENPCS_MOD-false} - ENABLE_NONDESTRUCTIVENPCS_MOD=${ENABLE_NONDESTRUCTIVENPCS_MOD-false}
``` ```
### Docker-Compose
```
git clone https://github.com/norimicry/stardew-multiplayer-docker.git
docker-compose up
```
## Game Setup ## Game Setup
Intially, you have to create or load a game once via VNC or web interface. After that, the Autoload Mod jumps into the Initially, you have to create or load a game once via VNC or web interface. After that, the Autoload Mod jumps into the
previously loaded game save everytime you restart or rebuild the container. The AutoLoad Mod config file is by default previously loaded game save 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 game save, but you can also copy your existing game save to mounted as a volume, since it keeps the state of the ongoing game save, but you can also copy your existing game save to
the `Saves` volume and define the game save's name in the environment variables. Once started, press the Always On the `Saves` volume and define the game save's name in the environment variables. Once started, press the Always On
@ -154,9 +154,9 @@ can modify the VNC Port and IP address and Password in the `docker-compose.yml`
Localhost: Localhost:
``` ```
# Server is only reachable on localhost on port 2342... # Server is only reachable on localhost on port 5902...
ports: ports:
- 127.0.0.1:2342:5900 - 127.0.0.1:5902:5900
# ... with the password "insecure" # ... with the password "insecure"
environment: environment:
- VNCPASS=insecure - VNCPASS=insecure
@ -164,7 +164,7 @@ Localhost:
### Web Interface ### Web Interface
On port 5900 (mapped to 5902 by default) inside the container is a web interface. This is a bit easier and more On port 5800 (mapped to 5801 by default) 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 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 port to the outside world.

View File

@ -5,11 +5,13 @@ services:
build: docker build: docker
container_name: stardew container_name: stardew
environment: environment:
- "VNC_PASSWORD=insecure" # VNC
- "DISPLAY_HEIGHT=900" - VNC_PASSWORD=insecure
- "DISPLAY_WIDTH=1200" - DISPLAY_HEIGHT=900
## Always On Server mod - DISPLAY_WIDTH=1200
# Removing this will probably defeat the point of ever using this?
# Always On Server mod
## Removing this will probably defeat the point of ever using this?
- ENABLE_ALWAYSONSERVER_MOD=${ENABLE_ALWAYSONSERVER_MOD-true} - ENABLE_ALWAYSONSERVER_MOD=${ENABLE_ALWAYSONSERVER_MOD-true}
- ALWAYS_ON_SERVER_HOTKEY=${ALWAYS_ON_SERVER_HOTKEY-F9} - ALWAYS_ON_SERVER_HOTKEY=${ALWAYS_ON_SERVER_HOTKEY-F9}
- ALWAYS_ON_SERVER_PROFIT_MARGIN=${ALWAYS_ON_SERVER_PROFIT_MARGIN-100} - ALWAYS_ON_SERVER_PROFIT_MARGIN=${ALWAYS_ON_SERVER_PROFIT_MARGIN-100}
@ -41,35 +43,35 @@ services:
- ALWAYS_ON_SERVER_DANCE_OF_JELLIES_TIMEOUT=${ALWAYS_ON_SERVER_DANCE_OF_JELLIES_TIMEOUT-120} - ALWAYS_ON_SERVER_DANCE_OF_JELLIES_TIMEOUT=${ALWAYS_ON_SERVER_DANCE_OF_JELLIES_TIMEOUT-120}
- ALWAYS_ON_SERVER_FESTIVAL_OF_ICE_TIMEOUT=${ALWAYS_ON_SERVER_FESTIVAL_OF_ICE_TIMEOUT-120 } - ALWAYS_ON_SERVER_FESTIVAL_OF_ICE_TIMEOUT=${ALWAYS_ON_SERVER_FESTIVAL_OF_ICE_TIMEOUT-120 }
## Auto Load Game mod # Auto Load Game mod
# Removing this will mean you need to VNC in to manually start the game each boot ## Removing this will mean you need to VNC in to manually start the game each boot
- ENABLE_AUTOLOADGAME_MOD=${ENABLE_AUTOLOADGAME-true} - ENABLE_AUTOLOADGAME_MOD=${ENABLE_AUTOLOADGAME-null}
- AUTO_LOAD_GAME_LAST_FILE_LOADED=${AUTO_LOAD_GAME_LAST_FILE_LOADED-null} - AUTO_LOAD_GAME_LAST_FILE_LOADED=${AUTO_LOAD_GAME_LAST_FILE_LOADED-null}
- AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE=${AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE-true} - AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE=${AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE-true}
- AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER=${AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER-true} - AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER=${AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER-true}
## Save Backup mod # Save Backup mod
# Disabling this will stop saves being backed up ## Disabling this will stop saves being backed up
- ENABLE_SAVEBACKUP_MOD=${ENABLE_SAVEBACKUP_MOD-true} - ENABLE_SAVEBACKUP_MOD=${ENABLE_SAVEBACKUP_MOD-true}
## Chat Commands mod # Chat Commands mod
- ENABLE_CHATCOMMANDS_MOD=${ENABLE_CHATCOMMANDS_MOD-false} - ENABLE_CHATCOMMANDS_MOD=${ENABLE_CHATCOMMANDS_MOD-false}
## Console Commands mod # Console Commands mod
- ENABLE_CONSOLECOMMANDS_MOD=${ENABLE_CONSOLECOMMANDS_MOD-false} - ENABLE_CONSOLECOMMANDS_MOD=${ENABLE_CONSOLECOMMANDS_MOD-false}
## Time Speed mod # Time Speed mod
- ENABLE_TIMESPEED_MOD=${ENABLE_TIMESPEED_MOD-false} - ENABLE_TIMESPEED_MOD=${ENABLE_TIMESPEED_MOD-false}
# Days are only 20 hours long ## Days are only 20 hours long
# 7.0 = 14 mins per in game day (default) ## 7.0 = 14 mins per in game day (default)
# 10.0 = 20 mins ## 10.0 = 20 mins
# 15.0 = 30 mins ## 15.0 = 30 mins
# 20.0 = 40 mins ## 20.0 = 40 mins
# 30.0 = 1 hour ## 30.0 = 1 hour
# 120.0 = 4 hours ## 120.0 = 4 hours
# 300.0 = 10 hours ## 300.0 = 10 hours
# 600.0 = 20 hours (realtime) ## 600.0 = 20 hours (realtime)
- TIME_SPEED_DEFAULT_TICK_LENGTH=${TIME_SPEED_DEFAULT_TICK_LENGTH-7.0} - TIME_SPEED_DEFAULT_TICK_LENGTH=${TIME_SPEED_DEFAULT_TICK_LENGTH-7.0}
- TIME_SPEED_TICK_LENGTH_BY_LOCATION_INDOORS=${TIME_SPEED_TICK_LENGTH_BY_LOCATION_INDOORS-7.0} - TIME_SPEED_TICK_LENGTH_BY_LOCATION_INDOORS=${TIME_SPEED_TICK_LENGTH_BY_LOCATION_INDOORS-7.0}
@ -85,7 +87,7 @@ services:
- TIME_SPEED_KEYS_DECREASE_TICK_INTERVAL=${TIME_SPEED_KEYS_DECREASE_TICK_INTERVAL-OemComma} - TIME_SPEED_KEYS_DECREASE_TICK_INTERVAL=${TIME_SPEED_KEYS_DECREASE_TICK_INTERVAL-OemComma}
- TIME_SPEED_KEYS_RELOAD_CONFIG=${TIME_SPEED_KEYS_RELOAD_CONFIG-B} - TIME_SPEED_KEYS_RELOAD_CONFIG=${TIME_SPEED_KEYS_RELOAD_CONFIG-B}
## Crops Anytime Anywhere mod # Crops Anytime Anywhere mod
- ENABLE_CROPSANYTIMEANYWHERE_MOD=${ENABLE_CROPSANYTIMEANYWHERE_MOD-false} - ENABLE_CROPSANYTIMEANYWHERE_MOD=${ENABLE_CROPSANYTIMEANYWHERE_MOD-false}
- CROPS_ANYTIME_ANYWHERE_ENABLE_IN_SEASONS_SPRING=${CROPS_ANYTIME_ANYWHERE_ENABLE_IN_SEASONS_SPRING-true} - CROPS_ANYTIME_ANYWHERE_ENABLE_IN_SEASONS_SPRING=${CROPS_ANYTIME_ANYWHERE_ENABLE_IN_SEASONS_SPRING-true}
@ -100,7 +102,7 @@ services:
- CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_STONE=${CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_STONE-false} - CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_STONE=${CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_STONE-false}
- CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_OTHER=${CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_OTHER-false} - CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_OTHER=${CROPS_ANYTIME_ANYWHERE_FORCE_TILLABLE_OTHER-false}
## Friends Forever mod # Friends Forever mod
- ENABLE_FRIENDSFOREVER_MOD=${ENABLE_FRIENDSFOREVER_MOD-false} - ENABLE_FRIENDSFOREVER_MOD=${ENABLE_FRIENDSFOREVER_MOD-false}
- FRIENDS_FOREVER_AFFECT_SPOUSE=${FRIENDS_FOREVER_AFFECT_SPOUSE-false} - FRIENDS_FOREVER_AFFECT_SPOUSE=${FRIENDS_FOREVER_AFFECT_SPOUSE-false}
@ -108,10 +110,10 @@ services:
- FRIENDS_FOREVER_AFFECT_EVERYONE_ELSE=${FRIENDS_FOREVER_AFFECT_EVERYONE_ELSE-true} - FRIENDS_FOREVER_AFFECT_EVERYONE_ELSE=${FRIENDS_FOREVER_AFFECT_EVERYONE_ELSE-true}
- FRIENDS_FOREVER_AFFECT_ANIMALS=${FRIENDS_FOREVER_AFFECT_ANIMALS-true} - FRIENDS_FOREVER_AFFECT_ANIMALS=${FRIENDS_FOREVER_AFFECT_ANIMALS-true}
## No Fence Decay mod # No Fence Decay mod
- ENABLE_NOFENCEDECAY_MOD=${ENABLE_NOFENCEDECAY_MOD-false} - ENABLE_NOFENCEDECAY_MOD=${ENABLE_NOFENCEDECAY_MOD-false}
## Non-destructive NPCs mod # Non-destructive NPCs mod
- ENABLE_NONDESTRUCTIVENPCS_MOD=${ENABLE_NONDESTRUCTIVENPCS_MOD-false} - ENABLE_NONDESTRUCTIVENPCS_MOD=${ENABLE_NONDESTRUCTIVENPCS_MOD-false}
ports: ports: