Skip to content

Getting Started

Plitho is a platform that makes deploying common tools extremely easy. PocketBase, Django, Node.js apps, static sites — deploy them in minutes, not hours.

What Plitho Is

A self-contained deployment platform. You push your code (or a binary, or install a template), and Plitho handles everything else: process management, web server, SSL, logs, databases, and cache.

Plitho does not use containers. It uses native Linux features — systemd services, cgroup resource limits, and nginx reverse proxying. Your apps run as regular Linux processes, not inside Docker or any container runtime. This means:

  • No container overhead
  • Direct access to the filesystem
  • Standard Linux tooling (journalctl, systemctl, ssh)
  • Lightweight — runs on a single VPS

How It Works

When you deploy, Plitho:

  1. Receives your code or binary
  2. Installs dependencies if needed (npm install, pip install)
  3. Runs any build or migration scripts you've configured
  4. Generates an nginx reverse proxy config for your app
  5. Creates a systemd service to manage your app process
  6. Sets up cgroup slices for CPU and memory limits
  7. Provisions an SSL certificate via Let's Encrypt (if you set a domain)
  8. Starts your app

Your app runs as a native Linux process under a dedicated system user. No containers, no virtualization — just systemd keeping your app alive and nginx routing traffic to it.

Deploying Your First App

There are multiple ways to deploy. Pick whichever fits your workflow.

Option 1: Git Push

Best for source code (Node.js, Python). Push your repo and Plitho builds it.

# One-time setup
git remote add plitho ssh://plitho@your-server:2222/myapp

# Deploy
git push plitho main

Option 2: CLI Deploy

Best for compiled binaries (Go, Rust, C) and built static sites. Build locally, deploy the artifact.

# Build
go build -o server .

# Deploy
plitho deploy --at your-server -y ./server

Option 3: Template Deploy

Best for known apps (PocketBase, TrailBase, FileBrowser). One click in the dashboard — no plitho.yml needed.

  1. Go to Templates in the dashboard
  2. Click INSTALL
  3. Done

Option 4: Tar Deploy

Stream a tarball directly via SSH. For custom pipelines and automation.

tar -cf - plitho.yml | gzip | ssh -p 2222 your-server "tar-deploy myapp --stream"

All methods require your SSH key to be added to Plitho. See SSH Keys.

Your App's Filesystem

When you deploy, Plitho creates a dedicated Linux user for your app (plitho-{appname}). You can SSH into it to see what's going on:

ssh -p 2222 plitho@your-server

Then switch to the app user:

sudo su - plitho-myapp

You'll find these directories:

Directory What's there Survives deploys?
/app Your git checkout or deployed files No — reset on each deploy
/data Persistent storage (uploads, SQLite DBs, caches) Yes
/env Dependencies (node_modules/, Python virtualenv/) No — rebuilt on each deploy
/logs Process stdout/stderr output Yes

/app

Your code lives here. On each deploy, this is wiped and replaced with a fresh copy. Don't store anything here that you need to keep.

/data

Your persistent storage. This is yours — Plitho never touches it. Use it for:

  • Uploaded files
  • SQLite databases
  • Any state that should survive a redeploy

Access it in your code as the current working directory, or read/write files here directly.

/env

Dependencies are installed here automatically:

  • Node.js: node_modules/
  • Python: virtualenv/

This is recreated on each deploy. You don't manage it — Plitho handles it.

/logs

Process output from your app. You can also view these in the dashboard (Apps → your app → Logs) or via SSH:

ssh -p 2222 plitho@your-server log myapp

Logs survive redeployments — you can always see what your app outputted.

Accessing the Dashboard

Your server administrator will give you a dashboard URL and login credentials. Open it in your browser.

Login page

From the dashboard you can:

  • Deploy and manage apps
  • Create databases and cache instances
  • View logs and metrics
  • Manage SSH keys and users

What's Next