| --- |
| title: Setup Commands |
| summary: Onboard, run, doctor, and configure |
| --- |
| |
| Instance setup and diagnostics commands. |
|
|
| Examples on this page use the installed `penclip` command. If you are running without installing first, prefix the command with `npx`. |
|
|
| ## `penclip run` |
|
|
| One-command bootstrap and start: |
|
|
| ```sh |
| penclip run |
| ``` |
|
|
| Does: |
|
|
| 1. Auto-onboards if config is missing |
| 2. Runs `penclip doctor` with repair enabled |
| 3. Starts the server when checks pass |
|
|
| Choose a specific instance: |
|
|
| ```sh |
| penclip run --instance dev |
| ``` |
|
|
| ## `penclip onboard` |
|
|
| Interactive first-time setup: |
|
|
| ```sh |
| penclip onboard |
| ``` |
|
|
| If Paperclip is already configured, rerunning `onboard` keeps the existing config in place. Use `penclip configure` to change settings on an existing install. |
|
|
| First prompt: |
|
|
| 1. `Quickstart` (recommended): local defaults (embedded database, no LLM provider, local disk storage, default secrets) |
| 2. `Advanced setup`: full interactive configuration |
|
|
| Start immediately after onboarding: |
|
|
| ```sh |
| penclip onboard --run |
| ``` |
|
|
| Non-interactive defaults + immediate start (opens browser on server listen): |
|
|
| ```sh |
| penclip onboard --yes |
| ``` |
|
|
| On an existing install, `--yes` now preserves the current config and just starts Paperclip with that setup. |
|
|
| ## `penclip doctor` |
|
|
| Health checks with optional auto-repair: |
|
|
| ```sh |
| penclip doctor |
| penclip doctor --repair |
| ``` |
|
|
| Validates: |
|
|
| - Server configuration |
| - Database connectivity |
| - Secrets adapter configuration |
| - Storage configuration |
| - Missing key files |
|
|
| ## `penclip configure` |
|
|
| Update configuration sections: |
|
|
| ```sh |
| penclip configure --section server |
| penclip configure --section secrets |
| penclip configure --section storage |
| ``` |
|
|
| ## `penclip env` |
|
|
| Show resolved environment configuration: |
|
|
| ```sh |
| penclip env |
| ``` |
|
|
| This now includes bind-oriented deployment settings such as `PAPERCLIP_BIND` and `PAPERCLIP_BIND_HOST` when configured. |
|
|
| ## `penclip allowed-hostname` |
|
|
| Allow a private hostname for authenticated/private mode: |
|
|
| ```sh |
| penclip allowed-hostname my-tailscale-host |
| ``` |
|
|
| ## Local Storage Paths |
|
|
| | Data | Default Path | |
| |------|-------------| |
| | Config | `~/.paperclip/instances/default/config.json` | |
| | Database | `~/.paperclip/instances/default/db` | |
| | Logs | `~/.paperclip/instances/default/logs` | |
| | Storage | `~/.paperclip/instances/default/data/storage` | |
| | Secrets key | `~/.paperclip/instances/default/secrets/master.key` | |
|
|
| Override with: |
|
|
| ```sh |
| PAPERCLIP_HOME=/custom/home PAPERCLIP_INSTANCE_ID=dev penclip run |
| ``` |
|
|
| Or pass `--data-dir` directly on any command: |
|
|
| ```sh |
| penclip run --data-dir ./tmp/paperclip-dev |
| penclip doctor --data-dir ./tmp/paperclip-dev |
| ``` |
|
|