Skip to content

Conversation

@marcusquinn
Copy link
Owner

@marcusquinn marcusquinn commented Jan 29, 2026

Summary

  • Add comprehensive documentation for using git.cloudron.io GitLab instance as a reference when packaging Cloudron apps
  • Enable AI agents to study real-world packaging patterns from 200+ official Cloudron app packages

Changes

New Section: "Using git.cloudron.io as Reference"

Added detailed documentation covering:

  • Repository Structure: packages, playground, platform, docs, apps, utils groups
  • Finding Reference Apps by Technology: PHP (21+), Node (10+), Python (6+), Go (11+), Java (10+), Ruby/Rails (4+), nginx (6+), Apache (4+), Supervisor (2+)
  • GitLab API Examples: Programmatic access for searching and fetching package code
  • Recommended Reference Apps by Use Case: 10 curated examples (ghost-app, nextcloud-app, wordpress-app, synapse-app, vikunja-app, metabase-app, discourse-app, peertube-app, grafana-app, jellyfin-app)
  • What to Study in Reference Apps: Key files to examine (CloudronManifest.json, Dockerfile, start.sh, nginx/apache configs, supervisor configs, CHANGELOG.md)
  • Cloning Patterns: Including sparse checkout for efficient local study
  • Finding Solutions to Specific Problems: Search patterns for common challenges

Enhanced Resources Section

Reorganized into:

  • Official Documentation (5 links)
  • git.cloudron.io (Source Code) with table of key resources
  • Example Repos by Framework with topic URLs and example apps
  • Other Resources (forum, base image, app store)

Updated Quick Reference

  • Added "Source Code" link to packages group
  • Added "By Technology" link to topics explorer

Testing

  • Markdown linting passes (0 errors)
  • All URLs verified accessible
  • GitLab API endpoints tested and working

Summary by CodeRabbit

  • Documentation

    • Major expansion of the Cloudron app packaging guide: added a GitLab-based reference section, repository-structure guidance, curated example apps by framework/use case, enhanced resources and navigation, cloning/search workflows, and practical packaging patterns and troubleshooting.
  • Chores

    • Added backlog item to fix version sync inconsistencies.
    • Expanded multi-agent orchestration backlog with a TUI dashboard subtask, estimated effort, and noted blockers.

✏️ Tip: You can customize this high-level summary in your review settings.

Add detailed documentation for using git.cloudron.io GitLab instance
as a reference when packaging Cloudron apps:

- Repository structure (packages, playground, platform, docs, apps, utils)
- Finding reference apps by technology (PHP, Node, Python, Go, etc.)
- GitLab API examples for programmatic access
- Recommended reference apps by use case (10 curated examples)
- What to study in reference apps (key files to examine)
- Cloning patterns for local study
- Finding solutions to specific packaging problems
- Enhanced Resources section with organized links

This enables AI agents to study real-world packaging patterns from
200+ official Cloudron app packages when helping users package new apps.
@gemini-code-assist
Copy link

Summary of Changes

Hello @marcusquinn, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the documentation for Cloudron app packaging by integrating git.cloudron.io as a primary reference source. The changes aim to provide developers with a structured guide to explore existing app packages, understand best practices, and utilize programmatic access to the GitLab instance, thereby streamlining the packaging process and enabling AI agents to learn from real-world examples.

Highlights

  • New Comprehensive Reference Section: A new section titled 'Using git.cloudron.io as Reference' has been added, providing detailed guidance on leveraging the Cloudron GitLab instance for app packaging. This includes repository structure, finding apps by technology, GitLab API examples, recommended reference apps, key files to study, cloning patterns, and troubleshooting specific problems.
  • Enhanced Resources Section: The existing 'Resources' section has been significantly reorganized and expanded. It now clearly separates official documentation, git.cloudron.io resources, example repositories by framework, and other useful links, presenting them in a more structured and accessible format.
  • Updated Quick Reference: The quick reference section has been updated to include direct links to the 'packages' group for source code and the 'explore projects by topics' page for finding apps by technology, improving discoverability for common use cases.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 29, 2026

Walkthrough

