Running on Railway
Railway is attempting to build software development infrastructure for humans. It's founded with the core ideology that building software should be "Take what you need, leave what you don't" and that the current iteration of tools for software development is far too complicated for current generations of developers, let alone the ones that come next. As a result, Railway handles your builds, deployments, scaling, and management of infrastructure; from development to production!
Railway provides a free hosting services which allows you to deploy Umami and set up a PostgreSQL database so you can have your self-hosted version at the click of a button.
Setup
Website and Database
Click the button above to deploy your self-hosted version of the Umami website along with an automagically provisioned PostgreSQL database.
You will be asked to add the HASH_SALT
enviroment variable which is a random string used to generate unique values for your installation.
Create database tables
- Once you've deployed your project, clone it locally using Git.
- Use the Railway CLI to link your local setup to your Railway project by running
railway link
. - Use
railway run psql -h hostname -U username -d databasename -f sql/schema.postgresql.sql
- You can view your
hostname
,username
, anddatabasename
usingrailway variables
or from your project dashboard - This command installs all the tables with the required scripts and creates a login account with the username
admin
and passwordumami
- You can view your
- You should now be able to visit your Umami dashboard and set up sites that you want to track analytics for
- You can find the URL in your project dashboard which you can visit by running
railway open
- You can find the URL in your project dashboard which you can visit by running
Notes
- Make sure you change your password after you log in for the first time
- Read more about adding a website and collecting data here
- Here is a link to a shared dashboard hosted on Railway
Running on Railway from a forked repository
The previously described method is the quickest and easiest way to get Umami up and running on Railway. However, this creates a new repository with a single commit under your Github account. You may want to use a forked repository instead to be able to conveniently receive updates from (or contribute pull requests to) the Umami source respository via github
Set up Railway project
- Fork the Umami repository.
- Create an account on Railway connected to Github.
- If you wish, you can give Railway permission only to your Umami fork repository when linking your Github account.
- From the dashboard page click New Project > Deploy from repo.
- Choose your forked Umami repository and select the master branch, click Deploy.
This initial deploy will succeed, but attempting to open the app will show "Bad Gateway" until you follow the rest of these steps.
Database and Deploy
- Click Add Plugin and select Add PostgreSQL Plugin
- Click Variables and add
HASH_SALT
, set its value to a random string (this is a random string used to generate unique values for your installation). Click Add. - Add a second variable called
PORT
, set its value to a valid port number (eg:3000
). Click Add.
Adding the variables should trigger a re-deploy, and clicking the app link should get you to the login page of your Umami instance.
Follow the remaining instructions above from Create database tables to finish setting up your Umami instance on Railway.