Skip to contentLaunch price30% off every kit for the first 250 buyers155 left
DirectoryLab

Loading the guides…

Launch LabGuides
Start here

Install Launch Lab on your computer

From the unzipped folder to the first screen of the setup wizard, and what the site keeps in its instance folder.

Updated 9 Oct 2026 · written for Launch Lab 2.9.0

On this page

Run Launch Lab on your own computer first. It needs Python and nothing else: no database to install, no accounts to open, no keys and no settings file. You get the whole product, admin included, and you can break it as often as you like before anything is public.

What you need#

  • Python 3. The kit's own Dockerfile runs it on Python 3.12. On a Mac or Linux the command is python3. On Windows it is python.

  • The Launch Lab folder. Unzip your download.

  • A terminal opened in that folder.

You do not need Node.js. It is only for rebuilding the stylesheet if you later change the design in code.

Install and start it#

  1. Step 1: Make a virtual environment

    This keeps Launch Lab's Python packages apart from everything else on your computer.

    Mac or Linux
    python3 -m venv venv
    source venv/bin/activate
    Windows
    python -m venv venv
    venv\Scripts\activate

    Your prompt now starts with (venv). Whenever you open a new terminal to work on the site, run the second line again first.

  2. Step 2: Install the packages

    Terminal
    pip install -r requirements.txt

    This takes a minute or two the first time.

  3. Step 3: Start the site

    Terminal
    python run.py

    The first start builds the database and fills in the starting data, then prints two lines to look for:

    What the terminal prints
    Setup required: open /setup in your browser. Setup code: (a long code) (also in instance/setup_token)
     * Running on http://127.0.0.1:5000

    Press Ctrl and C in the terminal to stop the site.

  4. Step 4: Open it in your browser

    Go to http://127.0.0.1:5000. Whichever page you ask for, a new site sends you to /setup, and you see the first step of the setup wizard, Create your admin account.

    Step one of the Launch Lab setup wizard, Your account: the seven steps listed down the left beside the Launch Lab mark, and on the right boxes for a first name, last name, email address and a password typed twice
    The setup wizard opens on the admin account. It is shown once, on a new install.

The wizard has seven steps: your account, the site's name, its brand, categories, how launches work, what you sell and a last check. The setup wizard, step by step goes through every field.

These guides say "listing" for what your site launches and "maker" for the person who launches it. Your site will use the words you choose in the wizard.

Why the wizard did not ask for a setup code#

A new site has no admin, so the wizard is the one page that would let a stranger take the site over. It is protected by a one-time setup code. The site makes the code on its first start, prints it in the terminal and keeps it in the file instance/setup_token.

On your own computer you are not asked for it. The wizard opens without the code when all three of these are true:

  • the request comes from the same computer the site is running on

  • it did not pass through a proxy such as nginx or Caddy

  • the site was started with python run.py, which uses Flask's development server

Anywhere else, which means every live server, /setup shows Enter your setup code first.

The setup code page of a new Launch Lab site: the heading Enter your setup code, one box labelled Setup code with a note that it is in the server log or the file instance/setup_token, and a Continue button
On a server the wizard asks for the one-time setup code first.

Type the code into Setup code and click Continue. A wrong code brings the page back with "That setup code is not correct." You can also put the code in the address, as /setup?token= followed by the code, and go straight to the first step.

When the wizard is finished the code is deleted, and /setup shows the site's "Oops! Page Not Found" page from then on. Setup is counted as done once the site has an admin, so nobody can run the wizard a second time.

What the instance folder holds#

The first start makes a folder called instance inside the Launch Lab folder. Everything that belongs to your site, as opposed to the kit, is in it.

In instanceWhat it is
app.dbThe database, a single SQLite file: every setting, account, listing, vote and payment.
secret_keyA long random key the site made for itself. See the secret key.
setup_tokenThe one-time setup code. It is there only until the wizard is finished.
uploadsEvery picture uploaded to the site: logos, listing images, profile pictures and the site's own brand files.

