Skip to content

Self-host anything in one click.

Push a repository or pick one of 510 templates. LogiStack builds it, gives it a domain with HTTPS, backs it up and shows you what every server is doing.

curl -fsSL get.logistack.dev | sudo bash
Read the docs

Ubuntu 22.04+ or Debian 12+, 2 GB of RAM. Free and open source, Apache 2.0.

14 of 14 services match their desired state

Checked 2 seconds ago on 3 servers

510 apps, one click each.

Pick an app from the catalog. LogiStack creates its services, volumes, domain and secrets, then asks only for what it can't generate, such as an admin email.

  • Databases in one click: Postgres, MySQL, MariaDB, MongoDB, Redis, libSQL
  • Passwords generated and stored encrypted, never shown in a log
  • Each template is a plain manifest you can open and edit
data
AllDatabasesAnalyticsAutomationStorage
  • PostgreSQLRelational database
  • libSQLSQLite over HTTP
  • MongoDBDocument store
  • RedisCache and queues
Postgres 17 · 1 service · 1 volume · daily backupDeploy

Your data, in the same dashboard.

No other self-hosted PaaS ships a table editor and an S3 browser. Edit a row in Postgres, run a query, upload a file to a bucket or hand out an access key, without installing pgAdmin or opening another login.

LogiStack database editor showing the customers table of a Postgres service, with column types, filters and inline editing
media / productsUpload
  • 2025
  • chair-oak.webp184 KB
  • chair-walnut.webp201 KB
  • catalog-2026.pdf4.2 MB
  • lamp-brass.webp96 KB
  • showroom.mp448.1 MB

Database editor

  • Edit cells, add rows and filter, with types shown on every column
  • Run SQL, read the schema as a diagram, dump and restore
  • Postgres, MySQL, MariaDB, MongoDB, Redis and libSQL
  • Roles with per-table permissions, created in a wizard

Storage browser

  • Buckets and folders, upload and bulk delete
  • Share links for single objects, without making the bucket public
  • Access keys you create and revoke per bucket
  • Connection details for any S3 client, copied in one click

Every server on one screen.

An agent runs on each node and dials the server over one outbound WebSocket. Logs, CPU, memory, disk and container health arrive from every machine, with no ports to open on the workers.

Control planeon node-1

  • apiREST, MCP, WebSocket
  • workerreconciler, builds, cron
  • postgresdesired state
  • redisqueues
  • caddyingress :443

wss :443 outboundagent dials in, nothing listens

  • node-110.0.0.2 · manager

    CPU42%
    Memory61%

    11 containers · agent connected

  • node-210.0.0.7 · worker

    CPU68%
    Memory74%

    9 containers · agent connected

  • node-310.0.0.9 · worker

    CPU91%
    Memory52%

    6 containers · agent connected

healthy above 85% CPU state store
CPU across 3 nodes, last hourpeak 91% on node-3 at 14:32
api · production · live
14:32:07node-1GET /v1/orders 200 18ms14:32:07node-2GET /v1/orders 200 21ms14:32:08node-3POST /v1/pay 502 3012ms14:32:08node-3upstream timeout, retry 114:32:09node-3POST /v1/pay 200 140ms14:32:10node-1GET /healthz 200 2ms14:32:11node-2GET /v1/me 200 9ms

Change it by hand. It changes back.

Postgres holds what should be running. A reconciler compares it with what Docker and Caddy report and fixes the difference. A container scaled from a shell at 3 a.m. goes back to the size you set.

$ docker service scale api=503:12, run by hand on node-2

Desired state

postgresapi replicas 2api memory 512Mapi.acme.dev → api

Reconciler

diff desired, actualapply the smallest fixwrite it to the audit log

Docker Engine API

unix socket, no shellservice api replicas 5 → 2

Caddy admin API

