mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-08 07:25:23 +02:00
feat: add Paperclip template (#943)
Co-authored-by: Rohit Mulani <289630555+rohitmulani63-ops@users.noreply.github.com>
This commit is contained in:
15
blueprints/paperclip/README.md
Normal file
15
blueprints/paperclip/README.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Paperclip
|
||||
|
||||
Paperclip is an open-source control plane for managing teams of AI agents, goals, budgets, tickets, and recurring work.
|
||||
|
||||
This Dokploy template includes:
|
||||
|
||||
- Paperclip web/API service using the official GHCR image
|
||||
- PostgreSQL 17 database with health check
|
||||
- Generated `BETTER_AUTH_SECRET`
|
||||
- Generated database password
|
||||
- Persistent `/paperclip` storage for instance data
|
||||
- Public URL configured from the Dokploy domain
|
||||
- Dokploy domain routing to Paperclip on port 3100
|
||||
|
||||
After deployment, check the Paperclip container logs for first-run setup or invite information.
|
||||
44
blueprints/paperclip/docker-compose.yml
Normal file
44
blueprints/paperclip/docker-compose.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:17-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: paperclip
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: paperclip
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U paperclip -d paperclip"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
|
||||
paperclip:
|
||||
image: ghcr.io/paperclipai/paperclip:latest
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
HOST: 0.0.0.0
|
||||
PORT: "3100"
|
||||
SERVE_UI: "true"
|
||||
DATABASE_URL: ${DATABASE_URL}
|
||||
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET}
|
||||
PAPERCLIP_HOME: /paperclip
|
||||
PAPERCLIP_INSTANCE_ID: default
|
||||
PAPERCLIP_CONFIG: /paperclip/instances/default/config.json
|
||||
PAPERCLIP_DEPLOYMENT_MODE: ${PAPERCLIP_DEPLOYMENT_MODE}
|
||||
PAPERCLIP_DEPLOYMENT_EXPOSURE: ${PAPERCLIP_DEPLOYMENT_EXPOSURE}
|
||||
PAPERCLIP_PUBLIC_URL: ${PAPERCLIP_PUBLIC_URL}
|
||||
expose:
|
||||
- "3100"
|
||||
volumes:
|
||||
- paperclip-data:/paperclip
|
||||
|
||||
volumes:
|
||||
postgres-data: {}
|
||||
paperclip-data: {}
|
||||
5
blueprints/paperclip/logo.svg
Normal file
5
blueprints/paperclip/logo.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="Paperclip logo">
|
||||
<rect width="128" height="128" rx="28" fill="#111827"/>
|
||||
<path d="M43 70.5 76.5 37c10.4-10.4 27.3-3 27.3 11.8 0 4.4-1.8 8.7-4.9 11.8L58.4 101.1c-13 13-34.2 3.8-34.2-14.6 0-5.5 2.2-10.7 6.1-14.6l43.9-43.9" fill="none" stroke="#f8fafc" stroke-width="10" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M46.6 78.8 83.3 42.1c4.8-4.8 12.9-1.4 12.9 5.4 0 2-.8 4-2.2 5.4L55.2 91.7c-6.3 6.3-17.2 1.9-17.2-7 0-2.6 1-5.1 2.9-7l36.4-36.4" fill="none" stroke="#38bdf8" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 646 B |
20
blueprints/paperclip/template.toml
Normal file
20
blueprints/paperclip/template.toml
Normal file
@@ -0,0 +1,20 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
postgres_password = "${password:32}"
|
||||
better_auth_secret = "${password:64}"
|
||||
|
||||
[config]
|
||||
env = [
|
||||
"POSTGRES_PASSWORD=${postgres_password}",
|
||||
"DATABASE_URL=postgres://paperclip:${postgres_password}@postgres:5432/paperclip",
|
||||
"BETTER_AUTH_SECRET=${better_auth_secret}",
|
||||
"PAPERCLIP_DEPLOYMENT_MODE=authenticated",
|
||||
"PAPERCLIP_DEPLOYMENT_EXPOSURE=private",
|
||||
"PAPERCLIP_PUBLIC_URL=https://${main_domain}"
|
||||
]
|
||||
mounts = []
|
||||
|
||||
[[config.domains]]
|
||||
serviceName = "paperclip"
|
||||
port = 3100
|
||||
host = "${main_domain}"
|
||||
18
meta.json
18
meta.json
@@ -5129,6 +5129,24 @@
|
||||
"open-source"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "paperclip",
|
||||
"name": "Paperclip",
|
||||
"version": "latest",
|
||||
"description": "Paperclip is an open-source control plane for managing teams of AI agents, goals, budgets, tickets, and recurring work.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/paperclipai/paperclip",
|
||||
"website": "https://paperclip.ing/",
|
||||
"docs": "https://docs.paperclip.ing/"
|
||||
},
|
||||
"tags": [
|
||||
"ai",
|
||||
"agents",
|
||||
"automation",
|
||||
"self-hosted"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "parseable",
|
||||
"name": "Parseable",
|
||||
|
||||
Reference in New Issue
Block a user