Supported runtimes
Percher config currently uses node, python, static, or docker. Use Dockerfile-based projects for Go, Rust, PHP, Ruby, Java, .NET, Elixir, and other runtimes.
Configuration — percher.toml
[app]
name = "my-app" # URL: my-app.percher.run
runtime = "node" # auto-detected by Nixpacks
[web]
port = 3000 # your app's listen port
health = "/health" # health check endpoint (must return 200)
[resources]
memory = "512mb" # container memory limit (optional)
cpu = 0.5 # CPU cores (optional)
[data]
mode = "pocketbase" # optional: provisions a managed PocketBase database
Deploy commands
bunx percher login # authenticate (opens browser)
bunx percher create app --template node
bunx percher init # generate percher.toml
bunx percher push # build and deploy
bunx percher push --preview
bunx percher logs # view runtime logs
bunx percher env set K=V # set environment variable
bunx percher data # inspect PocketBase data
bunx percher doctor # health diagnostics
bunx percher domains add myapp.com
bunx percher versions # list deploy history
bunx percher rollback ID # roll back to a previous version
MCP integration
AI assistants can deploy and manage apps via MCP (Model Context Protocol). Add the Percher MCP server to your assistant's configuration:
{
"mcpServers": {
"percher": {
"command": "bunx",
"args": ["percher-mcp"]
}
}
}Available tools: percher_init, percher_push, percher_logs, percher_env_set, percher_env_unset, percher_env_list, percher_versions, percher_rollback, percher_doctor, percher_data, percher_create_from_template, percher_domain_add, percher_domain_verify, percher_domain_list, percher_domain_remove, percher_whoami, and percher_open.
Managed database
Apps that need a database can add [data] mode = "pocketbase" to percher.toml. Percher provisions a PocketBase sidecar automatically and injects POCKETBASE_URL, POCKETBASE_PUBLIC_URL, and VITE_POCKETBASE_URL. PocketBase provides auth, REST API, file storage, and realtime subscriptions out of the box.