Skip to content

Add MyLinks template - #1089

Merged
Siumauricio merged 5 commits into
Dokploy:canaryfrom
Sonny93:add-my-links-template
Aug 25, 2026
Merged

Add MyLinks template#1089
Siumauricio merged 5 commits into
Dokploy:canaryfrom
Sonny93:add-my-links-template

Conversation

@Sonny93

@Sonny93 Sonny93 commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Adds a Dokploy blueprint for MyLinks, a self-hostable bookmark manager (organize, search and share links, collections, click-based ranking, browser extension).

Template

  • my-links service (AGPL-3.0, image sonny93/my-links:5.3.0) + its own postgres:18-alpine, following the same two-service pattern as the existing linkwarden template.
  • APP_KEY and DB_PASSWORD generated via Dokploy helpers, APP_URL derived from the assigned domain.
  • Validated with node build-scripts/generate-meta.js --check.

Testing notes

Not yet deployed through a live Dokploy instance — will test via the PR preview once available and report back before merge.

Copilot AI lite review requested due to automatic review settings August 18, 2026 04:04
@dosubot dosubot Bot added size:S This PR changes 10-29 lines, ignoring generated files. template New template request labels Aug 18, 2026
@github-actions

github-actions Bot commented Aug 18, 2026

Copy link
Copy Markdown
built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
templates ✅ Ready (View Log) Visit Preview 2365e67

Copilot AI left a comment

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.

Pull request overview

Adds a new Dokploy blueprint under blueprints/my-links/ to deploy the open-source MyLinks bookmark manager, including service configuration, metadata, and a logo asset consistent with existing templates.

Changes:

  • Added docker-compose.yml defining the my-links app service plus a dedicated Postgres dependency.
  • Added template.toml configuring variables, domain routing to port 3333, and required environment variables.
  • Added blueprint metadata (meta.json) and a logo (my-links.svg) for discovery/UX in the templates catalog.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.

File Description
blueprints/my-links/template.toml Defines Dokploy variables, domain mapping, and env vars for the MyLinks deployment.
blueprints/my-links/docker-compose.yml Introduces the two-service Compose setup (app + Postgres) for the template.
blueprints/my-links/meta.json Adds the template’s catalog metadata (id/name/version/links/tags/logo).
blueprints/my-links/my-links.svg Adds the template logo asset referenced by meta.json.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread blueprints/my-links/docker-compose.yml

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated no new comments.

Suppressed comments (1)

blueprints/my-links/docker-compose.yml:43

  • Postgres healthcheck currently runs pg_isready with defaults (i.e., checks readiness for the postgres user). Since the app connects as mylinks to DB mylinks, the healthcheck can report healthy even if those specific credentials/db aren’t usable yet, which can let my-links start too early and fail its DB connection.
      - postgres-data:/var/lib/postgresql
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready']
      interval: 10s
      timeout: 5s

Copilot AI review requested due to automatic review settings August 18, 2026 04:16

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings August 25, 2026 02:49

Copilot AI left a comment

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.

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

@Siumauricio

Copy link
Copy Markdown
Contributor

Tested on a live Dokploy instance (hostinger.dokploy.com) from this branch merged with canary. Summary: works after one small healthcheck fix, which I pushed to your branch.

Upstream / legitimacy

  • my-links/my-links: org repo created 2022-04, ~986 commits, AGPL-3.0, releases webapp-v5.3.0 (2026-08-16). PR author @Sonny93 is the sole upstream maintainer (985/986 commits, only org member).
  • Image sonny93/my-links:5.3.0 on Docker Hub (repo registered 2023-11, ~2.6k pulls), manifest -> 200 without auth. Note: the tag is published for linux/amd64 only; arm64 hosts won't be able to pull it (not a blocker, just FYI).

Conventions

  • No container_name / host ports / networks, per-template meta.json with logo + links, pinned image, ${base64:32} for APP_KEY, ${password} for DB_PASSWORD, postgres:18-alpine with the volume on /var/lib/postgresql (correct for pg18). Env set matches upstream .env.example / compose.image.yml.
  • generate-meta.js --check, validate-docker-compose.ts and validate-template.ts all pass.

Deploy #1 (as submitted): ❌ Traefik returned 404 page not found

  • Both containers were running, migrations ran (Migrated in 1.3 s) and the app logged started HTTP server on 0.0.0.0:3333, but the my-links container stayed unhealthy (FailingStreak 12), so Traefik dropped it from routing.
  • Healthcheck output: wget: can't connect to remote host: Connection refused. Cause: on Alpine, localhost resolves to ::1 first and busybox wget doesn't fall back to IPv4, while the server only listens on 0.0.0.0 (IPv4).

Fix pushed: 2365e67 – healthcheck now targets http://127.0.0.1:3333/ instead of localhost.

Deploy #2 (with the fix): ✅

  • my-links-1 running (healthy), postgres-1 running (healthy), RestartCount 0 on both.
  • Through Traefik on the generated domain: GET / -> 200 (MyLinks), /login -> 200, /register -> 200 (email/password form renders).

Non-blocking nits

  • version: "3.8" isn't required by Dokploy (the commit message says it is) — it's harmless, but you can drop it.
  • APP_URL is http://${main_domain}; users enabling HTTPS on the domain should switch it to https:// (same pattern as the linkwarden template, so consistent with the repo).

Ready to merge from my side.

@Siumauricio
Siumauricio merged commit e4cd30c into Dokploy:canary Aug 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S This PR changes 10-29 lines, ignoring generated files. template New template request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants