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:
- Receives your code or binary
- Installs dependencies if needed (
npm install,pip install) - Runs any build or migration scripts you've configured
- Generates an nginx reverse proxy config for your app
- Creates a systemd service to manage your app process
- Sets up cgroup slices for CPU and memory limits
- Provisions an SSL certificate via Let's Encrypt (if you set a domain)
- 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.
- Go to Templates in the dashboard
- Click INSTALL
- 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.

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¶
- Configuration — The
plitho.ymlreference - Deployment — All deployment methods in detail
- Features — Apps, databases, cache, templates
- SSH Keys — Set up git push and SSH access