feat: add SimAiStudio template with PostgreSQL and realtime support

This commit is contained in:
HarikrishnanD
2026-01-13 10:47:48 +05:30
parent 1ead7d06a4
commit 3fd8265c9e
4 changed files with 152 additions and 0 deletions

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

View 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}"

View File

@@ -5468,6 +5468,25 @@
"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",
"name": "Slash",