Skip to content

Documentation · Self-hosting

Self-host AgentLaunch on Railway

A step-by-step guide to running your own copy of AgentLaunch with the $149 Self-Host License: getting the code, deploying to Railway, connecting Chrome, adding teammates and installing updates.

Updated

← All docs

Before you start

What you get#

The Self-Host License gives you the full AgentLaunch source code: the web app, the launch agent, the Chrome extension and the directory catalog. You run it on your own Railway account, with your own AI key. Every account on your copy gets unlimited launches.

  • $149, paid once. No subscription.
  • A private GitHub repository with the code and a setup guide.
  • Directory catalog updates about every three months, for as long as AgentLaunch is maintained.
  • Use it for your own products, or to run launches for your clients.

Railway is the only platform we support. The app is a standard Node.js server, a Postgres database and a static site, so it can run elsewhere, but you would be on your own.

What you need#

WhatWhyCost
Railway accountHosts the app and its databaseUsage-based, usually a few dollars a month
OpenRouter key, or any OpenAI-compatible APIWrites listing copy and drives form fillingPay per use
Node.js 24.14 or newer and Wasp 0.25.0Builds the app on your computerFree
Google ChromeRuns the extension that fills in formsFree

Optional: a Plunk account for email alerts and password resets, and a Composio key if you want AgentLaunch to read directory verification emails from Gmail. You don't need any email service to sign up or log in.

Get access to the code#

  1. Buy the Self-Host License on the pricing page.
  2. Log in to agentlaun.ch and open your Account page.
  3. Enter your GitHub username and click Send invite.
  4. Accept the invitation from GitHub (check your GitHub notifications or email).
  5. Clone the repository to your computer.

One license covers one GitHub account. If you switch to a different account on the Account page, the old one loses access.

Deploy on Railway

1. Install the tools#

Install Wasp and the Railway CLI, then log in

npm install -g @wasp.sh/wasp-cli@0.25.0
npm install -g @railway/cli
railway login

2. Create the Railway project#

Run these from the root of the repository. They create a project with a Postgres database, a server and a site, and give both a public address.

Create the project

railway init --name agentlaunch
railway add --database postgres
railway add --service agentlaunch-server
railway add --service agentlaunch-client
railway domain --service agentlaunch-server --port 8080
railway domain --service agentlaunch-client --port 8080

The two domain commands print your server address and your site address. Write them down; you need both in the next steps.

3. Configure the server#

Generate two secrets, then set the server's variables. Replace every value in angle brackets.

Generate two secrets

openssl rand -hex 32
openssl rand -hex 32

Set the server variables

railway variables --service agentlaunch-server \
  --set 'DATABASE_URL=${{Postgres.DATABASE_URL}}' \
  --set 'PORT=8080' \
  --set 'AGENTLAUNCH_SELF_HOSTED=true' \
  --set 'WASP_SERVER_URL=<server address>' \
  --set 'WASP_WEB_CLIENT_URL=<site address>' \
  --set 'JWT_SECRET=<secret 1>' \
  --set 'JEV_KEY_ENCRYPTION_SECRET=<secret 2>' \
  --set 'ADMIN_EMAILS=<your email>' \
  --set 'ROCKET_LAUNCH_SUBMISSION_AGENT_ENABLED=true' \
  --set 'ROCKET_LAUNCH_TEXT_AI_BASE_URL=https://openrouter.ai/api/v1' \
  --set 'ROCKET_LAUNCH_TEXT_AI_MODEL=openai/gpt-4.1-mini' \
  --set 'ROCKET_LAUNCH_TEXT_AI_API_KEY=<your OpenRouter key>'

openai/gpt-4.1-mini is the model AgentLaunch is tested with. Other models that support tool calls should work, but results vary.

4. Deploy#

Build and deploy both services

SERVER_URL=<server address> SITE_URL=<site address> ./selfhost/deploy.sh

The first build takes several minutes. When the server starts it sets up the database and loads the directory catalog in the background, which takes about a minute.

5. Log in and connect Chrome#

  1. Open your site address and click Sign up.
  2. Use the email you set in ADMIN_EMAILS. You're logged straight in; there is no email to confirm.
  3. Open Connect, download the extension, unzip it, and load it on chrome://extensions with Developer mode on.
  4. Click Connect Chrome on the same page and confirm the prompt.
  5. Go to Dashboard, click Launch a product, and paste your product's website.

Run your copy

Add teammates#

