Skip to content

Add MaxIO template#744

Open
sancho1952007 wants to merge 9 commits intoDokploy:canaryfrom
sancho1952007:add/maxio
Open

Add MaxIO template#744
sancho1952007 wants to merge 9 commits intoDokploy:canaryfrom
sancho1952007:add/maxio

Conversation

@sancho1952007
Copy link
Copy Markdown
Contributor

@sancho1952007 sancho1952007 commented Mar 12, 2026

What is this PR about?

New PR of MaxIO

Checklist

Before submitting this PR, please make sure that:

Issues related (if applicable)

Close automatically the related issues using the keywords: closes #ISSUE_NUMBER

Screenshots or Videos

Greptile Summary

This PR adds a new MaxIO template — a lightweight, S3-compatible object storage server written in Rust — to the Dokploy templates collection. While the intent is correct, there are several critical issues that need to be addressed before merging.

  • docker-compose.yml: Missing required version: "3.8", uses ports (must be replaced with expose), missing restart: unless-stopped, and the image is not pinned to a specific version tag — all of which violate the repository's documented conventions.
  • template.toml: Env vars are declared using TOML table syntax ([config.env] with key-value pairs) instead of the required array-of-strings format under [config]. This will cause env variables to be silently ignored at deploy time.
  • meta.json: The Strapi template entry is unintentionally deleted while its blueprint files still exist in the repository. This is likely a merge conflict artifact and must be restored.
  • The logo is provided as PNG rather than the preferred SVG format (minor).

Confidence Score: 1/5

  • Not safe to merge — multiple convention violations in the template files and an unintended deletion of an existing template.
  • The docker-compose.yml violates three hard requirements (version, ports vs expose, restart), the template.toml uses the wrong env var format which would break deployment, and the PR accidentally removes the Strapi entry from meta.json.
  • blueprints/maxio/docker-compose.yml, blueprints/maxio/template.toml, and meta.json all require fixes before this PR can be merged.

Comments Outside Diff (1)

  1. meta.json, line 5969-5985 (link)

    Unrelated deletion of the Strapi template

    This PR removes the strapi entry from meta.json, but the blueprint files (blueprints/strapi/docker-compose.yml, blueprints/strapi/template.toml, blueprints/strapi/strapi.svg) still exist in the repository. This deletion appears to be an unintended side-effect, likely from a merge conflict or editing error. The Strapi entry should be restored so that this PR only adds the MaxIO template.

Last reviewed commit: 06f8b45

Greptile also left 3 inline comments on this PR.

(3/5) Reply to the agent's comments like "Can you suggest a fix for this @greptileai?" or ask follow-up questions!

Context used:

  • Rule used - AGENTS.md (source)

Copilot AI review requested due to automatic review settings March 12, 2026 16:07
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Mar 12, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 12, 2026

built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
templates ✅ Ready (View Log) Visit Preview 1955d94

@@ -0,0 +1,12 @@
services:
maxio:
image: ghcr.io/coollabsio/maxio
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Docker image not pinned to a specific version

The image ghcr.io/coollabsio/maxio has no version tag, which means Docker will silently pull a potentially breaking latest update. The AGENTS.md and security guidelines both require images to be pinned to a specific version (e.g., ghcr.io/coollabsio/maxio:v0.1.0). The version field in meta.json should also be updated to match this tag.

Rule Used: AGENTS.md (source)

Comment on lines +1 to +12
services:
maxio:
image: ghcr.io/coollabsio/maxio
ports:
- "9000:9000"
volumes:
- maxio-data:/data
environment:
- MAXIO_ACCESS_KEY=${MAXIO_ADMIN}
- MAXIO_SECRET_KEY=${MAXIO_PASSWORD}
volumes:
maxio-data:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing version, restart, and incorrect ports field

The docker-compose file has three violations of the required conventions defined in AGENTS.md:

  1. version: "3.8" is required but is absent.
  2. ports must not be used — use expose instead. Dokploy handles routing, so exposing host ports directly conflicts with its isolation model.
  3. restart: unless-stopped or restart: always is required but is missing. Without it, the container will not recover from crashes or host reboots.

Please update the file to add version: "3.8" at the top, replace the ports section with expose: ["9000"], and add restart: unless-stopped to the maxio service.

Rule Used: AGENTS.md (source)

