git-webhooks/docs.md

58 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

2024-08-01 18:19:05 +10:00
## 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:
```sh
sudo adduser webhooks
su webhooks
cd ~
```
Now you can install `git-webhooks` as the `webhooks` user:
```sh
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:
```sh
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](https://certbot.eff.org/).
## 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:
```sh
sudo mv git-webhooks.service git-webhooks.env /etc/systemd/system/
```
Now enable and start the service:
```sh
sudo systemctl enable git-webhooks.service
sudo systemctl start git-webhooks.service
```
Your webhooks server should now be operational!