Server Setup with Docker
This is a step-by-step instruction guide to setting up your own Drawpile server on a cheap cloud Linux server, using the Docker based all-in-one installer script.
The following knowledge is assumed:
- Basic Linux command line
- How to connect to a server using SSH
- How to use a text editor in Linux
Step 1. Get a (virtual) server
First, you will need an actual server to run the server software on. The Drawpile server is not very demanding, so the cheapest server from Hetzner, Digital Ocean, IONOS, OVH, or any other cloud VPS provider will do just fine.
You can also use a physical machine at home (even a Raspberry Pi!) but you will need to ensure your Internet connection is up to the task.
When creating the server, you must choose which Linux distribution to use. In this tutorial, I will use Debian.
Step 2. Get and run the installer script
First, log in to your server as root. To download the installer script, you will need Git. If you’re using Debian, install it like this:
apt install git
Next, download the setup script:
git clone https://github.com/drawpile/dpserver.git
Now, you can run the setup script. This will download all the necessary components.
cd dpserver ./setup.sh
The script will first download and install Docker, then the it will ask you some questions about the server environment. Specifically:
- Your domain name. If you don’t have one, use your server’s IP address
- Whether you want to use Let’s Encrypt. You will need a domain name for this to work.
- If you have a Discord channel where you’d like to relay your server abuse reports
At this point, no server is actually started. If you wish, you can make additional customizations first.
The setup script will write a file named .env
. You can modify this file later yourself.
Docker-compose is used to manage the actual server processes. Out of the box, the docker-compose file will provide you with:
- The Drawpile server itself
- A list server (that just shows the active sessions by default)
- An abuse report bridge (relays server abuse reports to a Discord webhook)
- A web server
- Let’s Encrypt SSL certificate for the web server
- Web admin
- WebSocket support for the web browser version of Drawpile
See the readme file for more information on how to customize the server package. For example, if you already have a web server, you will not want to use the nginx server included in the docker-compose file.
Step 3. Run the server
Once you’re satisfied with the configuration, you can try starting the server up:
./docker-compose-wrapper up
The server will shut down when you hit Ctrl+C. To start the server and leave it running in the background, use:
./docker-compose-wrapper up -d
To update the server components, run git pull
to update the repository. If you changed any of the files inside, you may have to resolve resulting conflicts. Then run ./docker-compose-wrapper pull
, followed by ./docker-compose-wrapper up -d
to restart the changed services.
You can update the web admin to the latest version by running the ./update-webadmin.sh
script.
Before connecting to the server, if your VPS provider has an additional local firewall (IONOS does!), you should make sure the ports 27750
, 443
, and 80
are allowed.