Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk10 min

How to Set Up Paperclip on Your Own VPS

A practical, production-minded guide to self-hosting Paperclip on your own VPS, covering Docker and bare-metal installs, HTTPS, persistent data, PostgreSQL, agent credentials, monitoring and recovery.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The simplest reliable deployment is a small Ubuntu 24.04 VPS running Paperclip in Docker, with its data directory on a persistent host volume and Caddy or Nginx terminating HTTPS. Keep Paperclip on private port 3100, set authenticated public deployment variables, provide PostgreSQL and agent-provider credentials, then verify /api/health. A bare-metal install is also possible when you prefer Node.js and pnpm over Docker.

What you need before installing Paperclip

Prepare these items before you start:

  • A Linux VPS. The official deployment examples use Ubuntu 24.04. A small instance is suitable for an initial installation, but agent runners can consume additional CPU and memory as workload grows.
  • A domain name whose DNS you control. Create an A record (and an AAAA record if you use IPv6) pointing to the VPS before requesting a TLS certificate.
  • Firewall rules allowing inbound TCP 22 for SSH and TCP 80 and 443 for HTTP and HTTPS. Do not expose Paperclip’s application port 3100 to the internet.
  • Administrative access only for initial server preparation. Run Paperclip itself as a dedicated, unprivileged paperclip user.
  • A current Docker Engine and Compose plugin if you choose the container route, or Node.js 24.11.0 or newer plus pnpm for a bare-metal install.
  • Provider credentials for any agents you intend to run, such as an OpenAI API key or Anthropic API key, unless you connect a subscription or key through Paperclip’s Apps → Connections interface.

Paperclip’s first-run flow creates your first company, agent and piece of work. Both installation paths lead to that same onboarding experience.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose Docker or bare metal

Docker is the better default for a VPS that should remain small and easy to replace. Bare metal removes the container layer, but you must maintain the JavaScript runtime, package manager, process supervision and application files yourself.

Decision point Docker deployment Bare-metal deployment
Host prerequisites Docker Engine and Compose Node.js 24.11.0 or newer and pnpm
Quick-start database Embedded PostgreSQL inside the Paperclip data volume Embedded PostgreSQL for a local-style install
Production database Use PostgreSQL outside the application container Use PostgreSQL outside the application process
Persistence Explicit bind mount, normally ./data/docker-paperclip or a host directory mounted at /paperclip Paperclip’s service-owned data directory, protected by your service and backup plan
Upgrades and rollback Pull or build a new image, retain the volume, and roll back to the previous image if necessary Update the checkout and dependencies, then restart the managed process
Reverse proxy Proxy to the container’s local port 3100 Proxy to the locally bound Paperclip process
Runner contention Runners may share the host initially; move busy runners to another machine later The same co-location rule applies, but you manage each process directly

Recommended Docker installation

1. Prepare the project directory

Connect over SSH on port 22, install Docker using your distribution’s current package instructions, and place a checked-out Paperclip project on the VPS. Run the Compose command from the project root; the quick-start file is part of the repository.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

2. Start the quick-start stack

Run the official command exactly as follows:

docker compose -f docker/docker-compose.quickstart.yml up --build

The default service listens on host port 3100. Its default persistent location is ./data/docker-paperclip, relative to the project root. You can change the port with PAPERCLIP_PORT and the data location with PAPERCLIP_DATA_DIR.

3. Confirm the local service

From the VPS, test the local endpoint before configuring DNS or TLS:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl http://127.0.0.1:3100/api/health

A healthy instance returns a JSON response whose status is ok. If the command fails, inspect the container output before adding a reverse proxy.

4. Make the data mount non-negotiable

The mounted data directory contains the embedded PostgreSQL database, uploaded assets, the local secrets key and agent workspace data. Treat it as the instance’s state. Stopping or replacing a container while retaining this directory preserves the instance; deleting or omitting the mount starts a fresh Paperclip installation.

Use a dedicated host path outside temporary build directories for anything beyond a disposable test. Restrict its permissions to the account that runs the container, include it in backups and verify that a test restore can be read by a new container.

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

5. Set public authenticated deployment variables

For an intentionally internet-facing instance, configure these values in the container environment or your Compose environment file:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • PAPERCLIP_DEPLOYMENT_MODE=authenticated enables the authenticated deployment mode.
  • Set the exposure to public when the service is deliberately reachable from the internet.
  • PAPERCLIP_PUBLIC_URL=https://your-hostname must be the exact HTTPS origin visitors use.

