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
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.
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 -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
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:
[email protected] - Password:
password
Change the bootstrap password before exposing the panel publicly.