mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-10 00:15:28 +02:00
Add Multica template
Open-source managed agents platform (Next.js + Go + pgvector). Builds from source via remote git context since no pre-built images are published. Exposes two Traefik domains: frontend (3000) and backend (8080) for the CLI/daemon. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
68
blueprints/multica/docker-compose.yml
Normal file
68
blueprints/multica/docker-compose.yml
Normal file
@@ -0,0 +1,68 @@
|
||||
name: multica
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: pgvector/pgvector:pg17
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- pgdata:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
backend:
|
||||
build:
|
||||
context: "https://github.com/multica-ai/multica.git#main"
|
||||
dockerfile: Dockerfile
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "8080"
|
||||
volumes:
|
||||
- backend_uploads:/app/data/uploads
|
||||
environment:
|
||||
DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable
|
||||
PORT: "8080"
|
||||
JWT_SECRET: ${JWT_SECRET}
|
||||
FRONTEND_ORIGIN: ${FRONTEND_ORIGIN}
|
||||
ALLOWED_ORIGINS: ${ALLOWED_ORIGINS}
|
||||
MULTICA_APP_URL: ${MULTICA_APP_URL}
|
||||
RESEND_API_KEY: ${RESEND_API_KEY}
|
||||
RESEND_FROM_EMAIL: ${RESEND_FROM_EMAIL}
|
||||
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
|
||||
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET}
|
||||
GOOGLE_REDIRECT_URI: ${GOOGLE_REDIRECT_URI}
|
||||
COOKIE_DOMAIN: ${COOKIE_DOMAIN}
|
||||
S3_BUCKET: ${S3_BUCKET}
|
||||
S3_REGION: ${S3_REGION}
|
||||
CLOUDFRONT_DOMAIN: ${CLOUDFRONT_DOMAIN}
|
||||
CLOUDFRONT_KEY_PAIR_ID: ${CLOUDFRONT_KEY_PAIR_ID}
|
||||
CLOUDFRONT_PRIVATE_KEY: ${CLOUDFRONT_PRIVATE_KEY}
|
||||
|
||||
frontend:
|
||||
build:
|
||||
context: "https://github.com/multica-ai/multica.git#main"
|
||||
dockerfile: Dockerfile.web
|
||||
args:
|
||||
REMOTE_API_URL: http://backend:8080
|
||||
NEXT_PUBLIC_WS_URL: ${NEXT_PUBLIC_WS_URL}
|
||||
NEXT_PUBLIC_GOOGLE_CLIENT_ID: ${NEXT_PUBLIC_GOOGLE_CLIENT_ID}
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- backend
|
||||
ports:
|
||||
- "3000"
|
||||
environment:
|
||||
HOSTNAME: "0.0.0.0"
|
||||
|
||||
volumes:
|
||||
pgdata:
|
||||
backend_uploads:
|
||||
7
blueprints/multica/multica.svg
Normal file
7
blueprints/multica/multica.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80" role="img" aria-label="Multica">
|
||||
<polygon
|
||||
fill="#111827"
|
||||
points="35,51.1 35,80 45,80 45,51.1 71.8,77.9 78.9,70.8 52.1,44 90,44 90,34 52.1,34 78.9,7.2 71.8,0.1 45,26.9 45,-11 35,-11 35,26.9 8.2,0.1 1.1,7.2 27.9,34 -10,34 -10,44 27.9,44 1.1,70.8 8.2,77.9"
|
||||
transform="translate(5, 5.5) scale(0.87)"
|
||||
/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 382 B |
40
blueprints/multica/template.toml
Normal file
40
blueprints/multica/template.toml
Normal file
@@ -0,0 +1,40 @@
|
||||
[variables]
|
||||
app_domain = "${domain}"
|
||||
api_domain = "${domain}"
|
||||
jwt_secret = "${password:64}"
|
||||
postgres_password = "${password:32}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "frontend"
|
||||
port = 3000
|
||||
host = "${app_domain}"
|
||||
path = "/"
|
||||
|
||||
[[config.domains]]
|
||||
serviceName = "backend"
|
||||
port = 8080
|
||||
host = "${api_domain}"
|
||||
path = "/"
|
||||
|
||||
[config.env]
|
||||
POSTGRES_DB = "multica"
|
||||
POSTGRES_USER = "multica"
|
||||
POSTGRES_PASSWORD = "${postgres_password}"
|
||||
JWT_SECRET = "${jwt_secret}"
|
||||
FRONTEND_ORIGIN = "https://${app_domain}"
|
||||
ALLOWED_ORIGINS = "https://${app_domain}"
|
||||
MULTICA_APP_URL = "https://${app_domain}"
|
||||
NEXT_PUBLIC_WS_URL = "wss://${api_domain}/ws"
|
||||
RESEND_API_KEY = ""
|
||||
RESEND_FROM_EMAIL = "noreply@multica.ai"
|
||||
GOOGLE_CLIENT_ID = ""
|
||||
GOOGLE_CLIENT_SECRET = ""
|
||||
GOOGLE_REDIRECT_URI = "https://${app_domain}/auth/callback"
|
||||
NEXT_PUBLIC_GOOGLE_CLIENT_ID = ""
|
||||
COOKIE_DOMAIN = ""
|
||||
S3_BUCKET = ""
|
||||
S3_REGION = "us-west-2"
|
||||
CLOUDFRONT_DOMAIN = ""
|
||||
CLOUDFRONT_KEY_PAIR_ID = ""
|
||||
CLOUDFRONT_PRIVATE_KEY = ""
|
||||
21
meta.json
21
meta.json
@@ -4182,6 +4182,27 @@
|
||||
"java"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "multica",
|
||||
"name": "Multica",
|
||||
"version": "latest",
|
||||
"description": "Multica is an open-source managed agents platform for teams. Assign tasks to AI coding agents (Claude Code, Codex, OpenClaw and more) that execute autonomously, report progress, and build reusable skills over time.",
|
||||
"logo": "multica.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/multica-ai/multica",
|
||||
"website": "https://multica.ai",
|
||||
"docs": "https://github.com/multica-ai/multica/blob/main/SELF_HOSTING.md"
|
||||
},
|
||||
"tags": [
|
||||
"ai",
|
||||
"agents",
|
||||
"automation",
|
||||
"self-hosted",
|
||||
"claude-code",
|
||||
"codex",
|
||||
"developer-tools"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mumble",
|
||||
"name": "Mumble",
|
||||
|
||||
Reference in New Issue
Block a user