Hi all
To briefly state the goal behind this project, it's simply to preserve dev ghostline's Bioserver1 & 2 projects, as neither of these are available on github and both require a bit of work to get up and running.
DO IT BEFORE RUNNING GAME SERVER
cp .env.example .env
- set your server IP in .env (SERVER_IP=)
- set your router IP or secondary dns (ROUTER_IP=)
- build compose files
docker compose -f docker-compose.infra.yaml build
docker compose -f docker-compose.bio1.yaml build
docker compose -f docker-compose.bio2.yaml build
- disable systemd-resovled
make disable-systemd-resolved
- run infrastracture
docker compose -f docker-compose.infra.yaml up -d
- run game server
Just rundocker compose -f docker-compose.bio1.yaml up -d
for outbreak 1 anddocker compose -f docker-compose.bio2.yaml up -d
for outbreak 2
You can run them both!
docker compose -f docker-compose.bio1.yaml -f docker-compose.bio2.yaml up -d
DO NOT FORGET TO ENABLE systemd-resolved
Simply run make enable-systemd-resolved
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install ca-certificates curl gnupg lsb-release make git-all -y
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
git clone https://github.com/yabab/bioserver-docker.git
cd bioserver-docker
If necessary, then checkout the correct branch; like 'git checkout publicInstance'
cp .env.example .env
nano .env (Add Public IPv4 address to SERVER_IP and ROUTER_IP)
sudo docker compose -f docker-compose.infra.yaml -f docker-compose.bio1.yaml -f docker-compose.bio2.yaml build
sudo docker pull mysql:5.7
make disable-systemd-resolved
sudo docker compose -f docker-compose.infra.yaml up -d
If some process is bound to a necessary port, use 'sudo ss -tulpn | grep ":(port)"' to discover the offending processes and use 'sudo kill PID' to get rid of them.
sudo docker compose -f docker-compose.bio1.yaml up -d
sudo docker compose -f docker-compose.bio2.yaml up -d
sudo docker compose -f docker-compose.bio2.yaml down -v
sudo docker compose -f docker-compose.bio1.yaml down -v
sudo docker compose -f docker-compose.infra.yaml down -v
make enable-systemd-resolved
Don't forget to enable online traffic from all sources to the instance. In case of doubt, enable all traffic to all protocols. If you're doing this, please use an SSH key because the instance will be exposed.
In rare cases, the server may have trouble connecting to the MySQL database; the game gets stuck at 'Connecting...' and times out. In those cases, tear down the server and infrastructure, delete the dbdata folder (and everything in it) and recreate dbdata empty. Restart everything.
I have also experienced 'Network Error due to Instability' when starting a new scenario after playing through a scenario with friends, only solution to that is restarting the server and infrastructure AFAIK.