deploy · tutorial

Deploy Tonight: $5 VPS or Vercel (Pick in 60 Seconds)

Two supported paths, step by step. Pick the one that matches your wallet.

Crowds of Columbia University students heaving at the rope in a tug-of-war on the lawn, early 1900s
Crowds of Columbia University students heaving at the rope in a tug-of-war on the lawn, early 1900s · Photo: Bain News Service, public domain, via Wikimedia Commons

There are exactly two ways to put BoringPush on the internet.

The choice comes down to one question. Where should the database live?

Pick wrong and you learn about ephemeral filesystems at 2 a.m. Pick right and deployment is a checklist, not an adventure.

Path A: a VPS and SQLite

One box.

One file.

No database bill.

This is the kit's default personality, and after a one-time setup, shipping is one command.

1. Get a box. Any Ubuntu VPS with 1 GB of RAM will do. Point your domain at its IP address.

2. Run the setup once. BoringPush ships a one-shot setup you run from your laptop against a fresh server.

It creates a non-root user and adds swap space so builds never run out of memory. It installs the runtime and web server, closes the firewall to everything but what the app needs, and makes the app restart after a reboot.

3. Set your production settings. Copy the example file, fill in the real values and choose SQLite. Make sure the database lives somewhere that survives deploys.

Then run bp secret sync. Nobody retypes secrets into a server editor.

4. Ship with bp deploy. The build happens on your laptop, so a small server never struggles with a heavy build.

The result goes to the server over SSH and is swapped in, with the previous version kept beside it. Then a health request checks it. If the new version never answers, the old one is put back.

5. Tell your payment providers where you live. In each dashboard, set the webhook address to your domain and paste the signing secret into your production settings. Sync again.

6. Check that backups exist. The kit takes a daily snapshot of the database. bp status shows the latest one.

For a copy that survives losing the server, run bp db backup --offsite.

If the box ever dies, you restore one file and you are back.

Path B: Vercel and a hosted database

Vercel's filesystem is ephemeral. Anything written to disk vanishes between requests, so SQLite cannot live there.

That is not a limit of the kit. It is how serverless works.

So use a hosted database. Choose MongoDB or Supabase, and create the tables with the schema the kit provides.

Add every setting from the example file in the Vercel dashboard. Never commit secrets. Set your site address to your production domain.

Deploy. Webhooks work the same. Only the database address changed.

Everything else behaves identically, because the app never talks to one database directly.

Which path costs what

VPS and SQLite Vercel and a hosted database
Database A file on your server MongoDB or Supabase
Extra database bill None A free tier first, then a plan
Who looks after the box You The platform
Paid app on the free plan Yes No, Vercel's Hobby plan is non-commercial
Shipping bp deploy Vercel's own flow

Check Vercel's current plan terms. They change.

Before you go live

Open the site over HTTPS. Sign in with a real account. Place one test order.

Confirm the order appears in your dashboard. Confirm that a failed login does not crash the page.

Five minutes. It finds most launch-day surprises.

Know this first

On a VPS you look after the box. On Vercel, a paid app moves you off the free plan.

Pick where the database lives, and the rest follows.

Why BoringPush is the way to do this

Two paths. One checklist.

BoringPush sets up a fresh server with one script. Then bp deploy ships it.

Prefer Vercel? The same code runs there with a hosted database.

You are live tonight.

FAQ

Can I use SQLite on Vercel?

No. Serverless filesystems reset, so your database would vanish. Use MongoDB or Supabase there, or use a VPS and keep SQLite.

Which path is cheaper?

A small VPS plus SQLite is a flat monthly price with no database bill. Vercel can be free at first, but its free plan does not allow paid apps, so a first paying customer usually moves you to a paid plan.

Do I need Docker?

No. The default path builds on your laptop and ships to the server directly. Docker is supported as an alternative if you prefer containers.

What if a deploy goes wrong?

bp deploy waits for a health check, and the server puts the previous version back if the new one never answers. You can also run bp rollback --yes yourself. Read the output and look at the live site rather than trusting a zero exit alone.

Do webhooks need anything special?

Only a public HTTPS address. Set the webhook URL in each payment dashboard, paste the signing secret into your production settings, and sync.

Can I switch paths later?

Yes. Because the app is written against one data interface, moving from SQLite on a VPS to a hosted database is a settings change plus a data move. Plan the data move carefully.

Before you go live

Run through this short list once on the real domain. Open the site over HTTPS, sign in with a real account, and place one test order.

Confirm the order appears in your dashboard and that a failed login does not crash the page. These five minutes find most launch-day surprises.

The one-paragraph version

Solo on a budget: VPS plus SQLite, ship with one command, keep backups off the box. Team or scale: Vercel with MongoDB or Supabase. Never SQLite on serverless, never secrets in git, always HTTPS before webhooks.

Now go ship. The checklist is short on purpose.

+ all the boring stuff (analytics, auth, SQLite ↔ Supabase, full marketplace, webhooks)

The Agent-First Shipping Kit

Command from your phone.

Built so autonomous AI agents build what you want without breaking what's already paying you.

$199

Get BoringPush

One-time payment · Lifetime updates · Unlimited projects.

Keep reading