Skip to content

feat: add SimAiStudio template with PostgreSQL and realtime support#650

Open
Harikrishnan1367709 wants to merge 1 commit intoDokploy:canaryfrom
Harikrishnan1367709:Add-SimAi-Template
Open

feat: add SimAiStudio template with PostgreSQL and realtime support#650
Harikrishnan1367709 wants to merge 1 commit intoDokploy:canaryfrom
Harikrishnan1367709:Add-SimAi-Template

Conversation

@Harikrishnan1367709
Copy link
Contributor

@Harikrishnan1367709 Harikrishnan1367709 commented Jan 13, 2026

📦 Added SimAiStudio Template

Open-source AI agent workflow platform for building intelligent automation workflows.

Services:

  • Next.js app (port 3000)
  • Realtime server (port 3002)
  • PostgreSQL 17 + pgvector
  • Automated migrations

Key Features:

  • ✅ Dual-domain setup (main app + WebSocket subdomain)
  • ✅ HTTPS/WSS support
  • ✅ Health checks for all services
  • ✅ Persistent storage

Files: docker-compose.yml, template.toml, sim.png, meta.json

Screenshot 2026-01-13 at 10 45 21 AM

Greptile Summary

Adds a new SimAiStudio template for deploying an AI agent workflow platform via Dokploy. The template includes four services: the main Next.js app, a WebSocket realtime server, a PostgreSQL database with pgvector, and a one-shot migration runner.

  • Template structure is correct: follows Dokploy conventions with expose (no ports), no container_name or networks, proper health checks, and volume persistence
  • Dual-domain setup: configures a main domain and a ws. subdomain for the realtime WebSocket server
  • Secret management: template.toml properly generates secrets using ${password:32}, ${base64:32}, and ${password:16} helpers
  • Style concern: Docker images use :latest tags rather than pinned versions, and docker-compose.yml contains weak default fallback values for secrets and admin credentials (though these are overridden by template.toml in Dokploy deployments)
  • meta.json entry is correctly positioned alphabetically and includes all required fields

Confidence Score: 4/5

  • This PR is safe to merge with minor style improvements recommended for secret defaults and image pinning.
  • The template is well-structured and follows Dokploy conventions correctly. The issues found are style-level concerns (unpinned image tags, weak default fallbacks) rather than functional bugs. The template.toml properly generates secure credentials, so the weak defaults in docker-compose.yml only affect standalone usage outside Dokploy. No critical logic or syntax errors found.
  • blueprints/simstudio/docker-compose.yml has weak default fallback values for secrets and unpinned image tags.

Last reviewed commit: 3fd8265

Context used:

  • Context from dashboard - AGENTS.md (source)

@github-actions
Copy link

github-actions bot commented Jan 13, 2026

built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
templates ✅ Ready (View Log) Visit Preview 3fd8265

@Siumauricio
Copy link
Contributor

@greptile review

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4 files reviewed, 3 comments

Edit Code Review Agent Settings | Greptile


services:
simstudio:
image: ghcr.io/simstudioai/simstudio:latest
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unpinned Docker image tags

All three custom images (simstudio, realtime, migrations) use the :latest tag instead of a pinned version. Per the repository's AGENTS.md guidelines: "Pin Docker images to specific versions to avoid supply chain attacks." While :latest is used by many existing templates in this repo, pinning to a specific release tag (e.g., ghcr.io/simstudioai/simstudio:v1.0.0) would improve reproducibility and protect against unexpected breaking changes.

Note: The pgvector/pgvector:pg17 image is appropriately version-pinned.

Context Used: Context from dashboard - AGENTS.md (source)

Comment on lines +18 to +19
- BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET:-your_auth_secret_here}
- ENCRYPTION_KEY=${ENCRYPTION_KEY:-your_encryption_key_here}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Insecure default secrets in fallbacks

The default fallback values for BETTER_AUTH_SECRET and ENCRYPTION_KEY are weak placeholder strings. While template.toml correctly generates proper secrets via ${base64:32}, if anyone uses this docker-compose.yml directly (without Dokploy's template injection), these insecure defaults would be active. Consider using empty strings as defaults to force explicit configuration, similar to how COPILOT_API_KEY on line 20 already uses an empty default.

Context Used: Context from dashboard - AGENTS.md (source)

- 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}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Weak default admin password

The fallback value for DEFAULT_ADMIN_PASSWORD is a trivially guessable string. The template.toml generates a proper 16-character random password via ${password:16}, but if the compose file is used standalone, the weak default would create an insecure deployment. Consider using an empty default to force explicit configuration.

Context Used: Context from dashboard - AGENTS.md (source)

@Siumauricio
Copy link
Contributor

Please resolve the issues @Harikrishnan1367709

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants