Skip to content

Installation

This guide covers installing Oath Bringer on your infrastructure.

Prerequisites

Before installing Oath Bringer, ensure you have:

  • A Linux server (Rocky Linux 9 recommended)
  • Node.js 18+ installed
  • Git installed
  • A domain name (optional, for public access)

Installation Methods

The easiest way to deploy Oath Bringer is using Docker Compose.

# Clone the repository
git clone https://github.com/lloydtheandroid/oath-bringer.git
cd oath-bringer

# Copy environment template
cp .env.example .env

# Edit configuration
nano .env

# Start services
docker compose up -d

First Run

On first run, navigate to http://your-server:3000 to create your admin account.

For production deployments or custom configurations:

# Clone the repository
git clone https://github.com/lloydtheandroid/oath-bringer.git
cd oath-bringer

# Install dependencies
npm install

# Build the project
npm run build

# Configure environment
cp apps/api/.env.example apps/api/.env
nano apps/api/.env

# Start services
npm run start

For production deployments with systemd:

# Copy service files
sudo cp deploy/systemd/*.service /etc/systemd/system/

# Enable and start services
sudo systemctl enable oath-bringer-api oath-bringer-web
sudo systemctl start oath-bringer-api oath-bringer-web

Configuration

Environment Variables

Variable Description Default
DATABASE_URL SQLite database path file:./data/oath.db
JWT_SECRET Secret for JWT tokens (generated)
API_URL API server URL http://localhost:4000
PORT Web server port 3000
API_PORT API server port 4000

Reverse Proxy (Nginx)

server {
    listen 80;
    server_name oath-bringer.yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    location /api {
        proxy_pass http://localhost:4000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Installing the Agent

The Oath Bringer agent runs on each managed host.

# Download and install agent
curl -fsSL https://oath-bringer.com/install-agent.sh | bash

# Configure agent
sudo nano /etc/oath-bringer/agent.conf

# Start agent
sudo systemctl enable --now oath-bringer-agent

Verification

After installation, verify everything is running:

# Check web service
curl http://localhost:3000/api/health

# Check API service
curl http://localhost:4000/health

# Check agent (on managed host)
sudo systemctl status oath-bringer-agent

Next Steps