To install SerpBear on a VPS, install Docker, create a .env file and a docker-compose.yaml file, then run docker compose up -d. Put Nginx with a Let’s Encrypt certificate in front of it, log in, and connect a scraping API such as ScrapingRobot or Serper.dev. We suggest starting on a 1 vCore, 3 GB RAM server.
This guide is for SEO freelancers and agencies who want their own rank tracker without per-keyword fees. It goes past the install command and covers the domain and SSL setup, the scraper, Search Console, backups, updates and the errors you are most likely to hit.
SerpBear is an open-source rank tracker that records where your domains appear in Google for the keywords you choose. You run it on your own server, so the keyword history stays with you and there is no per-keyword or per-seat charge from the software.
It has email notifications for position changes, a Google Search Console integration and its own API for reporting tools. One thing to know before you start: SerpBear does not query Google from your server. Its getting started guide says you need a third-party scraping account or proxy IPs, because scraping Google directly gets an IP banned. Your VPS runs the dashboard, the schedule and the database. The scraping service fetches the results.
If you only track a handful of keywords for one site, you can run SerpBear on your own PC for free. The docs note the limits of that: no access from your phone and no API for reporting apps. A VPS is for when you want it running every day without your laptop being open.
SerpBear publishes no minimum hardware figure in its README or docs. Because the scraping happens on someone else’s infrastructure, the server only runs a Node.js app, a scheduler and a small database, so a small server is enough to start, and you can upgrade if memory runs short.
On our test install, a 4 GB server running Ubuntu 24.04.5 LTS, the SerpBear container used between 112 MB and 144 MB of memory across our readings, which is under 4% of the server’s RAM. A manual keyword refresh added about 20 MB while it ran. The image takes 461 MB on disk.
HDD storage is fine for a rank tracker. Server location does not change your ranking data, since you set the country for each keyword inside SerpBear. Pick the location closest to you so the dashboard loads quickly.
Three things: a Linux VPS with root SSH access, a domain or subdomain, and a scraping API key. A VPS running Ubuntu. The commands below are written for Ubuntu and work the same way on Debian. A subdomain pointed at the server. Create an A record such as serpbear.yourdomain.com that points to your VPS IP address. Do this first so DNS has time to update before you request the SSL certificate. A scraping API key. The SerpBear docs list ScrapingRobot (5,000 free requests per month) and Serper.dev (2,500 free requests) as places to start.
Log in over SSH as root, update the system and run Docker’s install script. Docker Compose comes with it.
Create a folder, add two files and start the container. The files below follow the official deployment guide with two changes, both explained underneath.
The first value is your SECRET, which SerpBear uses to encrypt the API keys and passwords you save in it. The second is your APIKEY for SerpBear’s own API. Copy both.
SESSIONDURATION is how many hours a login lasts. NEXTPUBLICAPPURL must be the exact address you will open in the browser, including https://.
The two changes from the official file: The username variable is called SERPBEARUSER, not USER. A Linux shell already has a USER variable set to your login name, and Docker Compose reads the shell before it reads .env. If you run the official file as root, your SerpBear username can end up as root instead of admin. The port is bound to 127.0.0.1. Ports that Docker publishes skip UFW rules, so a plain 3000:3000 leaves the login page open to the internet over unencrypted HTTP. Binding to localhost means only Nginx on the same server can reach it.
Wait until docker compose ps shows the container as healthy. Press Ctrl+C to leave the logs. The container keeps running.
Install Nginx as a reverse proxy in front of port 3000, then let Certbot add a free Let’s Encrypt certificate. This is the Nginx option from the SerpBear docs.
Certbot edits the Nginx config to redirect HTTP to HTTPS. Last, turn on the firewall. Allow SSH before you enable it, or you will lock yourself out.
Open https://serpbear.yourdomain.com, log in with the username and password from your .env file, and add your first domain when SerpBear asks for it.