The public URL is used for the authentication base URL, Better Auth defaults, bootstrap invite URL defaults and hostname allowlist defaults. A wrong scheme, hostname or path can produce login redirects and invite links that point back to the wrong address.

Building a production image manually

The quick-start Compose file is useful for getting a working instance. For a more controlled image lifecycle, build the production target from the project root:

docker build --target production -t paperclip:production .

Run that image with a host directory mounted at /paperclip, set HOST=0.0.0.0 so the process is reachable inside the container, and set PAPERCLIP_HOME=/paperclip so database files, assets, secrets and workspaces resolve to the mounted location. Keep the host port published only to localhost when a reverse proxy runs on the same VPS.

Do not assume that rebuilding an image carries state forward. State lives in the bind-mounted directory, not in an image layer. Keep the previous image tag until the new version has passed health and login checks, so a rollback does not require restoring data merely to undo an application change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

Bare-metal installation with Node.js

1. Create and use a dedicated account

Create a system user named paperclip, give it ownership of the application directory and switch to it before onboarding. The embedded PostgreSQL setup refuses to run as an administrative user, so running the process as root is not a workaround.

2. Install the runtime

Install Node.js 24.11.0 or newer and pnpm for that user. Confirm both binaries resolve to the intended versions before installing project dependencies. Keep the runtime under a version-management or package-maintenance policy so security updates do not silently replace it with an unsupported release.

3. Run the project’s onboarding command

From the Paperclip checkout, run the onboarding command documented for the version you installed, while logged in as paperclip. Onboarding initializes configuration and the embedded database for a local-style install. Complete the browser flow to create the first company, first agent and first work item.

Because command names can change between Paperclip releases, copy the onboarding command from the installation instructions that match your checkout rather than guessing a subcommand from an older post. The important requirements are the account, supported Node.js version and writable application home.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

4. Keep the process supervised

Use your Linux service supervisor to restart Paperclip after a crash and at boot, and direct logs to a location covered by rotation. Bind the application locally and let the reverse proxy handle the public socket. Apply the same environment variables, backup policy and health checks described for the Docker deployment.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

Use PostgreSQL outside the application for production

The VPS production architecture keeps PostgreSQL outside the Paperclip application container or process. Hosted PostgreSQL examples include Supabase, Neon and Fly Postgres; the provider you choose must support the availability, backups and network controls your workload requires.

Keep uploaded assets, secrets and instance configuration on the mounted PAPERCLIP_HOME volume even when the database is external. Database backups alone do not restore files uploaded to Paperclip or agent workspace data. Record the database connection settings in your secret manager or protected environment, never in a committed Compose file.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Put HTTPS in front of Paperclip

1. Point DNS first

Resolve your hostname to the VPS and wait for the record to be visible from outside your network. Certificate issuance will fail or target the wrong machine if DNS still points elsewhere.

2. Configure Caddy or Nginx as the public endpoint

Terminate TLS at Caddy or Nginx and proxy requests to Paperclip’s local listener. A minimal Nginx server block has the following shape; replace the hostname with yours and keep the upstream private:

