LandSandBoat Server - Docker
Go to file
Corey 474f67f050
Containerize server
- Multi-stage build to reduce container sizes.
- Separate services for each executable.
- Separate database service with volume and secure password generation.
- Common configs for LSB services defined in extension field with YAML anchor.
- dbtool service that waits on the database and runs before all other LSB services, making sure the database is up to date.
- Bind mounting for live edits.
- HTTP API server enabled.
2025-04-07 02:53:44 -04:00
server@ce0aad91b7 Initial commit 2025-02-24 23:30:31 -05:00
.dockerignore Containerize server 2025-04-07 02:53:44 -04:00
.env Containerize server 2025-04-07 02:53:44 -04:00
.gitmodules Initial commit 2025-02-24 23:30:31 -05:00
Dockerfile Containerize server 2025-04-07 02:53:44 -04:00
LICENSE Containerize server 2025-04-07 02:53:44 -04:00
README.md Containerize server 2025-04-07 02:53:44 -04:00
docker-compose.yml Containerize server 2025-04-07 02:53:44 -04:00
entrypoint.sh Containerize server 2025-04-07 02:53:44 -04:00
lsd_logo.png Containerize server 2025-04-07 02:53:44 -04:00
lsd_logo_circle.png Containerize server 2025-04-07 02:53:44 -04:00
mariadb-entrypoint.sh Containerize server 2025-04-07 02:53:44 -04:00

README.md

LSB Server - Docker

Containerized version of LandSandBoat server emulator.

Pre-configured build and runtime environments for a fast and easy install. Supports live editing on the host machine for a seamless experience.

Usage

docker compose up --build --detach

That's it! All the setup is handled for you. Check out the official LSB documentation for more information. Some adjustments will need to be made while working with Docker. LSD specific information will be added here over time.


  • docker compose stop / docker compose start

    • Use these to stop/start the server when rebuilding isn't necessary.
  • docker compose build

    • Builds the image. With caching, this basically means rebuild the executables.
  • docker compose down

    • Shuts down and deletes the containers.

Notes

  • If using WSL with Windows, make sure the project is stored in the WSL file system for best performance.
  • To facilitate automatically generating secure database passwords and simplify the setup process, the .env file is intentionally empty and untracked by Git.
    • Optional - You can manually populate this before building the containers with these variables:
      MARIADB_DATABASE=
      MARIADB_USER=
      MARIADB_PASSWORD=
      MARIADB_ROOT_PASSWORD=
      XI_NETWORK_ENABLE_HTTP=
      
      Otherwise, the default user is xiadmin, the default database is xidb, and both passwords are randomly generated.
    • The LSB HTTP API is enabled by default and can be accessed at http://localhost:8088/.
      • This can be disabled by setting XI_NETWORK_ENABLE_HTTP=0
    • Because environment variables are used, the server settings SQL_LOGIN, SQL_PASSWORD, SQL_DATABASE, and ENABLE_HTTP (located in network.lua) are not used.
  • Because LSB uses Git during the build and update process, changes to the Git metadata will trigger an image rebuild, but with caching this shouldn't be significant.

DO NOT OPEN ISSUES/DISCUSSIONS RELATED TO DOCKER ON THE LSB GITHUB!