Skip to content

Add Multica template#798

Closed
enemyrr wants to merge 5 commits into
Dokploy:mainfrom
enemyrr:add-multica-template
Closed

Add Multica template#798
enemyrr wants to merge 5 commits into
Dokploy:mainfrom
enemyrr:add-multica-template

Conversation

@enemyrr
Copy link
Copy Markdown

@enemyrr enemyrr commented Apr 17, 2026

Summary

Adds a blueprint for Multica — an open-source managed agents platform for teams (assign tasks to AI coding agents like Claude Code, Codex, OpenClaw, etc.).

Services

  • postgrespgvector/pgvector:pg17
  • backend — Go API + WebSocket server, port 8080 (built from https://github.com/multica-ai/multica.git#main with Dockerfile)
  • frontend — Next.js 16, port 3000 (built with Dockerfile.web)

Multica doesn't publish pre-built images yet, so the template builds from the remote git context — same pattern as firecrawl/nuq-postgres.

Traefik domains

Two public domains are exposed:

  • ${app_domain}frontend:3000
  • ${api_domain}backend:8080 (needed by the multica CLI/daemon)

NEXT_PUBLIC_WS_URL is baked into the frontend build at deploy time pointing at wss://${api_domain}/ws, so WebSocket traffic routes through the api domain.

Login

Out of the box, non-production environments accept verification code 888888 for any email. For production, set RESEND_API_KEY / RESEND_FROM_EMAIL.

Test plan

  • PR preview deploys successfully
  • Import template into a Dokploy instance, deploy
  • Open app_domain, log in with 888888
  • Verify backend is reachable at api_domain
  • Install CLI locally and run multica setup self-host --server-url https://<api_domain> --app-url https://<app_domain>

Greptile Summary

Adds a new Multica blueprint (three services: pgvector/postgres, Go backend, Next.js frontend) with two auto-generated domains, strong auto-generated secrets, and all optional integrations (Resend, Google OAuth, S3/CloudFront) defaulting to empty strings. The template follows established two-domain and remote-build-context patterns already present in the repo (e.g., openpanel, firecrawl). The signoz files in the diff are pre-existing changes on the branch, not introduced in the latest commit.

Confidence Score: 5/5

Safe to merge; only P2 style/documentation suggestions remain.

No P0 or P1 findings. The two remaining comments are P2: one about pinning the mutable #main build ref (acknowledged pattern in the repo), and one about documenting multi-line PEM key encoding for the optional CloudFront integration. Neither blocks functionality or deployment.

blueprints/multica/template.toml — CLOUDFRONT_PRIVATE_KEY documentation; blueprints/multica/docker-compose.yml — build context pin.

Reviews (1): Last reviewed commit: "Add Multica template" | Re-trigger Greptile

Greptile also left 2 inline comments on this PR.

enemyrr and others added 5 commits October 22, 2025 15:09
…ration

- Added environment variables for ClickHouse user and password in docker-compose.yml.
- Updated ClickHouse connection strings to use environment variables for enhanced security.
- Upgraded ClickHouse and Signoz images to the latest versions.
- Modified schema migrator commands to include authentication details.
- Enhanced template.toml with ClickHouse user and password configuration.
… Compose and enhance template configuration

- Removed ClickHouse user and password environment variables from docker-compose.yml for improved security.
- Updated template.toml to include a new user configuration for ClickHouse with additional access management settings and a default user entry.
…onfiguration

- Renamed ClickHouse metrics service in docker-compose.yml for clarity.
- Updated ClickHouse image version to 24.8-alpine for compatibility.
- Added JSON configuration file mount for ClickHouse in docker-compose.yml.
- Enhanced template.toml with a new JSON configuration for ClickHouse profiles.
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>
@dosubot dosubot Bot added size:M This PR changes 30-99 lines, ignoring generated files. new-template labels Apr 17, 2026
@enemyrr
Copy link
Copy Markdown
Author

enemyrr commented Apr 17, 2026

Closing — opening a clean PR with only the Multica commit off upstream/main.

@enemyrr enemyrr closed this Apr 17, 2026
Comment on lines +21 to +22
context: "https://github.com/multica-ai/multica.git#main"
dockerfile: Dockerfile
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Build context pinned to mutable #main ref

Both services build from https://github.com/multica-ai/multica.git#main, which always resolves to the latest commit on main. Any breaking upstream change silently breaks all future deployments of this template with no way to roll back. Pinning to a specific commit SHA or semver tag (once the project cuts releases) would make deployments reproducible and safe to re-deploy.

This matches the acknowledged firecrawl/nuq-postgres pattern; at minimum, a comment noting "pin this to a release tag once available" would help future maintainers.

S3_REGION = "us-west-2"
CLOUDFRONT_DOMAIN = ""
CLOUDFRONT_KEY_PAIR_ID = ""
CLOUDFRONT_PRIVATE_KEY = ""
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Multi-line PEM key may not survive plain env-var assignment

CLOUDFRONT_PRIVATE_KEY is a CloudFront signing key — an RSA-2048 private key in PEM format with embedded newlines. Setting it as a bare environment variable (e.g., pasting a PEM block in Dokploy's env editor) typically breaks because the newlines are stripped or mis-parsed. A convention comment (e.g., encode newlines as \n, or base64-encode the value and have the application decode it) would save users from silent signing failures.

Since this defaults to "" and is only needed for S3/CloudFront media uploads, it won't block the initial deployment — but documentation here would prevent a confusing runtime error later.

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

Labels

new-template size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant