mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-17 15:19:48 -05:00
feat: add SimAiStudio template with PostgreSQL and realtime support
This commit is contained in:
92
blueprints/simstudio/docker-compose.yml
Normal file
92
blueprints/simstudio/docker-compose.yml
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
simstudio:
|
||||||
|
image: ghcr.io/simstudioai/simstudio:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 3000
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 8G
|
||||||
|
environment:
|
||||||
|
- NODE_ENV=production
|
||||||
|
- DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio}
|
||||||
|
- BETTER_AUTH_URL=${BETTER_AUTH_URL:-http://localhost:3000}
|
||||||
|
- NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000}
|
||||||
|
- BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET:-your_auth_secret_here}
|
||||||
|
- ENCRYPTION_KEY=${ENCRYPTION_KEY:-your_encryption_key_here}
|
||||||
|
- COPILOT_API_KEY=${COPILOT_API_KEY:-}
|
||||||
|
- SIM_AGENT_API_URL=${SIM_AGENT_API_URL:-}
|
||||||
|
- OLLAMA_URL=${OLLAMA_URL:-http://localhost:11434}
|
||||||
|
- SOCKET_SERVER_URL=http://realtime:3002
|
||||||
|
- NEXT_PUBLIC_SOCKET_URL=${NEXT_PUBLIC_SOCKET_URL:-http://localhost:3002}
|
||||||
|
- DEFAULT_ADMIN_EMAIL=${DEFAULT_ADMIN_EMAIL:-admin@example.com}
|
||||||
|
- DEFAULT_ADMIN_PASSWORD=${DEFAULT_ADMIN_PASSWORD:-admin123}
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
migrations:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
realtime:
|
||||||
|
condition: service_healthy
|
||||||
|
healthcheck:
|
||||||
|
test: ['CMD-SHELL', 'wget --spider --quiet http://127.0.0.1:3000 || curl -f http://127.0.0.1:3000 || exit 1']
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
start_period: 60s
|
||||||
|
|
||||||
|
realtime:
|
||||||
|
image: ghcr.io/simstudioai/realtime:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 3002
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 4G
|
||||||
|
environment:
|
||||||
|
- DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio}
|
||||||
|
- NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000}
|
||||||
|
- BETTER_AUTH_URL=${BETTER_AUTH_URL:-http://localhost:3000}
|
||||||
|
- BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET:-your_auth_secret_here}
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
healthcheck:
|
||||||
|
test: ['CMD-SHELL', 'wget --spider --quiet http://127.0.0.1:3002/health || curl -f http://127.0.0.1:3002/health || exit 1']
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
start_period: 60s
|
||||||
|
|
||||||
|
migrations:
|
||||||
|
image: ghcr.io/simstudioai/migrations:latest
|
||||||
|
working_dir: /app/packages/db
|
||||||
|
environment:
|
||||||
|
- DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio}
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
command: ['bun', 'run', 'db:migrate']
|
||||||
|
restart: 'no'
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: pgvector/pgvector:pg17
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
||||||
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB:-simstudio}
|
||||||
|
volumes:
|
||||||
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
healthcheck:
|
||||||
|
test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-postgres}']
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres_data:
|
||||||
BIN
blueprints/simstudio/sim.png
Normal file
BIN
blueprints/simstudio/sim.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 303 KiB |
41
blueprints/simstudio/template.toml
Normal file
41
blueprints/simstudio/template.toml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
[variables]
|
||||||
|
main_domain = "${domain}"
|
||||||
|
realtime_domain = "ws.${domain}"
|
||||||
|
app_protocol = "https"
|
||||||
|
postgres_user = "postgres"
|
||||||
|
postgres_password = "${password:32}"
|
||||||
|
postgres_db = "simstudio"
|
||||||
|
auth_secret = "${base64:32}"
|
||||||
|
encryption_key = "${base64:32}"
|
||||||
|
copilot_api_key = ""
|
||||||
|
sim_agent_api_url = ""
|
||||||
|
ollama_url = "http://localhost:11434"
|
||||||
|
default_admin_email = "${email}"
|
||||||
|
default_admin_password = "${password:16}"
|
||||||
|
|
||||||
|
[config]
|
||||||
|
env = [
|
||||||
|
"POSTGRES_USER=${postgres_user}",
|
||||||
|
"POSTGRES_PASSWORD=${postgres_password}",
|
||||||
|
"POSTGRES_DB=${postgres_db}",
|
||||||
|
"NEXT_PUBLIC_APP_URL=${app_protocol}://${main_domain}",
|
||||||
|
"BETTER_AUTH_URL=${app_protocol}://${main_domain}",
|
||||||
|
"NEXT_PUBLIC_SOCKET_URL=${app_protocol}://${realtime_domain}",
|
||||||
|
"BETTER_AUTH_SECRET=${auth_secret}",
|
||||||
|
"ENCRYPTION_KEY=${encryption_key}",
|
||||||
|
"COPILOT_API_KEY=${copilot_api_key}",
|
||||||
|
"SIM_AGENT_API_URL=${sim_agent_api_url}",
|
||||||
|
"OLLAMA_URL=${ollama_url}",
|
||||||
|
"DEFAULT_ADMIN_EMAIL=${default_admin_email}",
|
||||||
|
"DEFAULT_ADMIN_PASSWORD=${default_admin_password}"
|
||||||
|
]
|
||||||
|
|
||||||
|
[[config.domains]]
|
||||||
|
serviceName = "simstudio"
|
||||||
|
port = 3000
|
||||||
|
host = "${main_domain}"
|
||||||
|
|
||||||
|
[[config.domains]]
|
||||||
|
serviceName = "realtime"
|
||||||
|
port = 3002
|
||||||
|
host = "${realtime_domain}"
|
||||||
19
meta.json
19
meta.json
@@ -5468,6 +5468,25 @@
|
|||||||
"markdown"
|
"markdown"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "simstudio",
|
||||||
|
"name": "SimAi",
|
||||||
|
"version": "latest",
|
||||||
|
"description": "Sim ai is an open-source AI agent workflow platform that enables building and deploying intelligent automation workflows with real-time capabilities.",
|
||||||
|
"logo": "sim.png",
|
||||||
|
"links": {
|
||||||
|
"github": "https://github.com/simstudioai/simstudio",
|
||||||
|
"website": "https://simstudio.ai",
|
||||||
|
"docs": "https://docs.simstudio.ai"
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"ai",
|
||||||
|
"automation",
|
||||||
|
"workflow",
|
||||||
|
"agents",
|
||||||
|
"real-time"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "slash",
|
"id": "slash",
|
||||||
"name": "Slash",
|
"name": "Slash",
|
||||||
|
|||||||
Reference in New Issue
Block a user