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.
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.
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
- A Domain AdamRMS will be deployed to - eg.
dash.adam-rms.com
- The AdamRMS docker image
- A MySQL or MariaDB Database
Optional Features you can setup later on
- S3-compatible storage - if you want to store images & files
- A SendGrid account - for emails
- Developer Google and Microsoft accounts - for Advanced sign-in options
- Sentry - for error logging
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 reachDB_DATABASE
the name of the databaseDB_USERNAME
the username that the container will use to connect to the databaseDB_PASSWORD
the password for the database userDB_PORT
the port that the database is listening on, will default to3306
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.