server {
    listen 80;
    server_name your-hostname;
    location / {
        proxy_pass http://127.0.0.1:3100;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Use your proxy’s standard certificate and HTTP-to-HTTPS redirect workflow, then change the public server to listen on 443 with the issued certificate. Keep TCP 80 available for certificate validation and redirects, and allow TCP 443 for users. Do not publish 3100 in the firewall or advertise it in DNS.

3. Verify through the public origin

After TLS is active, check the same health endpoint through the hostname:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl https://your-hostname/api/health

The documented successful response is {"status":"ok"}. Also test a browser login and a bootstrap invite link; both depend on PAPERCLIP_PUBLIC_URL matching the URL users actually enter.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Connect agent credentials and adapters

The Docker image includes local Claude and Codex command-line tools, but their presence does not authenticate an agent. Supply OPENAI_API_KEY and/or ANTHROPIC_API_KEY to the environment, 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. Check credentials before assigning work to an agent, and avoid putting API keys in shell history, source control, container images or publicly readable environment files.

Persistence, backups and recovery

What must be backed up

  • The embedded PostgreSQL data directory when you use the quick-start database.
  • Uploaded assets.
  • The local secrets key and instance configuration.
  • Agent workspace data stored under the Paperclip home directory.
  • The external PostgreSQL database and its connection metadata when you run production PostgreSQL separately.

Set a recurring backup schedule

Enable your provider’s PostgreSQL backups and schedule recurring exports for company data and uploads. Keep at least one copy outside the VPS so disk loss, an account lockout or a mistaken volume deletion does not remove both production and backup data. Encrypt exports and restrict restore credentials.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Test a restore

A backup is not validated until it can be restored. Periodically provision a temporary host, restore the database and Paperclip home directory, start the application with the restored secrets, and confirm that companies, uploaded files and agent workspaces are present. Destroy the temporary host after validation.

Health checks and routine operations

  • Monitor /api/health for liveness from outside the VPS, not only from localhost.
  • Follow container output with docker logs -f paperclip when diagnosing a Docker deployment.
  • Run Paperclip’s diagnostic command after configuration changes to detect drift.
  • Review disk space and inode usage for the data volume, because uploads, logs and workspaces can grow independently of database size.
  • Apply operating-system security updates, renew TLS certificates and remove unused firewall rules.
  • Keep secrets such as authentication signing keys, database passwords and provider API keys out of version control.

When to move agent runners off the VPS

Runners can remain co-located with the API during an initial deployment. Watch for busy-agent heartbeats and job execution competing with web requests, database activity or reverse-proxy latency. Move runners to separate machines when that contention becomes visible, while retaining the Paperclip API and persistent data on the primary host. This split lets you add compute for agents without exposing the database volume or changing the public URL.

Typical monthly cost

A small-scale example published by Paperclip Docs on April 27, 2026 totals approximately $5–35 per month. These are illustrative figures, not a quote: verify current rates, regions and resource limits with your provider.

Component Illustrative monthly amount Qualification
VPS compute About $5–10 Small instance estimate from the April 27, 2026 guide
PostgreSQL $0–25 Varies from included or self-hosted to a managed database
5 GB volume About $1 Example based on Fly.io pricing cited in that guide
Bandwidth Usually low or included Depends on provider, region and traffic
Total example Approximately $5–35 April 2026 example; not a guarantee

Troubleshooting by symptom

Symptom Likely cause Action
Embedded PostgreSQL refuses to start Paperclip was started as root or another administrative account Stop the service, switch to the dedicated paperclip user, verify directory ownership and rerun onboarding or restart.
Browser cannot connect, but the container is running The process is bound locally or the reverse proxy is not forwarding Check localhost port 3100, inspect proxy logs, confirm firewall ports 80/443 and leave 3100 private.
Login redirects to the wrong host PAPERCLIP_PUBLIC_URL does not match the HTTPS hostname Set the complete https://your-hostname value, restart the service and retry in a fresh browser session.
Health check returns connection refused after a rebuild The new container did not start, or the port override changed Run docker logs -f paperclip, confirm PAPERCLIP_PORT, and test the bound port locally.
Data disappeared after recreating the container The bind mount was omitted, moved or deleted Restore the original data directory, mount it at the expected path and verify permissions before starting again.
Adapter check says a prerequisite is missing No provider API key or connected subscription Set the required environment variable or complete Apps → Connections, then rerun the adapter check.
Agents make the UI sluggish Runner CPU or memory contention on the VPS Reduce concurrent work temporarily and move busy runners to a separate machine.

Security checklist before opening the hostname

  • Use SSH keys, disable password login where your provider supports it and limit administrative access.
  • Allow only TCP 22, 80 and 443 from the internet; keep 3100 bound to localhost or an internal network.
  • Run Paperclip as the dedicated non-administrative user.
  • Set authenticated deployment mode and a correct HTTPS public URL.
  • Protect the Paperclip home directory, database credentials, auth signing keys and provider API keys.
  • Enable PostgreSQL backups and back up uploads, secrets and workspaces as well.
  • Test both local and public health checks after every upgrade.
  • Retain the previous image or application release until the new version has passed login, database and agent checks.

Final deployment sequence

  1. Provision the Ubuntu 24.04 VPS, domain and firewall rules.
  2. Create the paperclip user and install either Docker Compose or Node.js 24.11.0-plus with pnpm.
  3. Start the Docker quick-start stack, or run the version-matched bare-metal onboarding command as paperclip.
  4. Confirm the local health endpoint and verify that the persistent data directory is mounted and backed up.
  5. Configure authenticated public deployment variables and agent credentials.
  6. Point DNS to the VPS, place Caddy or Nginx in front, issue TLS and keep port 3100 private.
  7. Check https://your-hostname/api/health, complete onboarding and create a test piece of work.
  8. Enable monitoring, recurring exports and provider backups before inviting regular users.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.