PATCH /config/apps/httproute unchanged, no reload
Actual state flows back to the reconciler on every change
How LogiStack compares with most self-hosted PaaS tools
SituationMost self-hosted PaaS toolsLogiStack
Someone edits a container by handMost tools: It stays edited until the next deployLogiStack: Reverted to the desired state
You add a domainMost tools: The proxy reloads or the app redeploysLogiStack: One admin API call, nothing restarts
A backup or cron job runsMost tools: On the control node, over SSHLogiStack: On the node that holds the data
You need SSO, roles and an audit logMost tools: Often a paid planLogiStack: In the open-source build, free

git push, then nothing else.

A push to main builds an image tagged with the deployment ID and starts the new tasks next to the old ones. Traffic moves when /healthz answers. If it never does, the old version keeps serving and you get a notification.

fix: retry the payment webhook on 5024f2c91a · main
Live in 38 s
  1. Build0:00buildkit, linux/amd64 and arm64registry/acme/api:4f2c91a
  2. Push0:213 new layers, 41 MB82% of layers from cache
  3. Start0:262 new tasks next to the old 2waiting for /healthz
  4. Switch0:37Caddy points api.acme.dev at the new tasksold tasks drain for 10 s
  5. Settle0:38desired state matches actual statenothing left to fix
logistack.yamlApply with logistack apply
project: acmeservices:  api:    source: github.com/acme/api   # builds on every push    replicas: 2    domains: [api.acme.dev]    env:      DATABASE_URL: ${{ db.url }}  db:    template: postgres    backups: { cron: "0 3 * * *", keep: 14, to: r2 }

The whole project in one file.

Export any project to YAML, keep it in Git and apply it to another server. The API, the CLI and the built-in MCP server read the same schema, so an AI agent can deploy for you and still has to show the diff first.

Included in every install.

Move over one service at a time.

Already running another self-hosted PaaS? The importer reads its projects, env vars and domains. It freezes the old setup, then moves services across when you say so. The old platform keeps serving until you switch it off.

  1. ImportProjects, env vars and domains, checked before anything changes
  2. Cut overOne service at a time, both platforms on the same network
  3. Roll backAny single service, until you switch the old setup off
Old platformfrozen, still servingLogiStack4 of 7 services moved

Questions people ask first.

What is a self-hosted PaaS?

A platform as a service you run on your own servers. You push code or pick an app, and it handles the build, the container, the domain, HTTPS, backups and logs, the way a hosted platform does, but on machines you control and pay for directly.

Is LogiStack free?

Yes. LogiStack is open source under the Apache 2.0 license, and every feature is in the build you install: SSO, custom roles, the audit log and multi-node clusters included. There is no paid edition. Sponsors fund development.

What do I need to run it?

One Linux server with Ubuntu 22.04 or later or Debian 12 or later, amd64 or arm64, 2 GB of RAM, 10 GB of free disk and ports 80 and 443 open. The installer sets up Docker and Swarm if they are missing.

Can it run my apps across more than one server?

Yes. LogiStack runs on Docker Swarm. Add a node from the dashboard and its agent connects back over one outbound WebSocket, so metrics, logs, backups and schedules work on every machine.

Which databases can I deploy?

Postgres, MySQL, MariaDB, MongoDB, Redis and libSQL in one click, each with a built-in editor for tables, keys and documents, scheduled encrypted backups and restore.

Can I move from another self-hosted PaaS?

Yes. The importer reads existing projects, env vars and domains, freezes the old setup and moves services one at a time. Each service can be rolled back until you switch the old platform off.

Does it work with AI coding agents?

LogiStack ships an MCP server that mirrors its REST API, so an agent such as Claude can create services, read logs and deploy with your permissions. Destructive tools ask for confirmation first.

One command, then a browser.

Runs on Ubuntu 22.04 or Debian 12 with 2 GB of RAM. The setup wizard asks for a domain and an email, then you deploy.

curl -fsSL get.logistack.dev | sudo bash