← All articles
Self-hostingDeployment

Deploy Paperclip on DigitalOcean App Platform

DigitalOcean App Platform is the managed container alternative to bare Droplets. Connect a GitHub repo with a Dockerfile, and App Platform handles builds, deployments, SSL, and scaling. No server management required.

Deploy on Railway instead →

App Platform vs Droplet

| | App Platform | Droplet | |---|---|---| | Setup time | 5–10 minutes | 30–60 minutes | | Server management | None | Full responsibility | | SSL | Automatic | Manual (certbot) | | Scaling | Built-in | Manual | | Persistent disk | Managed | Managed | | Starting price | $12/month | $6/month |

App Platform costs more but removes server management entirely. The choice depends on how much you value your time vs. money.

Prerequisites

  • DigitalOcean account
  • GitHub repo with your Paperclip configuration (Dockerfile)
  • A domain name (optional but recommended)

Step 1: Create a Dockerfile

Create a Dockerfile in your GitHub repo:

FROM node:20-alpine

WORKDIR /app

RUN npm install -g paperclipai

RUN mkdir -p /data

ENV NODE_ENV=production
ENV PAPERCLIP_LISTEN_PORT=8080
ENV PAPERCLIP_LISTEN_HOST=0.0.0.0

EXPOSE 8080

CMD ["npx", "paperclipai", "server", "start", "--port", "8080", "--host", "0.0.0.0"]

Note: App Platform routes to port 8080 by default. Configure Paperclip to listen on 8080.

Step 2: Push to GitHub

git init
git add Dockerfile
git commit -m "Initial Paperclip Dockerfile"
git remote add origin https://github.com/yourusername/paperclip-deploy.git
git push -u origin main

Step 3: Create the App Platform app

  1. In the DigitalOcean dashboard, click App Platform → Create App
  2. Connect your GitHub account and select your repo
  3. Configure the app:
    • Name: paperclip
    • Region: Select closest to your users
    • Service type: Web Service
    • Source: GitHub, main branch
  4. Review the auto-detected settings — App Platform should detect the Dockerfile

Step 4: Configure resources

On the plan selection screen:

  • Choose Basic plan
  • Select 1 vCPU / 1 GB RAM ($12/month) minimum
  • 2 GB RAM ($24/month) recommended for agent workloads

Step 5: Add environment variables

In the app configuration, add:

NODE_ENV=production
PAPERCLIP_DATA_DIR=/data
BETTER_AUTH_SECRET=your_random_secret
PAPERCLIP_MIGRATION_AUTO_APPLY=true
PAPERCLIP_MIGRATION_PROMPT=never

Mark BETTER_AUTH_SECRET as Encrypted in the dashboard.

Step 6: Add persistent storage

App Platform apps need a mounted volume to persist Paperclip data:

  1. In the app configuration, go to the Resources section
  2. Under your web service, add a Volume
  3. Configure:
    • Mount Path: /data
    • Size: 1 GB (minimum, expandable)

Step 7: Deploy

Click Create Resources. App Platform builds your Docker image and deploys it. Watch the build logs in the dashboard.

First deploy takes 3–5 minutes. Subsequent deploys are faster.

Step 8: Custom domain

  1. In your app settings, go to Domains → Add Domain
  2. Enter paperclip.yourdomain.com
  3. App Platform gives you a CNAME target
  4. Add the CNAME in your DNS
  5. SSL certificate is issued automatically within a few minutes

Auto-deploy on git push

App Platform redeploys automatically every time you push to the connected branch. This is ideal for keeping Paperclip up to date — push a Dockerfile change, new version deploys automatically.

To disable: App settings → Components → your service → Autodeploy: Off

Always-on configuration

Unlike Render's free tier, App Platform doesn't sleep services. The Basic plan keeps your instance always running, which is required for Paperclip agent heartbeats.

Managed database (optional)

For a managed Postgres database instead of SQLite:

  1. In your app, add a Database → Dev Database (PostgreSQL)
  2. App Platform injects DATABASE_URL automatically
  3. Restart your service — Paperclip uses Postgres automatically

Monitoring

App Platform includes basic metrics (CPU, memory, requests) in the dashboard. For more detailed monitoring, use DigitalOcean Monitoring:

  1. In the DigitalOcean dashboard, go to Monitoring
  2. Create an alert for CPU > 80% or Memory > 90%

Cost

  • Basic 1 GB: $12/month
  • Basic 2 GB: $24/month
  • Persistent Volume: $0.10/GB/month
  • Managed Postgres Dev: $7/month

Total for basic setup: $12.10–12.20/month

For lower cost with more control, a DigitalOcean Droplet at $6/month works well with some server setup time. For zero setup, Railway starts with $20 free credit.

Ready to deploy?

Affiliate disclosure: this link may earn us a commission at no extra cost to you.

This is an independent guide. Paperclip Hosting is not affiliated with the official Paperclip project. Guide steps are based on real deployments and are subject to change as the software evolves.