Skip to content

Self-hosted Self-hosted

Self-hosted means you run the Truetask stack on your own machine and own the data directory. It is the same product as Truetask Cloud, with a few extra settings panes for the parts of the server you now control.

What you get

Every feature is available. There is no plan gating on a self-hosted instance: the entitlement check returns true for every feature when the instance runs in self-hosted mode, so groups, audit, sessions, API tokens, MCP, webhooks, S3 storage, time tracking and agent runs are all on.

Two things exist only here:

  • The AI Prompts dialog, which lets you edit the system prompts behind AI surfaces. It is deliberately never available on Cloud.
  • The server settings panes below.

Settings panes you only see here

PaneWhereWhat it covers
LicenseSettings > Site > LicenseYour license key, type and updates window
NetworkSettings > General > NetworkWhether Truetask may reach the internet at all
UnsplashSettings > General > UnsplashYour own Unsplash access key for note and task covers
SMTPSettings > Server > SMTPOutgoing mail
BackupsSettings > Server > BackupsThe backup schedule and the archive list
S3 StorageSettings > Server > S3 StorageUploads and backups on object storage
Data RetentionSettings > Server > Data RetentionHow long logs, sessions and trashed tasks are kept

Truetask Cloud has one pane you will not see: Plan, which handles billing. On a self-hosted instance that slot is taken by License instead. The two are mutually exclusive.

Truetask self-hosted License settings pane

The stack

A self-hosted instance is five containers on one Docker network.

ContainerImageWhat it does
<workspace>-caddycaddy:2-alpineReverse proxy. Routes every path to the right service and is the only container with a published port
<workspace>-pbtruetask-pbPocketBase. Database, authentication, realtime, file storage, scheduled jobs, and it serves the web app
<workspace>-apitruetask-apiFastAPI. The REST API at /v1, the automation engine, agent runs and push notifications
<workspace>-mcptruetask-mcpThe MCP server that AI tools connect to
<workspace>-yjstruetask-yjsThe collaboration server behind live note editing

The four Truetask images are pulled from the registry at git.truetask.dev, never built on your host. The compose project is named after your WORKSPACE value, so several instances can run side by side on one server.

Only PocketBase holds state. Everything persistent lives under the data directory you choose at install time: pb_data for the database and uploads, logs for the API's log files, and mcp_config. That directory sits outside the application directory on purpose, so an update can replace the application directory without touching your data.

Offline by design

Truetask does not phone home. There is no telemetry, no automatic update check and no license re-validation over the network after activation.

Outbound access is off until you turn it on. Allow features that reach the internet in Network is off by default, which blocks link previews for covers, Unsplash and the pages your agents read with fetch_url. A second switch, Allow private network targets, controls whether automations, webhooks and agent fetches may reach addresses on your own network. It is off too.

What you need

  • Docker and Docker Compose v2. The setup wizard checks for both and tells you which is missing.
  • A Gitea access token for git.truetask.dev with the read:packages scope, so Docker can pull the images.
  • OpenSSL, if you want the wizard to generate your push-notification keys and settings encryption key for you. It falls back to /dev/urandom for the encryption key and skips push notifications when OpenSSL is absent.
  • A hostname and a TLS terminator in front, unless you are only running this on localhost. The bundled Caddy container does not terminate TLS itself.

A license key is not needed to start. A fresh instance runs for a 3-day grace period, then every page redirects to the activation screen. See License.

Native desktop bundles

There are native macOS and Windows bundles that package the same services for a single machine, without Docker. They are still moving and are not documented here. Contact support if you want one.

The Truetask Desktop app is a different thing: it is a wrapper around a workspace you already run, and it works against Cloud and self-hosted alike.

Next

  • Install walks the setup wizard prompt by prompt.
  • License explains activation, the grace period and the updates window.
  • Updates covers moving to a new version.
  • Security is the hardening checklist for a production instance.

Frequently asked questions

What do I need to self-host Truetask?

A host with Docker and Docker Compose v2, and a Gitea access token for git.truetask.dev with the read:packages scope from your portal account. Clone the release repository, run ./build_env.sh, then docker compose up -d. See Install.

Do I need a license to run Truetask on my own server?

Yes. Without a key the instance runs for a 3-day grace period, then every page redirects to the Activate license page. Keys arrive by email and are pasted in Settings > Site > License with no restart. See License.

Is anything missing compared with Truetask Cloud?

No. Every feature is available and nothing is plan-gated. A self-hosted instance adds the License, Network, Unsplash, SMTP, Backups, S3 Storage and Data Retention panes, plus the AI Prompts dialog that Cloud never shows.

Does a self-hosted instance phone home?

No. Truetask does not check for updates and sends no data to external servers. Outbound fetching by features and agents stays off until an admin turns it on in the Network pane.

How do updates work?

Run truetask-update.sh in the release repository: it pulls the new compose file, pulls the images and restarts the stack. Your data directory and .env are untouched and migrations run at start. See Updates.

Truetask works the same on Truetask Cloud and on your own server. Pages and sections that apply to one model only are labelled.