Expanded and restructured Cloudron app-packaging docs: added git.cloudron.io reference guidance, repository exploration and GitLab API usage, curated reference-app lists and cloning/search workflows; also added a new standalone git.cloudron.io reference doc and two TODO backlog items (version sync + TUI dashboard).

Changes

Cohort / File(s) Summary
Cloudron Packaging & Quick Reference
.agent/tools/deployment/cloudron-app-packaging.md
Major content restructure and additions: replaced old Examples with Source Code & By Technology quick refs; added "Using git.cloudron.io as Reference"; expanded Resources and Example Repos by Framework; introduced Recommended Reference Apps by Use Case and practical cloning/search patterns.
Dedicated GitLab Reference doc
.agent/tools/deployment/cloudron-git-reference.md
New documentation file describing git.cloudron.io repo structure, how to find apps by technology/use-case, GitLab API usage, focal files to study, cloning (sparse-checkout) and search patterns across packages.
Backlog / TODO
TODO.md
Added t082: fix VERSION vs package.json/setup.sh/aidevops.sh sync; extended t068 with t068.8 (TUI Dashboard / Ink) and effort/blocker notes.

Sequence Diagram(s)

(omitted — changes are documentation additions and backlog entries; no new multi-component runtime control flow introduced)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

In repos where packaging secrets hide,
We map the paths and bring a guide,
Clone, inspect, and learn with glee,
Tiny scripts marching—TUI soon we'll see,
Docs polished, CI hums—deploy with pride. 🚀

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding git.cloudron.io as a comprehensive reference source for Cloudron app packaging, which is reflected across all modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request significantly enhances the Cloudron app packaging documentation by adding a comprehensive guide on using git.cloudron.io as a reference. The new sections on repository structure, finding apps by technology, API usage, and recommended reference apps are excellent additions. The reorganization of the resources section also improves clarity. I've made a few suggestions to fix a broken link and improve the accuracy of some API examples.

| **Explore by Topic** | https://git.cloudron.io/explore/projects/topics |
| **Recently Updated** | https://git.cloudron.io/explore/projects?sort=latest_activity_desc |
| **Platform Code** | https://git.cloudron.io/platform |
| **Documentation Source** | https://git.cloudron.io/docs/docs |

Choose a reason for hiding this comment

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

high

