Skip to content

Directory Layout

Understanding where things live on the server helps with debugging and advanced usage.

Your App's Files

When you deploy, Plitho creates a directory for your app:

/home/plitho-{app}/
├── app/                 # Your git checkout (reset on every deploy)
├── data/                # Persistent storage (survives deploys)
├── env/                 # Dependencies (node_modules, virtualenv)
└── logs/                # Process output
    ├── web.log          # Main process logs
    └── worker.log       # Background process logs

app/

Your code lives here. On each deploy, this directory is reset to a fresh checkout of your git repo. Don't store anything here that you need to persist.

data/

Persistent storage that survives deploys. Use this for:

  • Uploaded files
  • SQLite databases
  • Any data that shouldn't be lost on deploy

This directory is yours — Plitho never touches it.

env/

Dependencies are installed here:

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

This directory is recreated on each deploy.

logs/

Process output from your app. Accessible via:

  • The dashboard (Apps → your app → Logs)
  • SSH: ssh -p 2222 plitho@your-server log myapp

Logs survive redeployments.

Server-Level Paths

These are managed by the server administrator:

Path Purpose
~/.plitho/plitho.db State database (apps, users, sessions)
~/.plitho/repos/{app}/ Bare git repositories
~/.plitho/acme/ SSL certificates
~/.plitho/ssh_host_ed25519_key SSH host key
~/.ssh/authorized_keys Your authorized deploy keys

Environment Variables

Variable Default Purpose
PLITHO_SSH_ADDR 0.0.0.0:2222 SSH server address
PLITHO_HTTP_ADDR 0.0.0.0:8080 Dashboard address