Self-Hosted Setup Guide
Last updated: September 20, 2026
This walks through getting your Self-Hosted License running on your own machine or server. It assumes no prior Docker or Postgres experience — if you get stuck, the README included in your download mirrors this same guide for offline reference.
1. Prerequisites
Install Docker Desktop (Windows and macOS) or Docker Engine + the Compose plugin (Linux) — this is the only prerequisite. Everything else (the database, authentication, storage, and the app itself) runs inside containers Docker manages for you, so you don't need Postgres, Node.js, or anything else installed separately.
2. Download and unzip
After purchasing, Lemon Squeezy emails you a download link for the release archive. Unzip it anywhere on your machine — this is the full source code plus a self-host/ folder containing everything needed to run it.
3. Run the setup script
Open a terminal in the unzipped folder and run:
- node self-host/setup.mjs
4. What the script does
It generates the security keys your instance needs, writes them to a .env file, starts every service with Docker Compose, waits for the database to be ready, and applies all database migrations automatically. This step can take a few minutes the first time, mostly spent downloading container images.
5. First-run: create your account and become the admin
Once the script finishes, open http://localhost:3000 (opens in a new tab), sign up for an account the normal way, and create your organization. Then, back in the terminal, run the command the script prints (it wraps npm run admin:grant) with your email address — this is what makes your account a platform administrator, since there's no self-service way to do this from inside the app itself, by design.
6. Email notifications
Out of the box, email notifications (invites, alerts) are logged to the container's console rather than actually sent — this matches the cloud product's own current behavior. If you want real emails, configure an SMTP provider by editing the SMTP_* variables in your .env file and restarting the app container; see the comments in self-host/.env.example for the exact variables.
7. Updating to a new release
Future updates are delivered the same way: download the new release archive from your Lemon Squeezy library, and follow the migration/upgrade notes included with that release. Your data lives in Docker's persistent volumes and is not affected by replacing the application code.
8. Support
A Self-Hosted License doesn't include ongoing support or maintenance unless separately agreed (see the Terms of Service). For setup questions, email hello@plumely.online.