Your copy has no verification emails, so only approved addresses can create an account. Admins in ADMIN_EMAILS are always allowed. Add anyone else with SELF_HOST_ALLOWED_EMAILS, as a comma-separated list. An entry like *@youragency.com allows a whole domain.

Allow teammates to sign up

railway variables --service agentlaunch-server \
  --set 'SELF_HOST_ALLOWED_EMAILS=alex@yourcompany.com,*@youragency.com'

Every account launches on your AI key with no limit, so only approve people you trust.

Use your own domain#

  1. In the Railway dashboard, open agentlaunch-client, go to Settings, then Networking, and add your domain.
  2. Point your DNS at Railway as it shows you.
  3. Set WASP_WEB_CLIENT_URL on agentlaunch-server to the new address.
  4. Deploy again with SITE_URL set to the new address.
  5. Download the extension again from Connect on the new domain. Each download is set up for the site it came from.

Optional: email alerts and Gmail#

VariablesAdds
PLUNK_SECRET_KEY, PLUNK_FROM_EMAIL, PLUNK_FROM_NAMEEmail alerts and password reset emails. Use an address on your verified Plunk domain.
COMPOSIO_API_KEYReading directory verification emails from a connected Gmail inbox.

Updates#

We publish a new release with updated directory data about every three months. To update your copy:

Pull the new release and deploy

git pull
SERVER_URL=<server address> SITE_URL=<site address> ./selfhost/deploy.sh

Database changes and the new catalog apply when the server restarts. If the release notes say the extension changed, download it again from Connect and reload it in Chrome.

Troubleshooting#

ProblemFix
The build fails with a Node or Wasp version errorCheck node --version (24.14 or newer) and wasp version (0.25.0).
The server keeps restartingOpen its logs in Railway. The first error lines name any missing or misspelled variable.
"Sign-up is limited to approved emails"Add the address to ADMIN_EMAILS or SELF_HOST_ALLOWED_EMAILS. It applies when Railway restarts the server.
The extension won't connectDownload it again from Connect on your own site, then click Connect Chrome.
Launches don't write copy or fill formsCheck the three ROCKET_LAUNCH_TEXT_AI variables and your OpenRouter balance.
Forgot your passwordPassword reset emails need the Plunk variables. Set them, then use Forgot password on the login page.

License in plain words#

  • You can run it on as many servers as your organization needs, change it, and rebrand it.
  • You can launch your own products and run launches for your clients, as long as you operate it yourself.
  • You can't resell or share the code, or offer it as a product other people log in to.
  • You can't publish the directory catalog or playbooks as a list or dataset.

The full license is in LICENSE.md in the repository. Questions go to support@agentlaun.ch.

Frequently asked questions

What does it cost to run a self-hosted copy?

The license is $149 once. After that you pay Railway for hosting, usually a few dollars a month, and your AI provider for what your launches use. There is no AgentLaunch subscription.

Is the self-hosted version fully automatic?

No, it works exactly like the hosted version. It fills forms in your Chrome and submits complete free listings, and you step in for logins, CAPTCHAs, payments and approvals on major launch platforms.

How do I get the code after I buy?

Log in to agentlaun.ch, open your Account page, enter your GitHub username and click Send invite. Accept the invitation on GitHub and clone the repository.

How do updates work?

We publish a new release with updated directory data about every three months, for as long as AgentLaunch is maintained. Run git pull and the deploy script, and the new catalog loads when the server restarts.

Can I self-host AgentLaunch on my own domain?

Yes. Deploy to Railway, add your domain to the site service, set WASP_WEB_CLIENT_URL to it and deploy again. The Chrome extension you download from your site works with that domain.

Do I need an email service to self-host?

No. Sign-up and login work without email. Plunk is optional and only adds email alerts and password resets.

Which AI model does self-hosted AgentLaunch use?

Any OpenAI-compatible API. It is tested with openai/gpt-4.1-mini through OpenRouter, and you pay your provider directly.

Is there setup support?

The written guide covers Railway from start to finish. There is no one-to-one setup support, and running it on other platforms is up to you. License questions go to support@agentlaun.ch.

Can I move my hosted launches to a self-hosted copy?

No. Hosted launches stay on agentlaun.ch, and a self-hosted copy starts with an empty database and the full directory catalog.

Can I run launches for clients?

Yes, as long as you operate AgentLaunch yourself. You can't give clients their own logins or resell the software.

Need a hand?

Email support@agentlaun.ch. Don’t include passwords, verification codes or connection keys.