Deploy PerkRadar
Self-hosted deal and freebie feed aggregator with search and filters
perkradar
Just deployed
/data
Deploy and Host self hosted PerkRadar on Railway
This template runs PerkRadar, an open-source deal and freebie feed aggregator, as one Railway service with a persistent SQLite volume. The interface and most sources are in Chinese. This is independent community packaging, not affiliated with or endorsed by the upstream authors.
About Hosting PerkRadar open-source software on Railway (self hosted PerkRadar template)
This template runs upstream PerkRadar, an MIT-licensed deal and freebie feed aggregator, as one Railway service with a /data volume holding a single SQLite file, deals.db.
Railway handles the container build, public HTTPS domain, environment variables and volume mount, while you keep the data and access token.
Why Deploy PerkRadar, the self-hosted deal and freebie feed aggregator on Railway
Running PerkRadar on Railway gives you a private board that polls seven public feeds every two hours and stores results in your own SQLite file. Most sources and the interface are in Chinese.
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying PerkRadar on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Railway vs Other Hosting Providers and VPS for PerkRadar self hosting
PerkRadar runs as one always-on Node container with a small SQLite file, so the choice is how much server work you want to own. The table compares Railway with the other providers.
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | A deployed container with a /data volume and a public domain | A droplet you patch and configure, then Docker and a reverse proxy |
| AWS | The same container, volume and domain without network setup | Many services to wire together, flexible but more setup |
| Hetzner | A managed deploy path with no OS hardening | Low-cost servers where you manage the firewall and data directory |
Common Use Cases for hosted PerkRadar
- Personal deal radar: Run PerkRadar as a private board that polls seven fixed public feeds every two hours, LINUX DO welfare, V2EX promotions, Epic free games, NodeSeek, Appinn, ghxi and iPlaySoft, and keeps the results in one SQLite file on your own Railway volume.
- Searching a busy feed: Use the web board to search titles across all seven sources at once and narrow the list by source and category, so you only read what matters to you.
- Catching what is new: Check the "new this round" view after each scheduled refresh to see items that appeared since your last visit, instead of rereading the same threads.
- Tracking what you already claimed: Favourite interesting items and mark them claimed, so your own record of freebies stays with you rather than in scattered browser tabs.
- Chinese-language deal hunting: The interface and most sources are in Chinese, so this suits people who follow those communities; the items are unverified public posts, so always check the original.
Dependencies for PerkRadar Docker hosted on Railway
This template runs PerkRadar as one container with SQLite on a Railway volume, so there is no separate database to set up. The access token is generated at deploy time; you do not enter it as an input.
Deployment Dependencies for Managed PerkRadar Service (one container with SQLite)
The template deploys one service, perkradar, on port 8080 with a public domain. No Postgres or Redis is needed. The health check uses /login because /api/health requires the bearer token.
Implementation Details for PerkRadar (PerkRadar at commit 92c68cb plus a Railway start script)
The image ghcr.io/onepush-dev/perkradar:92c68cb builds upstream commit 92c68cb with the upstream Dockerfile steps, application files unmodified. A start script chowns the root-owned volume, then drops to the node user with setpriv.
The template defines one variable, PERKRADAR_ACCESS_TOKEN, generated at 48 characters. Paste it on /login for an 8-hour signed session, or send it as a Bearer token from scripts. Changing it and redeploying signs out every session.
How does PerkRadar compare against other tools
PerkRadar vs an RSS reader (RSS reader Alternative)
- Feed scope: An RSS reader stores arbitrary feeds you choose. PerkRadar polls seven fixed public deal and freebie sources.
- Where the reader wins: A reader suits following blogs or news with full article text. PerkRadar keeps only titles, original links and short summaries.
- Board features: PerkRadar adds search, filters, a new-this-round view, favourites and a claimed marker.
PerkRadar vs a hosted deal site (hosted deal site Alternative)
- Ownership: A hosted deal site is a public catalogue run by someone else. PerkRadar runs on your own Railway service and keeps its SQLite file in your volume.
- Where the hosted site wins: Hosted sites often curate listings. PerkRadar does not verify deals; items are unverified public posts, so always check the original.
PerkRadar vs a manual bookmark list (manual bookmark list Alternative)
- Discovery: A bookmark list only holds links you already found. PerkRadar collects new titles on a schedule.
- Where bookmarks win: Bookmarks need no running service and keep working when Railway is stopped.
- Tracking: Favourites and claimed state live in your browser, so they do not sync across browsers.
PerkRadar with Docker Compose vs Railway (Docker Compose Alternative)
- Setup: Docker Compose means you manage the host, ports and TLS. The Railway template gives you one service, a /data volume and a generated access token.
- Where Compose wins: Compose gives full host control and binds to 127.0.0.1 by default. Railway relies on platform networking and usage-based billing.
- Scaling: Both run one instance only, because SQLite and the in-process scheduler need a single replica.
How to use PerkRadar on Railway?
- Open the public URL for the perkradar service. You will be redirected to /login.
- Copy PERKRADAR_ACCESS_TOKEN from the perkradar Variables tab and paste it on the login page. The session lasts 8 hours.
- Use the board. The interface and most sources are in Chinese. Items are unverified public posts, so check the original link before acting.
- Keep one replica. SQLite and the in-process scheduler lease only work on a single instance.
- Railway's health check uses /login, because /api/health needs the bearer token:
GET /login
How to self host PerkRadar on other VPS Services (PerkRadar self hosting guide)
Clone the Repository
Clone the upstream repository and check out commit 92c68cb, the version this template targets.
git clone https://github.com/luobinger/PerkRadar.git your-domain-perkradar
cd your-domain-perkradar
git checkout 92c68cb5503bcbb1316d3fa9a21e20b9a86f3b3d
Install Dependencies
You need Node.js 22.13 or later, or Docker Engine with Docker Compose v2.24 or later. With Node, run npm ci in the project folder.
Configure Environment Variables
Generate an access token of at least 32 random characters and set it as PERKRADAR_ACCESS_TOKEN in your shell or in a permission 600 .env file that stays out of Git. The optional JINA_API_KEY is only needed for the LINUX DO source.
Start the PerkRadar Application
With Docker, run docker compose -p perkradar up -d --build and open http://127.0.0.1:38471/. Data is stored in the ./data volume, mapped to /data.
Pricing and License of PerkRadar (PerkRadar pricing)
PerkRadar is open-source software released under the MIT License, so you can use, modify and redistribute it freely, including for commercial purposes, as long as you keep the copyright and license notice.
PerkRadar hosted vs self hosted comparison (Pricing, features, costs, and more)
PerkRadar is free MIT software, and no hosted plan is described upstream. Upstream also ships a GitHub Pages snapshot workflow, which is a static viewer without the access token.
Monthly cost of self hosting PerkRadar on Railway
Railway bills on usage, so the monthly cost depends on the RAM, CPU, volume storage and services your instance uses. This template runs one container with a small SQLite file on a volume. Check current Railway usage for your own workload.
System Requirements for Hosting PerkRadar on a VPS
PerkRadar needs a long-running Node process, a writable directory for SQLite, and a single instance. Size the machine by your own testing.
Frequently Asked Questions (FAQs)
How do I sign in to my PerkRadar board?
Open the public URL, which redirects you to /login, then paste the PERKRADAR_ACCESS_TOKEN value from the perkradar Variables tab. That gives you an 8-hour signed session in your browser.
Is the PerkRadar interface available in English?
No. The user interface and most of the sources are in Chinese, so plan to read Chinese titles and summaries.
Are the listed items verified deals?
No. Items are unverified public posts pulled from feeds, so always check the original post before you act on anything.
Why does /api/health return 401?
The health endpoint requires the bearer token, so an unauthenticated request gets 401. The Railway service health check uses /login instead, which does not need the token.
Do I need a Jina API key?
No. JINA_API_KEY is optional and is not in the template. The LINUX DO source uses Jina, and anonymous requests may be rate-limited.
What should I back up?
Back up the /data volume, which holds the deals.db SQLite file. Take the backup while the service is stopped or otherwise consistent so you do not copy a half-written database.
Template Content
