nciCloud Invoice

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.

Deploy to CloudflareDeploy with VercelDeploy to Netlify

What happens when you click

It's easier than it looks. A button does the whole job for you:

  1. You sign in with your GitHub account.
  2. It makes a copy of the app's code inside your own account.
  3. It connects that copy to the platform and builds the app.
  4. You type in a few small settings (see below).
  5. 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:

  1. A GitHub account. Create one free in a minute if you do not have it.
  2. 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-

SettingWhat it isWhere to find it
DATABASE_URLYour database connection stringFrom your database provider
AUTH_SECRETA random password for the appyou can either generate one by this command openssl rand -base64 32 or from here.
SEED_USER_EMAILEmail for your first loginAny address you like, e.g. admin@example.com
SEED_USER_PASSWORDPassword for that first loginChoose a strong one
SEED_USER_NAMEDisplay name for that first loginOptional, 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.

  1. Click Deploy to Cloudflare and sign in when asked.
  2. Keep the suggested Worker name the button gives you.
  3. 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

  1. Open your new site's link. It takes you straight to the dashboard.

  2. 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_EMAIL already belongs to someone, redeploying with a different SEED_USER_PASSWORD will not make that new password work - the old one still does. Keep using the password you signed up with, and pick a new SEED_USER_EMAIL if 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 clone if you do not have the code there yet.)

  3. Start invoicing.

Stuck? Open an issue and we will be happy to help.

Last updated on

On this page