Initial commit
commit
e419cabe09
|
@ -0,0 +1,7 @@
|
|||
.env
|
||||
*.log
|
||||
starbound_data
|
||||
.DS_Store
|
||||
docker_*.sh
|
||||
.git/
|
||||
.git*
|
|
@ -0,0 +1,42 @@
|
|||
.env
|
||||
starbound_data/
|
||||
|
||||
# Docker project generated files to ignore
|
||||
# if you want to ignore files created by your editor/tools,
|
||||
# please consider a global .gitignore https://help.github.com/articles/ignoring-files
|
||||
*.exe
|
||||
*.exe~
|
||||
*.orig
|
||||
*.rej
|
||||
*.test
|
||||
.*.swp
|
||||
.DS_Store
|
||||
.bashrc
|
||||
.dotcloud
|
||||
.flymake*
|
||||
.git/
|
||||
.gopath/
|
||||
.hg/
|
||||
.vagrant*
|
||||
Vagrantfile
|
||||
a.out
|
||||
autogen/
|
||||
bin
|
||||
build_src
|
||||
bundles/
|
||||
docker/docker
|
||||
dockerversion/version_autogen.go
|
||||
docs/AWS_S3_BUCKET
|
||||
docs/GITCOMMIT
|
||||
docs/GIT_BRANCH
|
||||
docs/VERSION
|
||||
docs/_build
|
||||
docs/_static
|
||||
docs/_templates
|
||||
docs/changed-files
|
||||
# generated by man/md2man-all.sh
|
||||
man/man1
|
||||
man/man5
|
||||
man/man8
|
||||
pyenv
|
||||
vendor/pkg/
|
|
@ -0,0 +1,55 @@
|
|||
FROM ubuntu:16.04
|
||||
|
||||
MAINTAINER didstopia
|
||||
|
||||
# Setup the locales
|
||||
RUN locale-gen en_US.UTF-8
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LANGUAGE en_US:en
|
||||
ENV LC_ALL en_US.UTF-8
|
||||
|
||||
# Fixes apt-get warnings
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# Run a quick apt-get update/upgrade
|
||||
RUN apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y && apt-get autoremove -y
|
||||
|
||||
# Install dependencies, mainly for SteamCMD
|
||||
RUN apt-get install -y \
|
||||
ca-certificates \
|
||||
software-properties-common \
|
||||
python-software-properties \
|
||||
lib32gcc1 \
|
||||
libstdc++6 \
|
||||
curl \
|
||||
wget \
|
||||
libvorbisfile3
|
||||
|
||||
# Run as root
|
||||
USER root
|
||||
|
||||
# Create and set the steamcmd folder as a volume
|
||||
RUN mkdir -p /steamcmd/starbound
|
||||
VOLUME ["/steamcmd/starbound"]
|
||||
|
||||
# Add the steamcmd installation script
|
||||
ADD install.txt /install.txt
|
||||
|
||||
# Copy the startup script
|
||||
ADD start_starbound.sh /start.sh
|
||||
|
||||
# Set the current working directory
|
||||
WORKDIR /
|
||||
|
||||
# Expose necessary ports
|
||||
EXPOSE 21025/tcp
|
||||
|
||||
# Setup default environment variables for the server
|
||||
ENV STEAM_USERNAME ""
|
||||
ENV STEAM_PASSWORD ""
|
||||
|
||||
# Cleanup
|
||||
ENV DEBIAN_FRONTEND newt
|
||||
|
||||
# Start the server
|
||||
ENTRYPOINT ["./start.sh"]
|
|
@ -0,0 +1,24 @@
|
|||
# Starbound server that runs inside a Docker container
|
||||
|
||||
**NOTE**: This image will install/update on startup. The path ```/steamcmd/starbound``` can be mounted on the host for data persistence.
|
||||
|
||||
# How to run the server
|
||||
1. Set the environment variables you wish to modify from below (note the Steam credentials)
|
||||
2. Optionally mount ```/steamcmd/starbound``` somewhere on the host or inside another container to keep your data safe
|
||||
3. Enjoy!
|
||||
|
||||
*Be sure to edit `starbound_server.config` to further customize your installation.*
|
||||
|
||||
The following environment variables are available:
|
||||
```
|
||||
STEAM_USERNAME (DEFAULT: "" - Required for installing/updating Starbound)
|
||||
STEAM_PASSWORD (DEFAULT: "" - Required for installing/updating Starbound)
|
||||
```
|
||||
|
||||
# Updating the server
|
||||
|
||||
As long as you have both your `STEAM_USERNAME` and `STEAM_PASSWORD` set, simply restarting the container should trigger the update procedure.
|
||||
|
||||
# Anything else
|
||||
|
||||
If you need help, have questions or bug submissions, feel free to contact me **@Dids** on Twitter.
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
docker build -t didstopia/starbound-server:latest .
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
docker build --no-cache -t didstopia/starbound-server:latest .
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
docker tag didstopia/starbound-server:latest didstopia/starbound-server:latest
|
||||
docker push didstopia/starbound-server:latest
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
./docker_build.sh
|
||||
|
||||
# Run a vanilla server
|
||||
docker run -p 0.0.0.0:21025:21025/tcp --env-file .env -v $(pwd)/starbound_data:/steamcmd/starbound --name starbound-server -d didstopia/starbound-server:latest
|
||||
|
||||
docker logs -f starbound-server
|
|
@ -0,0 +1,6 @@
|
|||
@sSteamCmdForcePlatformType linux
|
||||
login anonymous
|
||||
force_install_dir /steamcmd/starbound
|
||||
app_info_update 1
|
||||
app_update 211820 validate
|
||||
quit
|
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Define the exit handler
|
||||
exit_handler()
|
||||
{
|
||||
echo "Shutdown signal received"
|
||||
kill -SIGINT "$child"
|
||||
}
|
||||
|
||||
# Trap specific signals and forward to the exit handler
|
||||
trap 'exit_handler' SIGHUP SIGINT SIGQUIT SIGTERM
|
||||
|
||||
# Create the necessary folder structure
|
||||
if [ ! -d "/steamcmd/starbound/linux" ]; then
|
||||
echo "Creating folder structure.."
|
||||
mkdir -p /steamcmd/starbound/linux
|
||||
fi
|
||||
|
||||
# Install/update steamcmd
|
||||
echo "Installing/updating steamcmd.."
|
||||
curl -s http://media.steampowered.com/installer/steamcmd_linux.tar.gz | tar -v -C /steamcmd -zx
|
||||
|
||||
# Check that username and password are both set
|
||||
if [ ! -z "$STEAM_USERNAME" ] || [ ! -z "$STEAM_PASSWORD" ]; then
|
||||
# Setup username/password for Steam
|
||||
sed -i "s/login anonymous/login $STEAM_USERNAME $STEAM_PASSWORD/g" /install.txt
|
||||
fi
|
||||
|
||||
# Check that Starbound exists in the first place
|
||||
if [ ! -f "/steamcmd/starbound/linux/starbound_server" ]; then
|
||||
# Check that username and password are both set, otherwise quit with error
|
||||
if [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then
|
||||
echo "Error: you must set both your Steam username and password to install the server"
|
||||
exit 1
|
||||
fi
|
||||
# Install Starbound from install.txt
|
||||
echo "Installing/updating Starbound.."
|
||||
bash /steamcmd/steamcmd.sh +runscript /install.txt
|
||||
else
|
||||
# Check that username and password are both set, otherwise skip update
|
||||
if [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then
|
||||
echo "Steam username or password not set, skipping update.."
|
||||
exit 1
|
||||
else
|
||||
# Install Starbound from install.txt
|
||||
echo "Installing Starbound.."
|
||||
bash /steamcmd/steamcmd.sh +runscript /install.txt
|
||||
fi
|
||||
fi
|
||||
|
||||
# Set the working directory
|
||||
cd /steamcmd/starbound/linux
|
||||
|
||||
# Run the server
|
||||
echo "Starting Starbound.."
|
||||
./starbound_server 2>&1 &
|
||||
|
||||
child=$!
|
||||
wait "$child"
|
Loading…
Reference in New Issue