Skip to main content

Self-Hosting AdamRMS

The AdamRMS dashboard is packaged as a Docker image, which is stored in the Github Image repository. We recommend you deploy this on managed infrastructure (such as AWS or DigitalOcean), but this guide will be generic, and not make use of platform-specific tools where possible.

Before you start

This guide assumes you have a good understanding of deploying web infrastructure, and it will not give specific commands, or guidance for how to manage areas such as DNS.

info

AdamRMS is distributed under the GNU Affero General Public License v3.0 and therefore is provided "AS IS".
The documentation on this page is delivered as guidance and advice, and it is believed to be correct and working at the time of writing. Any comments are greatly appreciated, and should be submitted as an issue.

What You need

Optional Features you can setup later on

The Container

The container is based on the PHP Apache2 image, and requires a number of environment variables to be set.

  • DB_HOSTNAME the hostname of the database that the docker container can reach
  • DB_DATABASE the name of the database
  • DB_USERNAME the username that the container will use to connect to the database
  • DB_PASSWORD the password for the database user
  • DB_PORT the port that the database is listening on, will default to 3306

The Docker image of AdamRMS can be found in the project's Github package repository, and you can pull it by running:

docker pull ghcr.io/adam-rms/adam-rms:latest

A MySQL-compatible database is required by the docker image, and we know of success with both MySQL and MariaDB deployments. As with all projects, we recommend you follow security best practices when it comes to your database, as this will be the main store of user data.

Database migrations are applied each time the docker image is run, and so updates will be automatically applied.

Docker Compose

We have provided a simple docker-compose file that will start the AdamRMS container and a MySQL container. This is a good starting point for a simple environment, but we recommend you use a more advanced setup for production - we've given an example of this in the advanced docker-compose file.