GUIDE / 01

Install revfox.

Build the complete runtime, connect a database, and run revfox as a service behind Nginx on Ubuntu.

01

Requirements

revfox ships as one compiled server binary with the web panel embedded into it.

  • An Ubuntu server
  • Go and Node.js to build from source
  • SQLite for a simple installation or PostgreSQL for a hosted database
  • Nginx or another reverse proxy for public traffic
02

Build from source

Clone the repository into your server directory and run the project build.

git clone https://github.com/RevenueFox/revfox.git /root/revfox
cd /root/revfox
make build

The production binary is created at /root/revfox/bin/revfox.

03

Configure the database

For SQLite, use a local database file in conf/revfox.ini.

[database]
type = sqlite
path = data/revfox.db

PostgreSQL

For a managed or external database, use a PostgreSQL connection URL.

[database]
type = postgres
url = postgres://revfox:[email protected]:5432/revfox?sslmode=disable
04

Run as a service

Create /etc/systemd/system/revfox.service with the current installation path.

[Unit]
Description=revfox
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
WorkingDirectory=/root/revfox
ExecStart=/root/revfox/bin/revfox -target all -addr :8080 -ingest-addr :8081 -config /root/revfox/conf/revfox.ini
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now revfox
sudo systemctl status revfox
Production note

Because this installation is under /root, the service runs as root. A dedicated user under /opt/revfox is safer for a public production server.

05

Put Nginx in front

Proxy panel traffic to the revfox server listening on port 8080.

server {
    listen 80;
    server_name panel.revfox.dev;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
06

First login

A fresh database creates a bootstrap account.

Required before launch

Change the bootstrap password before exposing the panel publicly.

Installation complete

Configure your first project.

Continue to docs