Director
Requirements
- Go 1.22 or higher
- Node.js 22 or higher
- npm 10 or higher
- SQLite3
- libpam-dev
- Debian/Ubuntu:
sudo apt-get install libpam-dev - RedHat:
sudo dnf install pam-devel
Build
make build
This builds the frontend and creates a Linux executable in the dist/ directory.
Frontend
The frontend is a single-page application built with React. It is served by the director and provides a web interface for administrators to manage sessions and servers.
To build the frontend separately:
make frontend
Make Targets
| Target | Description |
|---|---|
build |
Build frontend + Go binary |
frontend |
Build only the React frontend |
audit |
Run quality checks |
clean |
Remove build artifacts |
deb |
Build Debian package |
rpm |
Build RPM package |
Building Packages
Rocky Linux / RHEL RPM
Using docker or podman:
podman run -it --rm -v "$PWD":/workspace -w /workspace rockylinux:9 bash
dnf install -y bash rpm-build systemd systemd-rpm-macros rpmdevtools make gcc which git golang pam-devel npm
curl -L https://go.dev/dl/go1.26.3.linux-amd64.tar.gz | tar -zx -C /usr/local
export PATH=$PATH:/usr/local/go/bin
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash
\. "$HOME/.nvm/nvm.sh"
nvm install 24
make rpm
Ubuntu DEB
Using docker or podman:
podman run -it --rm -v "$PWD":/workspace -w /workspace ubuntu:24.04 bash
apt update && apt install -y ca-certificates make curl git gcc libpam-dev
curl -L https://go.dev/dl/go1.26.3.linux-amd64.tar.gz | tar -zx -C /usr/local
export PATH=$PATH:/usr/local/go/bin
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash
\. "$HOME/.nvm/nvm.sh"
nvm install 24
make deb
Releases
The project uses GitHub Actions to automatically build and publish releases. When a new version is ready:
- Update CHANGELOG.md
- Commit all changes
- Create and push a new tag:
git tag v<VERSION>
git push origin v<VERSION>
The version is derived from the git tag (the v prefix is stripped).