Files
templates/blueprints/libredb-studio/libredb-studio.svg
Yusuf Gündoğdu 1c0380d77b feat(blueprint): add LibreDB Studio (#931)
* feat: add libredb-studio compose

Adds LibreDB Studio — an MIT-licensed, AI-powered open-source SQL IDE (PostgreSQL, MySQL, Oracle, SQL Server, SQLite, MongoDB, Redis).

This commit adds the docker-compose.yml. The template.toml and meta.json entry follow in the same branch.

Image: ghcr.io/libredb/libredb-studio
Repo: https://github.com/libredb/libredb-studio

* feat: add libredb-studio template.toml

Adds the Dokploy template.toml for LibreDB Studio.

Defines auto-generated secrets (admin password, user password, JWT secret), exposes port 3000 on the primary domain, and persists data via a mount at /app/data.

* feat: add libredb-studio to meta.json

Registers LibreDB Studio in the template catalog index (meta.json), alphabetically-independent top entry. Completes the LibreDB Studio template (compose + template.toml + meta entry).

* fix: sort libredb-studio entry alphabetically in meta.json

Moves the libredb-studio entry to its correct alphabetical position between librechat and libredesk so meta.json remains sorted by id. Resolves the failing "Validate and Process Meta.json" check (duplicates/sort-order validation).

* fix: expand libredb-studio tags to match meta.json formatting

Formats the libredb-studio "tags" array as a multi-line block to match the output of dedupe-and-sort-meta.js, making the entry byte-identical to the canonical processed file. Resolves the failing "Validate and Process Meta.json" check.

* fix: remove invalid mounts block from libredb-studio template.toml

Removes the [[config.mounts]] block, which failed validation because Dokploy requires a 'content' field for file mounts. Data persistence is already handled by the named volume (libredb-data:/app/data) in docker-compose.yml, so no file mount is needed. Resolves the failing "Validate Docker Compose Files" check.

* fix: correct indentation of libredb-studio tags in meta.json

Adjusts the indentation of the "tags" key to 4 spaces so the libredb-studio entry is byte-identical to the output of dedupe-and-sort-meta.js. Resolves the remaining "Validate and Process Meta.json" check failure.

* feat: add libredb-studio logo

Adds the libredb-studio.svg logo to blueprints/libredb-studio/ so it matches the "logo" field in meta.json. Resolves the "Validate Blueprints Structure and Meta" check, which verifies that each meta.json logo has a corresponding file in its blueprint folder.

* fix: bump libredb-studio image to v0.9.27

Updates the image tag from v0.9.13 to v0.9.27 (current release) so reviewers can test against the latest version.

* fix: update LibreDB Studio version to v0.9.27

Update version field from v0.9.13 to v0.9.27 in meta.json

* fix(blueprint): remove v prefix from image tag

GHCR tags do not use v prefix (0.9.27 not v0.9.27)

* fix(meta): remove v prefix from version field

GHCR tags do not use v prefix (0.9.27 not v0.9.27)
2026-07-07 15:44:07 -06:00

33 lines
1.5 KiB
XML

<svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="logo-gradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#4F46E5" />
<stop offset="100%" stop-color="#9333EA" />
</linearGradient>
<linearGradient id="code-gradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#10B981" />
<stop offset="100%" stop-color="#3B82F6" />
</linearGradient>
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="3" result="blur" />
<feComposite in="SourceGraphic" in2="blur" operator="over" />
</filter>
</defs>
<!-- Background Shape -->
<path d="M100 20L169.282 60V140L100 180L30.718 140V60L100 20Z" fill="url(#logo-gradient)" fill-opacity="0.05" stroke="url(#logo-gradient)" stroke-width="1.5"/>
<!-- Database Layers (De-emphasized) -->
<g opacity="0.3">
<rect x="70" y="80" width="60" height="10" rx="2" fill="url(#logo-gradient)" />
<rect x="70" y="95" width="60" height="10" rx="2" fill="url(#logo-gradient)" />
<rect x="70" y="110" width="60" height="10" rx="2" fill="url(#logo-gradient)" />
</g>
<!-- Coding Brackets (Emphasized) -->
<g filter="url(#glow)">
<path d="M55 70L35 100L55 130" stroke="url(#code-gradient)" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" />
<path d="M145 70L165 100L145 130" stroke="url(#code-gradient)" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" />
</g>
</svg>