The link for 'Documentation Source' (https://git.cloudron.io/docs/docs) appears to be broken, as it results in a 404 error for public access. The 'Repository Structure' table earlier in the document uses https://git.cloudron.io/docs, which links to the group. Please update this to a valid, accessible URL. If the repository is intended to be private, it might be better to remove this entry to avoid confusion.

curl -s "https://git.cloudron.io/api/v4/projects/packages%2Fghost-app/repository/tree"

# Get raw file content
curl -s "https://git.cloudron.io/api/v4/projects/packages%2Fghost-app/repository/files/start.sh/raw?ref=master"

Choose a reason for hiding this comment

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

medium

The GitLab API for fetching raw file content defaults to the repository's default branch if the ref parameter is omitted. To make this example more robust against future changes (e.g., a repository renaming its default branch from master to main), it's better to remove ?ref=master.

Suggested change
curl -s "https://git.cloudron.io/api/v4/projects/packages%2Fghost-app/repository/files/start.sh/raw?ref=master"
curl -s "https://git.cloudron.io/api/v4/projects/packages%2Fghost-app/repository/files/start.sh/raw"

# Get raw file content
curl -s "https://git.cloudron.io/api/v4/projects/packages%2Fghost-app/repository/files/start.sh/raw?ref=master"

# Search for code patterns across repos (requires auth for some endpoints)

Choose a reason for hiding this comment

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

medium

The comment "Search for code patterns across repos" is a bit misleading, as the curl command on the next line searches within a single project (packages/ghost-app). To avoid confusion, I suggest updating the comment to clarify that the search is project-specific.

Suggested change
# Search for code patterns across repos (requires auth for some endpoints)
# Search for code patterns within a repo (requires auth for some endpoints)

@github-actions
Copy link

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 478 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Thu Jan 29 00:23:09 UTC 2026: Code review monitoring started
Thu Jan 29 00:23:10 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 478
Thu Jan 29 00:23:10 UTC 2026: Qlty - 0 issues found, auto-formatting applied
Thu Jan 29 00:23:12 UTC 2026: Codacy analysis completed with auto-fixes

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 478
  • VULNERABILITIES: 0

Generated on: Thu Jan 29 00:24:37 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

@augmentcode
Copy link

augmentcode bot commented Jan 29, 2026

🤖 Augment PR Summary

Summary: Expands Cloudron app packaging guidance by adding git.cloudron.io (Cloudron’s GitLab) as a primary reference for real-world packaging patterns.

Changes:

  • Updates the quick-reference links to point to the packages group and the topic explorer.
  • Adds a new “Using git.cloudron.io as Reference” section describing group structure and how to find apps by technology/topic.
  • Provides GitLab API curl examples for listing/searching projects, browsing repository trees, fetching raw files, and searching blobs.
  • Includes a curated set of recommended reference apps by common packaging use case.
  • Lists key files to study in reference packages (manifest, Dockerfile, init scripts, web server configs, supervisor configs, changelog).
  • Documents cloning and sparse-checkout patterns for efficient local inspection.
  • Reorganizes the Resources section into official docs, git.cloudron.io source links, framework/topic examples, and other links.

Technical Notes: The new material is geared toward helping packagers (and AI agents) learn from 200+ official Cloudron packages and reuse proven implementation patterns.

🤖 Was this summary useful? React with 👍 or 👎

Copy link

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

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

Review completed. 2 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.


```bash
# List all packages group projects
curl -s "https://git.cloudron.io/api/v4/groups/packages/projects?per_page=100"
Copy link

Choose a reason for hiding this comment

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

This example only returns the first page (max 100) of projects; since the text mentions 200+ packages, readers may assume this lists everything without needing pagination.

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎

# Get raw file content
curl -s "https://git.cloudron.io/api/v4/projects/packages%2Fghost-app/repository/files/start.sh/raw?ref=master"

# Search for code patterns across repos (requires auth for some endpoints)
Copy link

Choose a reason for hiding this comment

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

This endpoint searches within a single project (ghost-app), so the wording “across repos” may be misleading here.

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.agent/tools/deployment/cloudron-app-packaging.md:
- Around line 118-133: Extract the inline bash examples under the "Using
git.cloudron.io as Reference" section (notably the blocks with comments like
"List all packages group projects", "Search projects by topic", "Get repository
file tree", "Get raw file content", and "Search for code patterns across repos")
into dedicated reference files (e.g., gitlab-api-examples.md or a subagent
reference file) and replace the inline snippets in
.agent/tools/deployment/cloudron-app-packaging.md with concise file:line
references pointing to those new files; ensure you move the other two inline
blocks called out (the Git cloning patterns and API search examples referenced
at lines 165-173 and 179-188) into their own reference files as well and update
their places in the document to point to the new reference paths.
- Around line 81-196: The "Using git.cloudron.io as Reference" section in
.agent/tools/deployment/cloudron-app-packaging.md is too large and must be
extracted into a subagent per the progressive disclosure guideline; move the
entire block (the content currently between the "Using git.cloudron.io as
Reference" header — the large table, API examples, recommended apps and cloning
tips) into a new file named .agent/tools/deployment/cloudron-git-reference.md,
then replace the original block with a short pointer paragraph linking to that
new subagent (one-line description + relative filename), ensuring references
like the section header and examples are preserved in the new file.

@github-actions
Copy link

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 478 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Thu Jan 29 00:29:26 UTC 2026: Code review monitoring started
Thu Jan 29 00:29:26 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 478
Thu Jan 29 00:29:27 UTC 2026: Qlty - 0 issues found, auto-formatting applied
Thu Jan 29 00:29:29 UTC 2026: Codacy analysis completed with auto-fixes

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 478
  • VULNERABILITIES: 0

Generated on: Thu Jan 29 00:30:53 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
TODO.md (1)

65-65: Time estimate mismatch between human-readable and TOON block.

Line 65 shows ~3h but the corresponding TOON:backlog entry at line 208 shows 6h,4h,1h,1h (total=6h with breakdown: ai:4h, test:1h, read:1h). This inconsistency will confuse task management tools and project planning.

🔧 Proposed fix

Update line 65 to match the TOON block data:

-  - [ ] t068.8 TUI Dashboard (extend bdui or new Ink app) ~3h blocked-by:t068.4,t068.5
+  - [ ] t068.8 TUI Dashboard (extend bdui or new Ink app) ~6h (ai:4h test:1h read:1h) blocked-by:t068.4,t068.5

Or if 3h is correct, update the TOON block at line 208 to reflect the intended estimate breakdown.

🤖 Fix all issues with AI agents
In `@TODO.md`:
- Around line 55-56: The TODO.md file has a mismatch: the human-readable Backlog
added task t082 but the machine-readable TOON block
(`<!--TOON:backlog[52]...-->`) is missing the t082 entry; fix this by updating
the TOON backlog block to include the t082 item following the existing schema
used in the block (match ID, title, tags, estimates and logged info as in the
human-readable line), or regenerate the TOON block by running
beads-sync-helper.sh sync; after updating run toon-helper.sh validate TODO.md to
ensure no other inconsistencies remain.

Comment on lines +55 to +56
- [ ] t082 Fix version sync inconsistency (VERSION vs package.json/setup.sh/aidevops.sh) #bugfix ~15m (ai:10m test:5m) logged:2026-01-29
- Notes: Release commit bd0695c bumped VERSION to 2.92.1 but missed syncing package.json, setup.sh, aidevops.sh, sonar-project.properties, .claude-plugin/marketplace.json. Either fix manually or ensure version-manager.sh is used for all releases.
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Task t082 is missing from TOON machine-readable block.

The new task t082 is added to the human-readable Backlog section but is absent from the <!--TOON:backlog[52]...--> block (lines 196-272). This inconsistency will break tools that parse TOON blocks for task management, sync with Beads, or generate reports.

🔧 Resolution options
  1. Run beads-sync-helper.sh sync to regenerate TOON blocks from human-readable content
  2. Manually add t082 entry to the TOON:backlog block following the schema at line 196
  3. Use toon-helper.sh validate TODO.md to check for additional inconsistencies
🤖 Prompt for AI Agents
In `@TODO.md` around lines 55 - 56, The TODO.md file has a mismatch: the
human-readable Backlog added task t082 but the machine-readable TOON block
(`<!--TOON:backlog[52]...-->`) is missing the t082 entry; fix this by updating
the TOON backlog block to include the t082 item following the existing schema
used in the block (match ID, title, tags, estimates and logged info as in the
human-readable line), or regenerate the TOON block by running
beads-sync-helper.sh sync; after updating run toon-helper.sh validate TODO.md to
ensure no other inconsistencies remain.

Move detailed git.cloudron.io documentation to dedicated subagent file
per progressive disclosure guidelines. Main packaging guide now has a
concise pointer to the full reference.

- Create cloudron-git-reference.md with full documentation
- Replace inline content with pointer in cloudron-app-packaging.md
@sonarqubecloud
Copy link

@github-actions
Copy link

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 478 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Thu Jan 29 00:35:48 UTC 2026: Code review monitoring started
Thu Jan 29 00:35:49 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 478
Thu Jan 29 00:35:49 UTC 2026: Qlty - 0 issues found, auto-formatting applied
Thu Jan 29 00:35:51 UTC 2026: Codacy analysis completed with auto-fixes

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 478
  • VULNERABILITIES: 0

Generated on: Thu Jan 29 00:37:15 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.agent/tools/deployment/cloudron-git-reference.md:
- Around line 10-124: This doc embeds multiple inline bash/code snippets and
operational guidance; refactor cloudron-git-reference.md to follow the
progressive-disclosure pattern by removing inline code blocks (e.g., embedded
bash examples and the curl snippets) and replacing them with pointers to
subagents or explicit file:line references pointing at real implementations (use
examples like start.sh, Dockerfile, CloudronManifest.json, supervisord.conf,
nginx/*.conf, and occurrences such as `gosu cloudron:cloudron`, `ln -sfn
/app/data`, and `envsubst` to show where to link), and move any authoritative
instruction text into AGENTS.md as the single source of truth while leaving only
concise pointers and links in this file.
🧹 Nitpick comments (1)
.agent/tools/deployment/cloudron-git-reference.md (1)

12-39: Avoid hard-coded counts or date-stamp them to prevent drift.

The “200+ apps” and per‑technology counts will go stale. Consider removing counts or adding an “as of YYYY‑MM‑DD” qualifier to keep the doc accurate.

📌 Example adjustment
-| `packages` | https://git.cloudron.io/packages | Official app packages (200+ apps) |
+| `packages` | https://git.cloudron.io/packages | Official app packages (count as of 2026-01-29) |
-| PHP | https://git.cloudron.io/explore/projects/topics/php | 21+ |
+| PHP | https://git.cloudron.io/explore/projects/topics/php | 21+ (as of 2026-01-29) |

Comment on lines +10 to +124
# Using git.cloudron.io as Reference

The Cloudron GitLab instance at https://git.cloudron.io/ hosts all official app packages and is the authoritative source for packaging patterns. Use it to study real-world implementations when packaging new apps.

## Repository Structure

| Group | URL | Purpose |
|-------|-----|---------|
| `packages` | https://git.cloudron.io/packages | Official app packages (200+ apps) |
| `playground` | https://git.cloudron.io/playground | Incubator for new/experimental packages |
| `platform` | https://git.cloudron.io/platform | Cloudron platform code (box, base images) |
| `docs` | https://git.cloudron.io/docs | Official documentation source |
| `apps` | https://git.cloudron.io/apps | Apps developed by Cloudron.io team |
| `utils` | https://git.cloudron.io/utils | Tools and utilities |

## Finding Reference Apps by Technology

Browse apps by topic/tag to find packages using similar technology stacks:

| Technology | URL | Count |
|------------|-----|-------|
| PHP | https://git.cloudron.io/explore/projects/topics/php | 21+ |
| Go | https://git.cloudron.io/explore/projects/topics/go | 11+ |
| Node.js | https://git.cloudron.io/explore/projects/topics/node | 10+ |
| Java | https://git.cloudron.io/explore/projects/topics/java | 10+ |
| Python | https://git.cloudron.io/explore/projects/topics/python | 6+ |
| Ruby/Rails | https://git.cloudron.io/explore/projects/topics/rails | 4+ |
| nginx | https://git.cloudron.io/explore/projects/topics/nginx | 6+ |
| Apache | https://git.cloudron.io/explore/projects/topics/apache | 4+ |
| Supervisor | https://git.cloudron.io/explore/projects/topics/supervisor | 2+ |

**All topics**: https://git.cloudron.io/explore/projects/topics

## GitLab API for Programmatic Access

The GitLab API enables searching and fetching package code programmatically:

```bash
# List all packages group projects
curl -s "https://git.cloudron.io/api/v4/groups/packages/projects?per_page=100"

# Search projects by topic
curl -s "https://git.cloudron.io/api/v4/projects?topic=php&per_page=20"

# Get repository file tree
curl -s "https://git.cloudron.io/api/v4/projects/packages%2Fghost-app/repository/tree"

# Get raw file content
curl -s "https://git.cloudron.io/api/v4/projects/packages%2Fghost-app/repository/files/start.sh/raw?ref=master"

# Search for code patterns across repos (requires auth for some endpoints)
curl -s "https://git.cloudron.io/api/v4/projects/packages%2Fghost-app/search?scope=blobs&search=supervisord"
```

## Recommended Reference Apps by Use Case

When packaging a new app, study these well-maintained packages as templates:

| Use Case | Reference App | Why |
|----------|---------------|-----|
| **Node.js + nginx** | [ghost-app](https://git.cloudron.io/packages/ghost-app) | Clean supervisor setup, nginx proxy |
| **PHP + nginx** | [nextcloud-app](https://git.cloudron.io/packages/nextcloud-app) | Complex PHP app, cron, background jobs |
| **PHP + Apache** | [wordpress-app](https://git.cloudron.io/packages/wordpress-app) | Apache config, plugin handling |
| **Python + nginx** | [synapse-app](https://git.cloudron.io/packages/synapse-app) | Python virtualenv, complex config |
| **Go binary** | [vikunja-app](https://git.cloudron.io/packages/vikunja-app) | Simple Go app with nginx frontend |
| **Java/JVM** | [metabase-app](https://git.cloudron.io/packages/metabase-app) | JVM memory tuning, startup scripts |
| **Ruby/Rails** | [discourse-app](https://git.cloudron.io/packages/discourse-app) | Complex Rails app, sidekiq workers |
| **Multi-process** | [peertube-app](https://git.cloudron.io/packages/peertube-app) | Supervisor with multiple workers |
| **LDAP/OIDC auth** | [grafana-app](https://git.cloudron.io/packages/grafana-app) | Auth integration patterns |
| **Media handling** | [jellyfin-app](https://git.cloudron.io/packages/jellyfin-app) | Large file handling, transcoding |

## What to Study in Reference Apps

When examining a reference package, focus on these files:

1. **CloudronManifest.json** - Addon requirements, memory limits, health check path
2. **Dockerfile** - Base image choice, build steps, file permissions
3. **start.sh** - Initialization sequence, config injection, symlink patterns
4. **nginx/*.conf** or **apache/*.conf** - Web server configuration
5. **supervisor/*.conf** - Multi-process orchestration (if used)
6. **CHANGELOG.md** - Version history and migration patterns

## Cloning for Local Study

```bash
# Clone a reference app for local study
git clone https://git.cloudron.io/packages/ghost-app.git

# Or use sparse checkout for specific files
git clone --filter=blob:none --sparse https://git.cloudron.io/packages/ghost-app.git
cd ghost-app
git sparse-checkout set start.sh Dockerfile CloudronManifest.json
```

## Finding Solutions to Specific Problems

When facing a specific packaging challenge, search across all packages:

```bash
# Find apps using supervisord
curl -s "https://git.cloudron.io/api/v4/projects?topic=supervisor"

# Find apps with proxyAuth (Cloudron handles auth)
curl -s "https://git.cloudron.io/api/v4/projects?topic=proxyAuth"

# Browse recently updated packages (most active/maintained)
# Visit: https://git.cloudron.io/explore/projects?sort=latest_activity_desc
```

**Common patterns to search for**:
- `gosu cloudron:cloudron` - Privilege dropping
- `ln -sfn /app/data` - Symlink patterns for writable paths
- `CLOUDRON_POSTGRESQL_` - Database configuration
- `supervisord.conf` - Multi-process setup
- `envsubst` - Template-based config injection
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion | 🟠 Major

Replace inline code blocks with progressive-disclosure pointers and file:line references.

This .agent/**/*.md file includes multiple inline bash snippets and extensive inline guidance, which conflicts with the requirement to use progressive disclosure and reference actual implementations via file:line. Please refactor this doc to link out to subagents or file:line references instead of embedding code blocks.
As per coding guidelines: “.agent/**/*.md: Apply progressive disclosure pattern by using pointers to subagents rather than including inline content in agent documentation. Include code examples only when authoritative; use file:line references to point to actual implementation instead of inline code snippets.”

Based on learnings: “All instructions, documentation, and operational guidance should be maintained in AGENTS.md as the single source of truth.”

🤖 Prompt for AI Agents
In @.agent/tools/deployment/cloudron-git-reference.md around lines 10 - 124,
This doc embeds multiple inline bash/code snippets and operational guidance;
refactor cloudron-git-reference.md to follow the progressive-disclosure pattern
by removing inline code blocks (e.g., embedded bash examples and the curl
snippets) and replacing them with pointers to subagents or explicit file:line
references pointing at real implementations (use examples like start.sh,
Dockerfile, CloudronManifest.json, supervisord.conf, nginx/*.conf, and
occurrences such as `gosu cloudron:cloudron`, `ln -sfn /app/data`, and
`envsubst` to show where to link), and move any authoritative instruction text
into AGENTS.md as the single source of truth while leaving only concise pointers
and links in this file.

@marcusquinn marcusquinn merged commit 3b7c815 into main Jan 29, 2026
12 of 13 checks passed
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.

1 participant