The simplest reliable way to self-host Paperclip is to run its Docker Compose quickstart on a small Linux VPS, keep the application port private, place Caddy or Nginx in front for HTTPS, and persist the Paperclip data directory on a durable volume. For a production installation, use a dedicated non-administrative user or container, authenticated deployment mode, a public URL, provider-managed PostgreSQL, and scheduled backups.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
What you are actually deploying
Paperclip is a web application that needs four operational pieces on a VPS:
As an Amazon Associate I earn from qualifying purchases.
Free tools Windows power users keep installed
One-click scans. No signup required.
- The application server: Paperclip listens on port 3100 by default.
- Persistent storage: embedded PostgreSQL data, uploaded assets, the local secrets key, and agent workspace data must survive restarts and container replacement.
- A database: the onboarding-style installation can use embedded PostgreSQL; the production VPS architecture places PostgreSQL outside the application container.
- A public entry point: a domain name and a reverse proxy provide TLS on ports 80 and 443. Paperclip should not be exposed directly on port 3100.
A small Linux VPS is sufficient for a low-traffic installation. The official examples use Ubuntu 24.04 and list AWS, GCP, DigitalOcean, Hetzner, Linode, and Vultr as possible providers. Whichever provider you choose, open inbound TCP 22 for SSH and TCP 80 and 443 for HTTP and HTTPS. Keep 3100 bound to the server or private network so the public internet reaches Paperclip only through the proxy.
“Both paths end up in the same place: a running Paperclip instance and the onboarding flow where you create your first company, first agent, and first piece of work.” — Paperclip Docs, installation guide
#1 Best Overall
SaleGaoye Blue Light Blocking Glasses
- BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
- EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
- COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
- LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
- WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
Choose Docker or a direct installation
Docker is the better default when the VPS should remain minimal: the host needs Docker rather than a Node.js toolchain, and the application can be upgraded or rolled back as an image. A direct installation has fewer container layers and can be convenient when you already operate Node services, but you must manage the runtime, package manager, service process, and application-owned data yourself.
| Decision point | Docker deployment | Direct VPS deployment |
|---|---|---|
| Host prerequisites | Docker Engine and Docker Compose | Ubuntu 24.04 example, Node.js 24.11.0 or newer, and pnpm |
| Database model | Embedded PostgreSQL for a quickstart; hosted PostgreSQL for production | Embedded PostgreSQL for the local-style onboarding path; hosted PostgreSQL in the production architecture |
| Persistence | Explicit bind mount, normally ./data/docker-paperclip or a chosen PAPERCLIP_DATA_DIR |
A service-owned Paperclip data directory that must be backed up and retained across upgrades |
| Public access | Reverse proxy forwards HTTPS traffic to the private Paperclip port | Reverse proxy forwards HTTPS traffic to the local Paperclip process |
| Upgrade and rollback | Pull or build a different image and recreate the container while retaining the bind mount | Update the application and packages under the dedicated user, retaining the data directory |
| Resource contention | Container limits and host monitoring help isolate the service, but agent runners still consume host CPU and memory | Application and runners share the host directly; move runners to separate machines when busy-agent heartbeats contend with the API |
For a first internet-facing instance, Docker gives the shortest path from a clean VPS to a repeatable deployment. The direct path is reasonable when you need host-level process management or already have a standardized Node.js operations workflow.
Prepare the VPS and DNS
Provision the host
- Create a small Linux VPS. The documented examples use Ubuntu 24.04.
- Assign a stable public address and update the operating system before installing Paperclip.
- Allow inbound TCP 22 for SSH and TCP 80 and 443 for the reverse proxy. Do not open TCP 3100 to the internet.
- Create a DNS record such as
paperclip.example.compointing to the VPS address. Wait for the record to resolve before requesting a certificate.
The exact compute size depends on the number of simultaneous users and agent runners. A small instance is appropriate for a low-traffic start, but agent processes can become the dominant CPU and memory consumers. If API requests become slow while agents are active, monitor runner load first; the VPS guide recommends moving runners to separate machines once their heartbeats contend with the API.
Decide who owns the installation
For a direct installation, create a dedicated paperclip user and switch to it before onboarding. The embedded PostgreSQL component refuses to run as an administrative user, so running onboarding as root or another administrator is not a supported shortcut. In Docker, keep the project and bind-mounted data under an account with only the permissions the container needs, and protect the host directory from other users.
Run the Docker quickstart
Start the documented Compose configuration
From the Paperclip project root, run the official quickstart:
docker compose -f docker/docker-compose.quickstart.yml up --build
The default address is http://localhost:3100. The Compose configuration publishes host port 3100 and stores data in ./data/docker-paperclip unless you override those settings.
Change the port or data directory when necessary
Use PAPERCLIP_PORT to choose another host port and PAPERCLIP_DATA_DIR to choose another data location. A different host port is useful when another service already occupies 3100; it does not replace the need for a reverse proxy. The data-directory override should point to a durable filesystem, not a temporary directory or an ephemeral container layer.
Rank #2
- WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
- AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
- PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
- ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
- COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed
After the containers start, open the local URL and complete onboarding: create the first company, first agent, and first piece of work. If you are connecting through a proxy, perform this flow through the final HTTPS hostname so the generated links and authentication callbacks use the address people will actually visit.
Build a production image manually
The Docker reference also documents a manual production image. Build it with:
docker build --target production .
Run the image with a host directory mounted at /paperclip, set HOST=0.0.0.0, and set PAPERCLIP_HOME=/paperclip. The mount is the durable boundary for the installation: replacing the container without preserving it creates a new, empty instance.
Recommended Free Tools
Make a Docker deployment suitable for the public internet
Set deployment and URL variables
For a public authenticated deployment, configure:
PAPERCLIP_DEPLOYMENT_MODE=authenticatedto require the supported authentication flow.- An exposure value of
publicwhen the instance is intentionally internet-facing. PAPERCLIP_PUBLIC_URL=https://your-hostname, replacing the example with the final HTTPS origin.
The public URL is not cosmetic. The Docker reference says Paperclip uses it for the authentication base URL, Better Auth defaults, bootstrap invite URL defaults, and hostname allowlist defaults. Set it before inviting users, and use the same scheme and hostname that the reverse proxy presents. A mismatch between the configured URL and the browser-facing URL can produce failed sign-ins, invalid invite links, or rejected hostnames.
Keep port 3100 private
Bind Paperclip to localhost or the private container network and have Caddy or Nginx accept public traffic on 443. If you publish 3100 directly, clients can bypass the TLS and authentication assumptions you configured at the proxy boundary. The documented architecture is that Paperclip binds locally and Nginx is what the public internet talks to.
Put Caddy or Nginx in front for HTTPS
- Point the DNS record at the VPS and confirm it resolves from outside the server.
- Configure Caddy or Nginx to listen on ports 80 and 443 for the Paperclip hostname.
- Proxy requests to the private Paperclip address and port, normally
127.0.0.1:3100for a host process or the Docker service address for Compose. - Enable automatic certificate management in the proxy, or install and renew certificates using the proxy’s supported method.
- Set
PAPERCLIP_PUBLIC_URLto the resultinghttps://hostname and restart Paperclip after changing environment variables.
Port 80 is needed for normal HTTP handling and certificate issuance or redirects; port 443 carries encrypted application traffic. Do not request a certificate before DNS points to the VPS, because certificate validation must reach the intended host.
Verify the finished route with:
curl https://your-hostname/api/health
A healthy instance returns {"status":"ok"}. If the check fails, test the private Paperclip endpoint from the VPS first, then inspect the proxy’s upstream and certificate configuration.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Rank #3
- Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
- Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
- Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
- ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
- Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
Understand persistence before you create real data
The Docker data directory is not just a cache. The official documentation says the bind-mounted location contains:
- embedded PostgreSQL data;
- uploaded assets;
- the local secrets key; and
- agent workspace data.
Removing the mount starts the instance fresh. That means a container rebuild, image update, or host migration is safe only when the mounted directory has been retained and restored. Store it on durable block storage, restrict its permissions, and include it in your backup plan. Never commit the directory or its secrets to a source-control repository.
Use hosted PostgreSQL for production
The VPS production architecture places PostgreSQL outside the Paperclip application container and keeps uploads, secrets, and instance configuration on the mounted PAPERCLIP_HOME volume. Hosted PostgreSQL examples in the guide include Supabase, Neon, and Fly Postgres. This separation lets the database provider handle database availability and backups while your VPS runs the application and agent workloads.
Keep database credentials outside the Compose file when possible, inject them through the deployment environment or a secrets facility, and limit database network access to the VPS or private network. A hosted database does not remove the need to back up Paperclip’s mounted files: uploads, the local secrets key, and workspaces are not replaced by a PostgreSQL snapshot.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteFor a small test installation, embedded PostgreSQL is convenient because onboarding initializes it locally. For a production company instance, use the external-database architecture and verify that your backup and restore procedure covers both the database and the Paperclip volume.
Connect agent providers and adapters
The Docker image includes local Claude and Codex command-line tools, but the binaries alone do not authenticate an agent. Provide OPENAI_API_KEY and/or ANTHROPIC_API_KEY, or connect a subscription or API key through Apps → Connections in Paperclip.
Without provider credentials, the web server can start normally while adapter checks report missing prerequisites. Treat that as an expected configuration failure rather than evidence that the VPS or reverse proxy is broken. After adding credentials, rerun the adapter check and launch a small test task before assigning production work.
Rank #4
- Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
- Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
- 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
- Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
- USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
Keep provider keys, authentication signing keys, and database passwords out of version control and out of publicly readable environment files. Rotate a key if it has appeared in shell history, logs, a repository, or an image layer.
Operate and back up the instance
Health and logs
Monitor /api/health for liveness from an external monitor and from the VPS. For a Compose deployment, follow application output with:
docker logs -f paperclip
If your container has a different name, use the name shown by docker compose ps. Health monitoring catches a stopped process; logs explain configuration, database, adapter, or migration errors.
Backups
- Enable the database provider’s managed backups when using hosted PostgreSQL.
- Schedule recurring exports for company data and uploaded files.
- Back up the mounted Paperclip directory, including the local secrets key and agent workspaces.
- Keep at least one backup outside the VPS so disk loss or a provider outage does not remove both the live copy and the backup.
- Perform a restore test on a separate host. A backup that has never been restored is only an assumption.
The VPS guide also recommends reviewing Paperclip’s diagnostic command for configuration drift. Run diagnostics after upgrades, environment changes, or migrations and resolve warnings before they become outages.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsUpgrade without losing the instance
Docker workflow
- Record the current image tag, environment values, Compose file, and a recent backup.
- Check the Paperclip release notes and Docker reference for changed runtime requirements or authentication defaults.
- Stop or recreate the application while keeping the host bind mount and database volume intact.
- Start the new image and watch
docker logs -f paperclipfor startup or migration errors. - Run
curl https://your-hostname/api/health, sign in through the HTTPS hostname, and verify an existing company, asset, and agent workspace.
Rollback means redeploying the previous image or tag with the same data directory. Do not delete or reinitialize the volume during a rollback; doing so creates a fresh instance rather than restoring the old one.
Direct-installation workflow
For the non-Docker route, update the application as the dedicated paperclip user, retain the service-owned data directory, and restart the process through your host service manager. Keep the Node.js version at 24.11.0 or newer as required by the guide, and verify the onboarding and diagnostic commands after package changes. Because the direct route has no container boundary, document the exact Node.js, pnpm, environment, service, and proxy versions used on the host so a replacement VPS can be rebuilt consistently.
Install Paperclip directly on the VPS
Choose this path when you do not want Docker or need Paperclip integrated with an existing host-level process setup.
Best Value
- Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
- Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
- Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
- Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
- Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
- Provision Ubuntu 24.04 or a comparable supported Linux environment and open only SSH, HTTP, and HTTPS at the firewall.
- Create the dedicated
paperclipuser. Do not run the embedded PostgreSQL-backed onboarding as an administrative user. - Install Node.js 24.11.0 or newer and pnpm while logged in as the appropriate administrator, then switch to
paperclip. - Download or check out the Paperclip project into a directory owned by
paperclip. - Run the onboarding command from the official installation guide as
paperclip. It initializes configuration and the embedded database for the local-style installation. - Configure the process to bind locally, then place Caddy or Nginx in front of it for HTTPS on the domain.
- Move to hosted PostgreSQL and the external-database production architecture before the instance becomes business-critical.
The onboarding command’s exact syntax is version-specific; use the command in the current Paperclip installation guide rather than copying an old command from an unrelated release. The required invariant is that onboarding runs under the dedicated user with Node.js 24.11.0 or newer and pnpm available.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Cost expectations for a small instance
Paperclip Docs’ April 27, 2026 example estimates approximately $5–35 per month for a small deployment. These are planning figures, not guarantees; verify current provider rates before provisioning.
| Component | April 2026 example | Qualification |
|---|---|---|
| Compute | About $5–10 per month | Small VPS estimate; actual price depends on provider, region, and size. |
| PostgreSQL | $0–25 per month | Range reflects a small hosted database or an included/free tier where available; limits and current pricing vary. |
| 5 GB volume | About $1 per month on Fly.io | Illustrative storage price from the guide, not a universal rate. |
| Bandwidth | Usually low or included | Agent activity, uploads, backups, and provider policies can change the bill. |
The estimate excludes your time, domain registration, larger disks, extra runner machines, premium database capacity, and recovery infrastructure. Treat it as a starting budget for a lightly used installation.
Troubleshoot the failures you are most likely to see
The site is unreachable but the container is running
- Check that DNS resolves to the VPS address.
- Confirm ports 80 and 443 are allowed through the provider firewall and host firewall.
- Test the application privately on the VPS and verify the proxy upstream points to the actual Paperclip port.
- Check proxy logs and certificate status, then run the HTTPS health request.
Authentication redirects to the wrong host
Check PAPERCLIP_PUBLIC_URL. It must be the exact browser-facing HTTPS origin, including the correct hostname, and the deployment must use authenticated mode. Restart the service after changing the environment.
The health endpoint works but an adapter is unavailable
The server is alive, but the provider prerequisite is missing. Add the required OpenAI or Anthropic credential, or complete the connection under Apps → Connections, then rerun adapter checks.
Data disappeared after a rebuild
The container was recreated without its bind mount, or PAPERCLIP_DATA_DIR pointed to a temporary location. Stop the service, restore the original Paperclip directory from backup, and redeploy with the same mount. Do not initialize a new instance over the only surviving copy.
The API slows down when agents run
Inspect CPU and memory use and the agent heartbeats. Runners can share the VPS initially, but the guide recommends moving them to separate machines when busy agents contend with the API. Increasing only the web container’s limits will not solve host-wide resource exhaustion.
Pre-launch checklist
- Ubuntu 24.04 or another supported Linux host is patched.
- Only SSH, HTTP, and HTTPS are publicly open; port 3100 is private.
- A dedicated
paperclipuser owns a direct installation. - Docker uses an explicit durable bind mount, or the direct installation has a documented service-owned data directory.
PAPERCLIP_DEPLOYMENT_MODE=authenticatedand the intended public exposure are set.PAPERCLIP_PUBLIC_URLexactly matches the HTTPS hostname.- DNS resolves before certificate issuance.
- Hosted PostgreSQL is configured for production, with provider backups enabled.
- Uploaded assets, secrets, configuration, and workspaces are included in backups.
- Provider credentials pass adapter checks.
curl https://your-hostname/api/healthreturns{"status":"ok"}.- You have tested a restore and recorded the image, runtime, environment, and proxy versions.
For most readers, the practical choice is Docker Compose on a small VPS, a persistent Paperclip volume, hosted PostgreSQL once the instance matters, and Caddy or Nginx terminating HTTPS. That arrangement keeps the host simple while preserving a clear path to separate runners and stronger database operations as usage grows.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.




