99 lines
1.8 KiB
Markdown
99 lines
1.8 KiB
Markdown
---
|
|
title: Local Development
|
|
summary: Set up Paperclip for local development
|
|
---
|
|
|
|
Run Paperclip locally with zero external dependencies.
|
|
|
|
## Prerequisites
|
|
|
|
- Node.js 20+
|
|
- pnpm 9+
|
|
|
|
## Start Dev Server
|
|
|
|
```sh
|
|
pnpm install
|
|
pnpm dev
|
|
```
|
|
|
|
This starts:
|
|
|
|
- **API server** at `http://localhost:3100`
|
|
- **UI** served by the API server in dev middleware mode (same origin)
|
|
|
|
No Docker or external database required. Paperclip uses embedded PostgreSQL automatically.
|
|
|
|
## One-Command Bootstrap
|
|
|
|
For a first-time install:
|
|
|
|
```sh
|
|
pnpm paperclipai run
|
|
```
|
|
|
|
This does:
|
|
|
|
1. Auto-onboards if config is missing
|
|
2. Runs `paperclipai doctor` with repair enabled
|
|
3. Starts the server when checks pass
|
|
|
|
## Tailscale/Private Auth Dev Mode
|
|
|
|
To run in `authenticated/private` mode for network access:
|
|
|
|
```sh
|
|
pnpm dev --tailscale-auth
|
|
```
|
|
|
|
This binds the server to `0.0.0.0` for private-network access.
|
|
|
|
Alias:
|
|
|
|
```sh
|
|
pnpm dev --authenticated-private
|
|
```
|
|
|
|
Allow additional private hostnames:
|
|
|
|
```sh
|
|
pnpm paperclipai allowed-hostname dotta-macbook-pro
|
|
```
|
|
|
|
For full setup and troubleshooting, see [Tailscale Private Access](/deploy/tailscale-private-access).
|
|
|
|
## Health Checks
|
|
|
|
```sh
|
|
curl http://localhost:3100/api/health
|
|
# -> {"status":"ok"}
|
|
|
|
curl http://localhost:3100/api/companies
|
|
# -> []
|
|
```
|
|
|
|
## Reset Dev Data
|
|
|
|
To wipe local data and start fresh:
|
|
|
|
```sh
|
|
rm -rf ~/.paperclip/instances/default/db
|
|
pnpm dev
|
|
```
|
|
|
|
## Data Locations
|
|
|
|
| Data | Path |
|
|
|------|------|
|
|
| Config | `~/.paperclip/instances/default/config.json` |
|
|
| Database | `~/.paperclip/instances/default/db` |
|
|
| Storage | `~/.paperclip/instances/default/data/storage` |
|
|
| Secrets key | `~/.paperclip/instances/default/secrets/master.key` |
|
|
| Logs | `~/.paperclip/instances/default/logs` |
|
|
|
|
Override with environment variables:
|
|
|
|
```sh
|
|
PAPERCLIP_HOME=/custom/path PAPERCLIP_INSTANCE_ID=dev pnpm paperclipai run
|
|
```
|