Templates
Deploy an open-source app or a starter in one click, with the database, Redis and disk it needs.
What a template is
A template is an app Deplane knows how to deploy: a self-hosted open-source app (such as analytics, monitoring or a wiki), or a starter for a common stack, a static site or a small app with Postgres. The gallery shows the templates available today. Deploying one creates an ordinary app in your team. After that it is yours like any other app: scale it, add a domain, read its logs. Deplane does not update it to newer versions of the template.
Browse them on the New app page of the dashboard, at deplane.cloud/templates, or with deplane templates list.
What it checks first
Each template says what it needs: memory (its size, plus its database and its Redis if it has them; a Redis counts 256 MB), one app, a Postgres database, a Redis or a 5 GB disk. Deplane compares that with your plan and with what your team already uses:
- If your plan could never hold it, for example "Needs 2.5 GB memory; Beta has 1.5 GB", the template asks you to upgrade (template_needs_upgrade).
- If your plan could hold it but your free room cannot, for example "Needs 1 GB; you have 512 MB free", free some room first (template_no_room).
What a deploy does
You choose only the app's name. Deplane then:
- creates the app with the template's size, port and health check;
- creates a Postgres database named after the app, waits until it is ready and attaches it (as
DATABASE_URL); - creates a Redis named after the app (
APP-redis), waits until it is ready and attaches it (asREDIS_URL); - adds the disk;
- sets the app's settings: random secrets are generated once for your app and are never shown (except the admin sign-in, shown once; see below), and values such as the app's address, the database's host or the Redis's password are filled in;
- builds the app from Deplane's own copy of the template and rolls it out.
Each step happens only if the template needs it: the gallery shows Postgres, Redis and Disk badges for what a template makes.
You see each step as it happens. At the end you get the address and what to do first.
The admin sign-in
An app that is live but not set up yet belongs to whoever opens it first, and its address is public within seconds: every certificate Deplane gets is published in Certificate Transparency logs, which bots watch for fresh installers. So no template in the gallery waits for its first visitor:
- Grafana, Listmonk, Gitea and Vaultwarden get their administrator at deploy time. Deplane generates a random password (for Vaultwarden, the admin token of its
/adminpage) and shows it once, to you, when the deploy is done: press Show the admin sign-in on the deploy in the dashboard, or read it fromdeplane launch --template(ordeplane templates credentials DEPLOY-IDfor a deploy you started with--no-waitor from an AI tool). Copy it then: Deplane does not show it again (you can ask once more within 10 minutes, in case the first answer was lost), and it is never logged. For a deploy started by a CI token, a team owner can see it. Gitea starts with registration off, and Vaultwarden with sign-ups off (invite yourself from/admin). - Templates whose app cannot be set up this way are not offered: Umami (it starts with the password
umami), Docmost, Ghostfolio, Metabase, Wiki.js, Actual Budget, Uptime Kuma, Memos and Vikunja (their first visitor creates the owner account). They come back once Deplane can hold the app for you until you have set it up. If your team runs an app deployed from one of them, it gets a one-time notice saying what to check.
A template whose sign-in needs care carries a warning, shown on the gallery card, on the template's page, before you press Deploy in the dashboard, in deplane templates show and by deplane launch --template before the deploy starts.
Template app names get a random 10-character ending (for example grafana-k3x9q2m7wd), so the address cannot be guessed.
Your team runs one template deploy at a time. Build minutes and your plan's limits count as if you had done each step yourself.
When a step fails
Everything made so far is kept and listed. Retry (deplane templates retry DEPLOY-ID) continues from the step that failed, with the same generated secrets. Delete all of it (deplane templates delete DEPLOY-ID) deletes the app (with its disk), the database and the Redis this deploy made, and nothing else; it asks for your passkey, like other deletions. A database or Redis that another app uses by then is kept, and the result says so.
If your team already has a database or a Redis with the name the deploy would give it, the deploy is refused before it starts (database_exists, redis_exists); pick another app name. If the Redis cannot be created, the deploy fails at that step (redis_failed); Retry makes a fresh one.
How a template asks for a database or a Redis
In a template's template.json, "postgres": {"size": "small"} asks for a database and "redis": {} for a Redis (one size, 256 MB). The app's settings can then use references that are filled in at the "Set secrets" step and stored as secrets, never shown:
${app.url},${app.host}: the app's address;${secret:N}: a random secret of N characters (16 to 128), generated once;${postgres.url},${postgres.host},${postgres.port},${postgres.user},${postgres.password},${postgres.database};${redis.url},${redis.host},${redis.port},${redis.password}.
A template may not set DATABASE_URL or REDIS_URL itself; attaching does. An app that wants the Redis under another name uses, for example, "CACHE_URL": "${redis.url}". Variables built this way are copies: if you detach or destroy the Redis, REDIS_URL is removed but they keep the old value, so change or remove them yourself (deplane secrets set or deplane secrets unset).
Images and licences
Open-source apps are deployed from their official images, copied into Deplane's own registry and pinned to an exact version, so a deploy never depends on Docker Hub or GitHub and the image cannot change underneath it. Deplane does not change the apps' code; it adjusts file ownership and settings so they run safely as an unprivileged user, and a few templates add a start command or a small start wrapper that sets variables and then runs the app's own entrypoint. Each template's page says how its image was made. Each template's page shows its licence, its source and the exact version. Each app is a trademark of its owner; Deplane is not affiliated with or endorsed by them. The gallery shows each project's own logo, unmodified, as published in its official repository; logos are their owners' trademarks too. Projects whose trademark policy does not allow this use or that publish no logo fit for a small tile, and starters, are shown with two letters instead.
Link a Deploy button
https://deplane.cloud/new?template=NAME opens the New app page with that template selected, after sign-in. Put it in a README.
This page is also available as Markdown. AI agents can start at /llms.txt.