mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-22 22:35:24 +02:00
feat(templates): add systemprompt (#1032)
* feat(templates): add systemprompt * fix header comment: accurate in both repos
This commit is contained in:
56
blueprints/systemprompt/docker-compose.yml
Normal file
56
blueprints/systemprompt/docker-compose.yml
Normal file
@@ -0,0 +1,56 @@
|
||||
# Dokploy blueprint compose for the systemprompt gateway.
|
||||
# Canonical copy: systempromptio/systemprompt-template deploy/dokploy/,
|
||||
# published to Dokploy/templates blueprints/systemprompt/.
|
||||
# Dokploy conventions: version 3.8, no ports/container_name/networks,
|
||||
# main service name MUST equal the blueprint folder name (systemprompt).
|
||||
version: "3.8"
|
||||
services:
|
||||
systemprompt:
|
||||
image: ghcr.io/systempromptio/systemprompt-template:0
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
DATABASE_URL: postgres://systemprompt:${POSTGRES_PASSWORD}@postgres:5432/systemprompt
|
||||
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
|
||||
OPENAI_API_KEY: ${OPENAI_API_KEY}
|
||||
GEMINI_API_KEY: ${GEMINI_API_KEY}
|
||||
EXTERNAL_URL: ${EXTERNAL_URL}
|
||||
HOST: 0.0.0.0
|
||||
PORT: 8080
|
||||
expose:
|
||||
- 8080
|
||||
volumes:
|
||||
- systemprompt_web:/app/web
|
||||
- systemprompt_storage:/app/storage/data
|
||||
- systemprompt_profiles:/app/services/profiles/docker
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8080/api/v1/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
start_period: 300s
|
||||
retries: 3
|
||||
|
||||
postgres:
|
||||
image: postgres:18-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: systemprompt
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: systemprompt
|
||||
volumes:
|
||||
# postgres:18+ stores data under major-version subdirectories of
|
||||
# /var/lib/postgresql — mounting the old .../data path aborts startup.
|
||||
- postgres_data:/var/lib/postgresql
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U systemprompt -d systemprompt"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
volumes:
|
||||
systemprompt_web:
|
||||
systemprompt_storage:
|
||||
systemprompt_profiles:
|
||||
postgres_data:
|
||||
23
blueprints/systemprompt/instructions.md
Normal file
23
blueprints/systemprompt/instructions.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# systemprompt
|
||||
|
||||
## Getting started
|
||||
|
||||
1. Before the first deploy, set at least one AI provider key in **Environment**:
|
||||
`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, or `GEMINI_API_KEY`. The container
|
||||
will not boot without one.
|
||||
2. Enable **HTTPS** (Let's Encrypt) on the generated domain. The app validates
|
||||
`EXTERNAL_URL` and refuses plain `http://` origins other than localhost —
|
||||
with HTTPS off it restart-loops with an "Invalid CORS origin" error.
|
||||
3. Deploy. The first boot runs database migrations and the publish pipeline;
|
||||
allow up to 5 minutes before the healthcheck goes green.
|
||||
4. Verify at `https://<your-domain>/api/v1/health`, then open the domain root
|
||||
for the admin UI.
|
||||
|
||||
## Notes
|
||||
|
||||
- `POSTGRES_PASSWORD` is auto-generated by the template; `EXTERNAL_URL` is
|
||||
derived from the domain you assign.
|
||||
- Web assets, storage, profile state, and Postgres data persist in the
|
||||
`systemprompt_web`, `systemprompt_storage`, `systemprompt_profiles`, and
|
||||
`postgres_data` volumes.
|
||||
- Docs: https://systemprompt.io/documentation/
|
||||
6
blueprints/systemprompt/logo.svg
Normal file
6
blueprints/systemprompt/logo.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
||||
<rect width="32" height="32" rx="6" fill="#f79938"/>
|
||||
<path d="M14 10 L8 16 L14 22" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
|
||||
<path d="M24 10 L18 22" stroke="#fff" stroke-width="2.5" stroke-linecap="round" fill="none"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 384 B |
16
blueprints/systemprompt/meta.json
Normal file
16
blueprints/systemprompt/meta.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"id": "systemprompt",
|
||||
"name": "systemprompt",
|
||||
"version": "0.21.0",
|
||||
"description": "Self-owned AI control plane: governance gateway for Claude, OpenAI, and Gemini with policy checks, audit trails, rate limits, and MCP orchestration. Requires at least one AI provider API key.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/systempromptio/systemprompt-template",
|
||||
"website": "https://systemprompt.io",
|
||||
"docs": "https://systemprompt.io/documentation/"
|
||||
},
|
||||
"tags": [
|
||||
"ai",
|
||||
"self-hosted"
|
||||
]
|
||||
}
|
||||
16
blueprints/systemprompt/template.toml
Normal file
16
blueprints/systemprompt/template.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
postgres_password = "${password:32}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "systemprompt"
|
||||
port = 8080
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
POSTGRES_PASSWORD = "${postgres_password}"
|
||||
EXTERNAL_URL = "https://${main_domain}"
|
||||
ANTHROPIC_API_KEY = ""
|
||||
OPENAI_API_KEY = ""
|
||||
GEMINI_API_KEY = ""
|
||||
Reference in New Issue
Block a user