Requirements
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
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.
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
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
Because this installation is under /root, the service runs as root. A dedicated user under /opt/revfox is safer for a public production server.
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;
}
}
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.
Sign in and change the bootstrap password before exposing the panel publicly.
