--- title: Setup --- ## Build dependencies * Git * GNU Make * C compiler * Recent Go toolchain ## Build and install Clone the source code and run `make`. Then run `make install` to install it. By default, it installs to `/usr/local/`. Note that setting `GOARCH` to cross compile does not completely work, since the hooks handler is written in C. You need to customize `CC` to point to a proper cross compiler. ## Runtime dependencies * Git * PostgreSQL 14 or later ## Configuration ### Adding a system user Note that this process may vary depending on your OS distribution. ``` useradd -rmd /var/lib/lindenii/forge/ lindenii-forge ``` ### Allowing the binary to listen to low ports Since we usually listen on port 22 for SSH, it is necessary to allow the Lindenii Forge binary to use low ports. ``` setcap 'cap_net_bind_service=+ep' /usr/bin/lindenii-forge ``` ### Generating SSH host keys ``` ssh-keygen -t ed25519 -f /etc/lindenii/forge/ssh_forge_ed25519_key -N '' ``` ### Initializing PostgreSQL Assuming that you use UNIX-domain socket authentication on a local PostgreSQL instance, ``` su - postgres createuser lindenii-forge createdb -O lindenii-forge lindenii-forge psql -f /usr/share/lindenii/forge/schema.sql -d lindenii-forge ``` ### Editing the configuration file Copy `/usr/share/doc/lindenii/forge/forge.scfg` to `/etc/lindenii/forge.scfg` and edit appropriately.