To keep a copy of a site, stop it and copy the whole instance folder.

A new database is not empty. Before the wizard runs, the site has already added six starter categories, five blog categories, the twelve emails it sends on its own and the starting prices. The wizard then sets the categories and prices to the ones you choose.

The secret key#

Launch Lab signs each sign-in with a secret key, and locks the keys you later save under Integrations in the admin with the same key.

You do not have to make one. When no SECRET_KEY is set, the site writes 64 random characters to instance/secret_key the first time it starts and reads them back on every start after that. Each install gets its own.

You can set your own instead, as a SECRET_KEY= line in .env. That value then wins and the file in instance is not used. It must be at least 16 characters long and must not begin with change-me, changeme, your-, your_, secret-key or dev-secret. If it does, the site refuses to start and says why.

The .env file#

Launch Lab runs with no .env file at all. You add one when you want to change something that cannot be set in the admin. The folder has a file called .env.example that lists every setting there is. On a new copy every line in it is either empty or the value the site would use anyway, so you can copy it to .env whole and remove what you do not need.

The lines that matter on your own computer:

LineWhat it does
FLASK_PORT=5050The port python run.py listens on. Without it, 5000.
FLASK_HOST=127.0.0.1Which network address it listens on. The default, 127.0.0.1, means only your own computer can reach the site.
FLASK_DEBUG=trueTurns on Flask's debug mode, which reloads the site when a file changes and shows errors in the browser. It is off unless this line says true, 1 or on. Never set it on a live site.
SECRET_KEY=Your own secret key. Leave it empty to have one made.
DATABASE_URL=The address of a PostgreSQL database. Leave it out to use the SQLite file.

.env.example also has the line FLASK_ENV=production. In version 2.9.0 that line changes nothing, whatever you set it to.

Email, Stripe, Google sign-in and bot protection have lines in .env too, but they are quicker to set in the admin under Integrations, and a value saved there wins over the same value in .env.

Sign in again later#

When you finish the wizard you are signed in already. After that, sign in at /auth/login with the email address and password you gave the wizard.

The sign-in page: email and password boxes, a Keep me signed in tick box, a Sign in button and a link to create an account
The sign-in page.

You arrive on your own dashboard, the same one a maker gets. Click Admin area in its sidebar, or go to /admin.

Start again from nothing#

While you are learning the kit you may want a clean copy.

  1. Step 1: Stop the site

    Press Ctrl and C in the terminal.

  2. Step 2: Delete the instance folder

    Delete the whole instance folder. That removes the database, every uploaded picture and the secret key. To keep the secret key, delete only instance/app.db and instance/uploads.

  3. Step 3: Start the site

    Run python run.py. The folder is made again with a new database and a new setup code, and every page sends you to the wizard.

Do I need Node.js?

Not to run the site. The stylesheet is already built and included. You only need Node.js if you edit the design's source files, to rebuild it with npm install and then npm run build-css-prod.

The site will not start: "SECRET_KEY is a placeholder or too short"

Your .env file has a SECRET_KEY line that is under 16 characters or begins with a word from an example file, such as change-me. Either delete the line, and the site makes its own key in instance/secret_key, or replace it with the output of this command:

Terminal
python -c "import secrets; print(secrets.token_hex(32))"
It asks for a setup code on my own computer

You reached the site in a way that does not count as local: through a proxy, from another device on your network or from a copy started with Docker or gunicorn. The code is in the terminal output from when the site started, and in the file instance/setup_token.

I closed the terminal and lost the setup code

Open the file instance/setup_token in a text editor. The code is the only thing in it. It stays the same until the wizard is finished.

I forgot the admin password

On your own computer, stop the site and set a new one from the terminal:

Terminal
python scripts/change_admin_password.py

It prints the email address of the site's first admin, then asks for the new password twice under "Enter new password:" and "Confirm new password:". It also unlocks that account if too many wrong passwords have locked it.

Stuck on a step? Send a message.