git-webhooks/docs.md
2024-08-01 18:19:05 +10:00

1.9 KiB

Installing

You will need nodejs and systemd installed, and access to an email account using SMTP.

You might want to run the app with a dedicated non-privileged user:

sudo adduser webhooks
su webhooks
cd ~

Now you can install git-webhooks as the webhooks user:

git clone https://git.suboptimal.solutions/hugh/git-webhooks.git
cd git-webhooks
npm install

web server

You'll need to set up a webserver configuration. If you use nginx, start with the example in nginx.conf - update the server_name, check the port is correct, and then add it to the conf files:

cp nginx.conf /etc/nginx/sites-available/git-webhooks.conf
ln -s /etc/nginx/sites-available/git-webhooks.conf /etc/nginx/sites-enabled/

Then set up an https certificate using certbot.

Systemd

Now update the values in git-webhooks.env:

  • SECRET is the secret code you will share with your git server.
  • EMAIL_USER, EMAIL_PASSWORD, SMTP_DOMAIN should all be available from your mail provider.
  • EMAIL_SEND_ADDRESS is the address you want to send from.
  • EMAIL_RECEIVE_ADDRESS is the email address you want to send alerts to
  • APP_PATH is the URL path to POST to. e.g. "library-map" if you are sending POST requests to https://example.com/library-map
  • LOCAL_REPO is the path of the repository to update on the server. e.g. /srv/my_awesome_app_repository

You'll need to check git-webhooks.service is correct for your system. You might need to change the WorkingDirectory, for example, if you chose not to create a webhooks user.

Once these files are correct, move both to where we store systemd unit files:

sudo mv git-webhooks.service git-webhooks.env /etc/systemd/system/

Now enable and start the service:

sudo systemctl enable git-webhooks.service
sudo systemctl start git-webhooks.service

Your webhooks server should now be operational!