Deploy
Put Cloud Invoice online in a few clicks without coding or any required terminal.
Put Cloud Invoice online
You can run your very own Cloud Invoice on Cloudflare, Vercel or Netlify; just click a button. No coding, no manual forking and no command line required.
What happens when you click
It's easier than it looks. A button does the whole job for you:
- You sign in with your GitHub account.
- It makes a copy of the app's code inside your own account.
- It connects that copy to the platform and builds the app.
- You type in a few small settings (see below).
- Your own Cloud Invoice is live, usually in a few minutes.
You own the copy, so nothing about your data or your copy is shared with anyone else. And whenever you change your copy, the platform updates your site automatically.
What you need before you click
Only two things:
- A GitHub account. Create one free in a minute if you do not have it.
- A free database. We recommend Neon or
Supabase. Create a database and copy its connection
string. It looks like
postgresql://user:password@host:5432/database.
Every other setting is a nice-to-have. You can always add more later.
The settings to fill in
While deploying, you will be asked for these-
| Setting | What it is | Where to find it |
|---|---|---|
DATABASE_URL | Your database connection string | From your database provider |
AUTH_SECRET | A random password for the app | you can either generate one by this command openssl rand -base64 32 or from here. |
SEED_USER_EMAIL | Email for your first login | Any address you like, e.g. admin@example.com |
SEED_USER_PASSWORD | Password for that first login | Choose a strong one |
SEED_USER_NAME | Display name for that first login | Optional, defaults to Admin |
The three SEED_USER_* settings create your first login. Every build runs
db:setup, which applies the database migrations and seeds that admin user, so
you can sign in as soon as the deploy finishes. If you leave them empty the
deploy still succeeds, but nobody can sign in until you create a user yourself
(see After your first deploy below).
You may also be asked for AUTH_SESSION_MAX_AGE. It is optional and already
defaults to 86400 seconds (24 hours).
AUTH_SECRET is a secret. Never share it and never paste it into an online
tool. The deploy button only asks you to type it in. It is never stored in the
code. Treat SEED_USER_PASSWORD the same way, and use a different one.
Pick a platform
All three work the same way afterwards; you just choose whichever you like.
- Click Deploy to Cloudflare and sign in when asked.
- Keep the suggested Worker name the button gives you.
- Accept the build settings and let it deploy.
After the first deploy, open your Worker in the Cloudflare dashboard, find Settings, paste in the settings above and redeploy once.
After your first deploy
-
Open your new site's link. It takes you straight to the dashboard.
-
Sign in. If you filled in the
SEED_USER_*settings, your login is already waiting - just use that email and password.The seed never changes an existing user. If
SEED_USER_EMAILalready belongs to someone, redeploying with a differentSEED_USER_PASSWORDwill not make that new password work - the old one still does. Keep using the password you signed up with, and pick a newSEED_USER_EMAILif you want a fresh account.If you skipped them, the app has no sign-up page, so create a user by running this once on your computer (paste your own database URL and a strong password)-
DATABASE_URL="postgresql://user:password@host:5432/database" \ SEED_USER_NAME="Admin" SEED_USER_EMAIL="you@example.com" \ SEED_USER_PASSWORD="choose-a-strong-password" npm run seed(Copy your GitHub copy to your computer first with
git cloneif you do not have the code there yet.) -
Start invoicing.
Stuck? Open an issue and we will be happy to help.
Last updated on