Self Hosting Guide
This guide will walk you through setting up your own instance of Rybbit.
Prerequisites
Before you begin, ensure you have the following:
-
A Linux VPS: Try to get one with at least 2GB of RAM.
We use Hetzner for everything. Use our referral link to get a 20 dollars of credits. It should last you almost half a year. The AMD CX11 is a good choice for ~$4/month.
-
A Domain Name: You’ll need a domain or subdomain (e.g.,
tracking.yourdomain.com
) pointed to your VPS’s IP address. HTTPS is required because browsers block tracking scripts served over insecure HTTP. -
Git: Needed to clone the repository.
This guide has been tested on Ubuntu 24 LTS. While it should work on other distributions, your mileage may vary.
Setup Steps
1. Point Your Domain to Your VPS
Configure your domain’s DNS settings to point to your VPS’s public IP address. This usually involves:
- Finding your VPS’s public IPv4 address (from your hosting provider, e.g., Hetzner).
- Logging into your domain registrar or DNS provider (e.g., GoDaddy, Namecheap, Cloudflare).
- Adding an
A
record:- Host/Name: Your desired subdomain (e.g.,
tracking
) or@
for the root domain. - Value: Your VPS’s IPv4 address.
- TTL: Default or a low value (e.g., 300 seconds) for faster updates.
- Host/Name: Your desired subdomain (e.g.,
DNS changes might take some time to propagate globally. Use DNS Checker to verify.
2. Install Docker Engine
Connect to your VPS via SSH.
Follow the official Docker Engine installation instructions for your Linux distribution: https://docs.docker.com/engine/install/
3. Clone the Rybbit Repository
Clone the project repository from GitHub (Git is usually pre-installed on most server distributions):
git clone https://github.com/rybbit-io/rybbit.git
cd rybbit
4. Run the Setup Script
The repository includes a setup script that configures the necessary environment variables (including generating a secure secret) and starts the application using Docker Compose.
Important: Make all scripts executable before proceeding!
chmod +x *.sh
Run the setup script, replacing your.domain.name
with the domain or subdomain you configured in the prerequisites:
./setup.sh your.domain.name
The script will create a .env
file and then build and start the containers. This might take a few minutes the first time.
By default, we assume you are on a blank VPS and automatically setup a Caddy webserver. If you want to use your own webserver, checkout the Advanced Self-Hosting Guide.
5. Sign Up
Once the services are running and DNS has propagated, Caddy (the webserver) will automatically obtain an SSL certificate for your domain.
Open your browser and navigate to https://your.domain.name/signup
(using the domain you provided to the setup script).
Create your admin account. You can then log in and start adding your websites!
Managing Your Installation
Rybbit comes with several helper scripts to manage your installation:
If you haven’t done so already, make sure all scripts are executable:
chmod +x *.sh
-
start.sh: Start all services after they’ve been stopped
./start.sh
-
stop.sh: Stop all running services
./stop.sh
-
restart.sh: Restart all services
./restart.sh
-
update.sh: Update to the latest version by pulling new code and rebuilding containers
./update.sh
If you are using your self-hosted Rybbit without anyone else, you can disable new user signups by setting DISABLE_SIGNUP=true
in the .env
file at the root of the repository.
If you run into any issues or need help, feel free to join our Discord community!