Comment on lines +6 to +8
[config.env]
MAXIO_ADMIN="${password:20}"
MAXIO_PASSWORD="${password:20}"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Wrong env vars format — must be an array of strings

The [config.env] TOML table syntax is incorrect. Per AGENTS.md and its "Common Pitfalls to Avoid" section: "Using object syntax for env vars in template.toml (must be array of strings)".

The current file defines env vars as a TOML table (key-value pairs under [config.env]), but Dokploy expects them to be an inline array of strings under [config]. Compare with the ghost blueprint's template.toml which uses env = [...] (an array, not a nested table). This incorrect syntax will cause env variables to not be injected at deploy time.

Rule Used: AGENTS.md (source)

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 for deploying MaxIO (S3-compatible object storage) by introducing a new blueprints/maxio/ template and registering it in meta.json.

Changes:

  • Added blueprints/maxio/docker-compose.yml and blueprints/maxio/template.toml for MaxIO deployment configuration.
  • Added MaxIO logo asset (blueprints/maxio/maxio.png).
  • Registered the MaxIO template in meta.json (and adjusted ordering around existing entries).

Reviewed changes

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

File Description
meta.json Adds a new maxio entry to the template index.
blueprints/maxio/docker-compose.yml Defines the MaxIO service, storage volume, and environment variable wiring.
blueprints/maxio/template.toml Adds domain routing and generates credentials via helpers.
blueprints/maxio/maxio.png Adds the MaxIO logo referenced by meta.json.

@@ -0,0 +1,12 @@
services:
maxio:
image: ghcr.io/coollabsio/maxio
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

The service image is not pinned to a specific tag (defaults to whatever the registry serves). For template stability and reproducibility, please pin ghcr.io/coollabsio/maxio to a known-good version and keep meta.json.version in sync with that tag.

Suggested change
image: ghcr.io/coollabsio/maxio
image: ghcr.io/coollabsio/maxio:1.0.0

Copilot uses AI. Check for mistakes.
meta.json Outdated
Comment on lines +3865 to +3866
"version": "latest",
"description": "MaxIO is a lightweight, single-binary S3-compatible object storage server written in Rust",
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

version is set to "latest". If the template is intended to be reproducible over time, it should reference a specific released version (and match the Docker image tag used in the compose file).

Copilot uses AI. Check for mistakes.
Comment on lines +4 to +5
ports:
- "9000:9000"
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

ports is using a host:container mapping ("9000:9000"). Repo guidance in README.md recommends not binding a fixed host port in templates (to avoid collisions); use the short form (e.g., just the container port) or expose instead so Dokploy can route internally.

Suggested change
ports:
- "9000:9000"

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 3 comments.

Comment on lines +6 to +8
[config.env]
MAXIO_ADMIN="${password:20}"
MAXIO_PASSWORD="${password:20}"
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

This template uses a [config.env] table, but the repository’s documented template.toml structure recommends defining env vars as an env = ["KEY=VALUE", ...] array under [config] (see AGENTS.md:166-171). Please update to the documented format so new templates stay consistent with current guidance (and to make the env vars’ shape unambiguous).

Suggested change
[config.env]
MAXIO_ADMIN="${password:20}"
MAXIO_PASSWORD="${password:20}"
[config]
env = [
"MAXIO_ADMIN=${password:20}",
"MAXIO_PASSWORD=${password:20}",
]

Copilot uses AI. Check for mistakes.
meta.json Outdated
"name": "MaxIO",
"version": "0.2.1",
"description": "MaxIO is a lightweight, single-binary S3-compatible object storage server written in Rust",
"logo": "maxio.png",
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

Logo files are preferred as SVG in this repo (for consistency and smaller size), but this entry references maxio.png. If an SVG is available, consider switching the logo to maxio.svg and updating the logo field accordingly. Reference: AGENTS.md:145.

Suggested change
"logo": "maxio.png",
"logo": "maxio.svg",

Copilot uses AI. Check for mistakes.
services:
maxio:
image: ghcr.io/coollabsio/maxio:0.2.1
ports:
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

docker-compose.yml uses ports, but this repo’s contribution guidelines explicitly disallow publishing ports (Dokploy handles routing). Replace ports with expose (or remove port publishing entirely) so the service is only reachable via Dokploy’s proxy. Reference: AGENTS.md:147-151.

Suggested change
ports:
expose:

Copilot uses AI. Check for mistakes.
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.

2 participants