mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-15 11:39:18 +00:00
* Rage code * Hrrm * Fix windows newlines * Utter insanity * This won't work as a post compile step * Why didn't I do this before? * Shouldn't be necessary * This could be it * Just move it here * Fixes * Readme updates * Readme * REAAAAD * Use envars * More env vars * typo * Fixes * REAAAD * Fix script * The missing link
75 lines
4.9 KiB
Markdown
75 lines
4.9 KiB
Markdown
This is @Cyberboss rage code
|
|
|
|
The goal is a one stop solution for hosting /tg/station on linux via Docker. Will not work with Docker on Windows.
|
|
|
|
This requires Docker with the `docker-compose` command to be installed on your system. See ubuntu instructions [here](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository). If you fail to find the `docker-ce` package refer to [this StackOverflow answer](https://unix.stackexchange.com/a/363058).
|
|
|
|
Some basic configuration options in `docker-compose.yml` before starting:
|
|
- Change TGS_ADMIN_CKEY to your ckey so you may have initial control over the server.
|
|
- Change TGS_SCHEMA_MAJOR_VERSION to your repo's latest schema major version.
|
|
- Change TGS_SCHEMA_MINOR_VERSION to your repo's latest schema minor version.
|
|
- If you want to change the MariaDB password, there are three locations in the file it must be changed from its default value of `ChangeThisInBothMariaDBAndTgsConnectionString`.
|
|
- Change TGS_BYOND to set the initial BYOND version.
|
|
- Ports are mapped in the form `<external>:<internal>` NEVER change the internal port. If you want to prevent a service from being exposed, delete/comment out the entire line.
|
|
- The first (3306) is the exposed mariadb port. Do not expose this over the internet without changing the password. In general it's a bad idea.
|
|
- The second (1337) is the exposed DreamDaemon port
|
|
- The third (5000) is the exposed TGS API port. Do not expose this over the internet. Setup an HTTPS reverse proxy instead.
|
|
- Change TGS_REPO to set the repository used. Note, this must be a /tg/ derivative from at least 2019 that implements the latest TGS [DreamMaker API](https://github.com/tgstation/tgstation-server#integrating). Repositories that follow tgstation/tgstation will have this automatically. It also must contain a prefixed SQL schema setup file.
|
|
|
|
To launch, change to this directory and run `docker-compose up`. The initial setup will take a long time. If that fails, Ctrl+C out, run `docker-compose down`, remove `./TGS_Instances` and `./Database`, and try again. Once setup is complete, you can either leave the terminal running, or `Ctrl+C` out (this will stop DreamDaemon) and run `docker-compose -d` to run it in the background.
|
|
|
|
What it does:
|
|
|
|
- Starts mariadb with the data files in `./Database` on port 3306
|
|
- Installs and starts Tgs4 (using latest stable docker tag, no HTTPS) on port 5000. Configuration in `./TGS_Config`, logs in `./TGS_Logs`.
|
|
- Configures a TGS instance for tgstation in `./TGS_Instances` (SetupProgram)
|
|
- The instance is configured to autostart
|
|
- Repo is cloned from the origin specified in the `docker-compose.yml`
|
|
- BYOND version is set to the latest one specified in the `docker-compose.yml`
|
|
- A script will be run to setup dependencies. This does the following every time the game is built:
|
|
- Reads dependency information from `dependencies.sh` in the root of the repository
|
|
- Installs the following necessary packages into the TGS image
|
|
- Rust/cargo
|
|
- git
|
|
- cmake
|
|
- grep
|
|
- g++-6
|
|
- g++-6-multilib
|
|
- mysql-client
|
|
- libmariadb-dev:i386
|
|
- libssl-dev:i386
|
|
- Builds rust-g in `./TGS_Instances/main/Configuration/EventScripts/rust-g` and copies the artifact to the game directory.
|
|
- Builds BSQL in `./TGS_Instances/main/Configuration/EventScripts/BSQL` and copies the artifact to the game directory.
|
|
- Sets up `./TGS_Instances/main/Configuration/GameStaticFiles/config` with the initial repository config.
|
|
- Sets up `./TGS_Instances/main/Configuration/GameStaticFiles/data`.
|
|
- If it doesn't exist, create the `ss13_db` database on the mariadb server and populate it with the repository's.
|
|
- Start DreamDaemon and configure it to autostart and keep it running via TGS.
|
|
- Updates will be pulled from the default repository branch and deployed every hour
|
|
|
|
What it DOESN'T do:
|
|
|
|
- Configure sane MariaDB security
|
|
- TGS Test merging
|
|
- TGS Chat bots
|
|
- Handle updating BYOND versions
|
|
- Handle updating the database schema
|
|
- Manage TGS users, permissions, or change the default admin password
|
|
- Provide HTTPS for TGS
|
|
- Expose the DB to the internet UNLESS you have port 3306 forwarded for some ungodly reason
|
|
- Port forward or setup firewall rules for DreamDaemon or TGS
|
|
- Notify you of TGS errors past initial setup
|
|
- Keep MariaDB logs
|
|
- Backup ANYTHING
|
|
- Pretend like it's a long term solution
|
|
|
|
This is enough to host a production level server !!!IN THEORY!!! This script guarantees nothing and comes with no warranty
|
|
|
|
You can change the TGS_BYOND and TGS_REPO variables when setting up the first time. But further configuration must be done with TGS itself.
|
|
|
|
You can connect to TGS with [Tgstation.Server.ControlPanel](https://github.com/tgstation/Tgstation.Server.ControlPanel/releases) (Binaries provided for windows, must be compiled manually on Linux).
|
|
- Connect to `http://localhost:5000`. Be sure to `Use Plain HTTP` and `Default Credentials`
|
|
|
|
You should learn how to manually setup TGS if you truly want control over what your server does.
|
|
|
|
You have been warned.
|