Hermes

Docker Badge Golang Badge License Badge (licensed under BSD-3-Clause)

Port forwarding across boundaries.

Local Development

> [!NOTE] > Using [Nix](https://builtwithnix.org) is recommended for the development environment. If you're not using it, install Go. 1. First off, clone the repository: `git clone --recurse-submodules https://git.terah.dev/imterah/hermes` 2. Then, check if you have a working Nix environment if you're using Nix. 3. Last, Run `nix-shell`, or alternatively `source init.sh` if you're not using Nix.

API Development

1. After that, run the backend build script: `./build.sh`. 2. Then, go into the `api/` directory, and then start it up: `go run . -b ../backends.dev.json`

Production Deployment

> [!WARNING] > Deploying using [Docker Compose](https://docs.docker.com/compose/) is the only officially supported deployment method. 1. Copy and change the default password (or username & db name too) from the template file `prod-docker.env`: ```bash sed "s/POSTGRES_PASSWORD=hermes/POSTGRES_PASSWORD=$(head -c 500 /dev/random | sha512sum | cut -d " " -f 1)/g" prod-docker.env > .env ``` 2. Build the docker stack: `docker compose --env-file .env up -d`

Troubleshooting

This has been moved [here.](docs/troubleshooting.md)

Documentation

Go to the `docs/` folder.