Plotra Docs
Who it is for

Self-hosters

For people who run Plotra on their own server: where the instructions are, and what differs from the hosted version: no plans, no plan limits, and your own model for AI.

Plotra is open source (AGPL-3.0), and all of it runs on your own machine. You get the same app as the hosted version, with every view and module, on a server you control: your database, your file store, your backups. There are no plans and nothing to pay Plotra. In exchange, Docker, a domain, TLS, backups and upgrades are yours to do.

If you only want to write, the hosted version has nothing to install and a Free plan with every feature. See Plans and billing.

Set up

  1. Check the requirements. Docker with Compose v2.20 or newer, about 2 GB of free memory to build the app image and 1 GB to run the stack, git and openssl. See Requirements.
  2. Start the stack. Clone the repository, copy docker/.env.example to .env, fill in the secrets and run one compose command. It starts the app, the collab server, Postgres and an S3-compatible file store. See Quick start.
  3. Put it behind a proxy. For anything other than http://localhost you need a domain and a reverse proxy that does TLS. See Reverse proxy and TLS.
  4. Decide about email. With SMTP_URL set, invitations and sharing notices are emailed. Without it, each link is written to the app's log and you pass it on yourself. See Sign-in and email.
  5. Decide about AI. Give the whole instance one model, or let each person add their own key. See AI.
  6. Set up backups before anyone writes. See Backups.

Typical workflow

  1. Create your account and workspace. The first screen is the same as on the hosted version. See Getting started.
  2. Invite the people who will use it. Workspace invitations and project sharing work as they do on the hosted version. See Working together.
  3. Turn AI on where it is wanted. The workspace switch and each project's switch are still off by default. See Turning it on.
  4. Back up on a schedule. Dump the database and archive the file store. Rehearse one restore into a scratch instance before you rely on it.
  5. Upgrade. Back up the database, then git pull and docker compose up -d --build. Migrations run before the new app starts. See Upgrading.

What differs from the hosted version

HostedSelf-hosted
Plans and billingFree and ProNone. No Plan & billing tab.
Projects per workspace10 on FreeNo limit
Storage per workspace50 MB on Free, 50 GB on ProNo limit
Workspace members3 on Free, 25 on ProNo limit
People one project can be shared with5 on Free, 200 on Pro200
One uploaded file4 MB100 MB with a file store set up, 10 MB without
All files in one project2 GB on Free2 GB with a file store, 100 MB without
AIYour own key or a local model; hosted AI on ProYour own key, or a model the server gives everyone. No credits.
A local modelCalled from your browserCalled by the server, with AI_ALLOW_PRIVATE_URLS=true
Sign-in with GoogleYesOnly if you add Google credentials
EmailSentOnly with SMTP_URL
Backups, upgrades, TLSDone for youYours

Everything in the Guide, the Modules and the Reference applies to your instance. Where a page gives a Free or Pro number, read "no limit" for projects, storage and members.

ForRead
The compose file, every setting, troubleshootingSelf-hosting with Docker
What is in a backup and how to restoreBackups
Running on your own PostgresUsing Neon or another Postgres
What the bundled collab server can and can't doThe self-hosted collab server and its limits
How the hosted version is put together, service by serviceDeploying the hosted version
Backups on that setupBackups
Charging the people on your instancePlans and billing
Giving everyone a model, or letting each person bring a keyWhose model it runs on
Notification emails on your own serverIf you host Plotra yourself
Running the workspace once it is upWorkspace owners

Use Self-hosting for one server with Docker. Deploying is the checklist for the hosted version's own setup, on Vercel, Cloudflare, Neon and R2; follow it if you want that shape.

Things to know

  • Anyone who can reach the instance can sign up. They get their own workspace and see nothing of yours. If you don't want strangers on it, don't expose it to the internet, or put your proxy's access control in front of it.
  • Rate limits and fixed caps still apply. The limits on invitations, shares, comments, imports and the like are the same on every server. Only the plan limits are gone. See Rate limits.
  • Saving a personal AI key needs AI_KEY_SECRET on the server. The quick start generates it; without it, people can only use the instance's model.
  • Password accounts are not email-verified, so a project shared with one is opened through the emailed link, or the link from your log.
  • Notification emails have a fixed budget: 12 an hour to one person and 60 a day from the whole server. Past it, the notification still shows under the bell.
  • The bundled collab server is one process on one machine. It can't be scaled out by running more copies, and it does no TLS itself.
  • There are no tagged releases yet. git pull takes the current master; read the commit log before upgrading.
  • Plans are optional, not absent. Setting CREEM_API_KEY switches Free and Pro on for your instance, with the hosted limits.
  • Lose the .env and saved AI keys can't be decrypted, and every session ends. Back it up with the data.
  • To change the code, see CONTRIBUTING.md.

On this page