Run OwnPost locally
From your private copy to a local workspace. Take it one step at a time.
On this page
1. Get your private copy
After purchase, follow the GitHub access link in your Dodo receipt. Create an independent private copy for your own changes, then clone it to your machine.
A private fork is also possible where GitHub policy allows it, but it remains tied to the original repository’s access. Keep your own copy and backups.
2. Add local configuration
These local steps use Wrangler's local D1 and R2 emulation. To develop against your own libSQL database and S3 storage instead, run pnpm run deploy --target vps to prepare .env.production.local, fill it with dedicated development credentials, then use pnpm db:migrate:node and pnpm dev:node. Set APP_BASE_URL to your local origin.
Copy .dev.vars.example to .dev.vars. Generate four different secrets and set SESSION_PEPPER, MCP_TOKEN_PEPPER, CRON_SECRET, and SETUP_TOKEN. Leave optional Telegram settings empty until you connect it.
Use the command below once per secret. Keep .dev.vars out of Git.
The repository can contain the seller’s resource names and origin. Replace them with your own before any remote operation. Local and production configuration are separate.
3. Prepare the database and start
Open the local URL printed in your terminal. The app directs a new installation to /setup. The local database lives in Wrangler’s local state; it is separate from production.
4. Make it yours
Enter the SETUP_TOKEN you configured.
Choose an owner password with at least 12 characters.
Scan the authenticator QR code and verify a code.
Save the recovery codes somewhere safe outside the repository.
Set your timezone and writing preferences. A daily posting goal is optional.
This is a single-owner workspace. There is no public sign-up or team-account system.