GUIDE / 01

Install RevFox.

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

01

Requirements

Prefer containers?

The quickest route is the Docker image: see Deploy with Docker. This page is for building the binary and running it yourself with systemd and Nginx.

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/revfox-dev/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 -api-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, [email protected], with a random password printed once in the server log:

sudo journalctl -u revfox | grep "first admin account"

To choose the password instead, set REVFOX_ADMIN_PASSWORD for the first start.

Required before launch

Sign in and change the bootstrap password before exposing the panel publicly.

Installation complete

Configure your first project.

Continue to docs