Dedicated Server HOWTO
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. Drawpile-srv is not very demanding, so a tiny $5/month server from Linode or Digital Ocean or any other cloud VPS provider will do just fine. You can also use a physical machine at home (even a Raspberry Pi!) but in this case 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 10 (Buster).
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
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:
The server will shut down when you hit Ctrl+C. To start the server and leave it running in the background, use:
docker-compose up -d
To update the server components, run
docker-compose pull, followed by
docker-compose up -d to restart
the changed services.
You can update the web admin to the latest version by running the