I'll be installing the binary in this guide. Official Docs
Login to PSQL
su - postgres
psql
Enable the pgcrypto extension
create extension pgcrypto;
Create a new user
create user goalert with password '*********************************';
Create a new database
create database goalert owner goalert;
Grant all privileges on new database to new user
grant all privileges on database goalert to goalert;
Create a new service file
vim /etc/systemd/system/goalert.service
Use the following configuration (I built this - modify as you see fit)
[Unit]
Description=goalert
After=network.target
StartLimitIntervalSec=2
[Service]
Type=simple
Restart=on-falure
RestartSec=10
User=root
ExecStart=/usr/bin/goalert --db-url postgres://goalert:*************@localhost/goalert --data-encryption-key ******************** --public-url https://goalert.domain.com --listen 0.0.0.0:8081
[Install]
WantedBy=multi-user.target
Reload and enable the new service
systemctl daemon-reload
systemctl enable goalert.service
systemctl stop goalert.service
Download the latest binary from here
wget https://github.com/target/goalert/releases/download/v0.30.1/goalert-linux-amd64.tgz
Run the binary manually, specifying the DB credentials, data encryption key, and public URL if running behind a proxy.
goalert --db-url postgres://goalert:**********@localhost/goalert --data-encryption-key ******************** --public-url https://goalert.domain.com --listen 0.0.0.0:8081
GoAlert should be listening on 0.0.0.0:8081.
Control-C the previous process.
Create an admin user
goalert add-user --db-url postgres://goalert:**************@localhost/goalert --admin --user admin --email admin@domain.com
Start the GoAlert systemd service
systemctl start goalert.service
systemctl status goalert.service
Navigate to the web interface, login with the admin user created earlier.
Modify any configuration parameters as you see fit.