Compare commits

..

6 Commits

Author SHA1 Message Date
fe060c1627 chore: add git ignore configuration
- Configure .gitignore to exclude cloned repositories
- Ignore Package-Workspace/**/repo/ to avoid polluting project repo
- Exclude common build artifacts (node_modules, target, build, dist)
- Ignore IDE files (.vscode, .idea)
- Exclude OS files (.DS_Store, Thumbs.db)
- Ignore logs and temporary files

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:59:32 -05:00
2dc31349b2 feat: add automated repository cloning script
- Create clone-repos.sh automation script
- Add colored output for better user experience
- Implement timeout handling (60 seconds per clone)
- Add automatic functional category mapping
- Include progress reporting and summary statistics
- Handle edge cases with helpful error messages
- Enable reproducible workspace setup for other developers

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:59:28 -05:00
61663d7540 feat: add upstream repository URL list
- Add GitUrlList.txt with all 62 upstream repository URLs
- Include GitHub repositories for 58+ applications
- Add GitLab repository (satnogs) for IoT/LoRaWAN
- Organize URLs in sequential order matching categories
- Note: Contains duplicate entries (warp x2, windmill x2) to be cleaned

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:59:24 -05:00
a28776f238 docs: add session resume guide
- Create RESUME.md for seamless session continuity
- Document current project state and completed work
- List uncommitted changes and suggested commit messages
- Add repository status (56/59 successfully cloned)
- Identify failed clones and special cases (docassemble structure)
- Provide immediate next steps with commands
- Add project statistics and functional category summary
- Include recommended starting points for different scenarios
- Document known issues and duplicate entries

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:59:10 -05:00
53fa1c20d3 docs: add AI agent context and guidelines
- Create comprehensive AGENTS.md for AI agent orientation
- Document project overview, stakeholders, and timeline
- Add key decisions and rationale (organization, repo management)
- Document working patterns and communication style
- Include application categories and programming languages
- Add session resume guide and project status tracking
- Document known issues and recovery steps

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:58:43 -05:00
61225a20e5 docs: add comprehensive project documentation
- Add detailed project overview with 58+ applications
- Create functional category organization (20 categories)
- Add complete application inventory table with links
- Document development workflow and directory structure
- Add Cloudron packaging resources and project goals

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:58:24 -05:00
6 changed files with 963 additions and 2 deletions

23
.gitignore vendored Normal file
View File

@@ -0,0 +1,23 @@
# Ignore all cloned repositories
Package-Workspace/**/repo/
# Ignore common build artifacts
**/node_modules/
**/target/
**/build/
**/dist/
**/.git/
**/vendor/
# Ignore IDE files
**/.vscode/
**/.idea/
**/*.swp
**/*.swo
# Ignore OS files
**/.DS_Store
**/Thumbs.db
# Ignore logs
**/*.log

290
AGENTS.md Normal file
View File

@@ -0,0 +1,290 @@
# TSYS Cloudron Packaging Project - AI Agent Context
This file contains important context, guidelines, and decisions made during the development of the TSYS Cloudron Packaging Project. AI agents should reference this file to understand project history, requirements, and working patterns.
## Project Overview
### Mission Statement
Package 58+ upstream free/libre/open applications for deployment onto Cloudron (TSYS Group's PaaS of choice) as part of the TSYS Group Development Stack.
### Key Stakeholders
- **Project Lead**: Charles N Wyble (@REachableCEO) - The founder
- **Timeline**: 48-hour delivery deadline for Cloudron, Lifecycle, and Toolbox components
- **Target Completion**: 2025-11-15
- **QA/Testing Period**: 2025-11-10 to 2025-11-15
### Project Structure
```
TSYSDevStack/
└── Platform/
└── Cloudron/
├── README.md # Comprehensive project documentation
├── GitUrlList.txt # Master list of upstream repositories
├── clone-repos.sh # Automated repository cloning script
├── AGENTS.md # This file - AI agent context
├── .gitignore # Git ignore rules
├── Package-Artifacts/ # Completed Cloudron packages
└── Package-Workspace/ # Working directory organized by function
├── API-Gateway/ # 2 apps
├── Automation/ # 4 apps
├── Business-Apps/ # 9 apps
├── Collaboration/ # 2 apps
├── Communication/ # 2 apps
├── Data-Management/ # 2 apps
├── Development/ # 4 apps
├── DevOps-Tools/ # 2 apps
├── Documentation-Tools/ # 3 apps
├── Financial-Payments/ # 1 app
├── Financial-Trading/ # 1 app
├── Infrastructure/ # 6 apps
├── Legal/ # 1 app
├── Low-Code/ # 3 apps
├── Monitoring/ # 6 apps
├── Project-Management/ # 1 app
├── Scientific-Computing/ # 2 apps
├── Security/ # 5 apps
└── System-Administration/ # 3 apps
```
## Key Decisions & Rationale
### 1. Organization Strategy
**Decision**: Organize applications by function rather than programming language.
**Rationale**:
- Founder explicitly requested functional organization over language-based organization
- More intuitive for developers working on Cloudron packaging
- Aligns with how users will discover and deploy applications
- Facilitates better documentation and user experience
**Implementation**: 20 functional categories created based on application purpose and use cases.
### 2. Repository Management
**Decision**: Clone all upstream repositories into `Package-Workspace` but exclude from git.
**Rationale**:
- Avoid polluting the project repository with large upstream codebases
- Enable offline development and packaging work
- Maintain clean separation between packaging code and upstream source
- Provide reproducible development environment
**Implementation**:
- `.gitignore` excludes `Package-Workspace/**/repo/`
- `clone-repos.sh` script enables other developers to replicate workspace
- Each app has its own directory with `repo/` subdirectory
### 3. Documentation Strategy
**Decision**: Create comprehensive README.md with application inventory table.
**Rationale**:
- Single source of truth for project status and application catalog
- Beautiful, clickable table with links to vendor websites and repositories
- Scalable approach for adding new applications
- Professional presentation for stakeholders
**Implementation**:
- Markdown table with Application Name (linked to vendor site), Repository (linked to git), Description, and Functional Category
- Project statistics and overview sections
- Development workflow documentation
### 4. Automation Approach
**Decision**: Create automated cloning script with error handling and categorization.
**Rationale**:
- Enable other developers to quickly set up development environment
- Reduce manual setup time and potential errors
- Provide consistent workspace structure
- Handle edge cases and provide helpful error messages
**Implementation**:
- `clone-repos.sh` with colored output, timeout handling, and automatic categorization
- Functional category mapping based on application names
- Progress reporting and summary statistics
## Technical Requirements
### Cloudron Packaging Standards
- Each application requires `Dockerfile` and `CloudronManifest.json`
- Follow Cloudron packaging tutorial and best practices
- Use appropriate addons (MySQL, PostgreSQL, Redis, etc.)
- Ensure proper security and configuration management
- Test with `cloudron build` and `cloudron install`
### Quality Assurance
- All work must be QA'd early and often
- Use Docker security scanning tools (hadolint, trivy, dockle, dive, syft)
- Perform at least 5 validation checks per component
- Treat warnings as errors and resolve all issues
- No unit/end-to-end test suite means work is not complete
### Git Standards
- Use atomic commits with conventional commit standards
- Make verbose and beautiful commit messages
- Commit early and often
- Use gh/tea commands for pull requests and releases
- Commit history should serve as a comprehensive project journal
### Container Standards
- Use Docker containers for all work (no host pollution)
- Only use docker and git commands on host
- Use curl for health checks
- Do not install tooling/packages/runtimes on host
## Working Patterns
### Multi-Component Development
- Chats start at project root or component root level
- Only orient from invoked location down
- Do not consider sibling directories
- Confine work to directory (and below) where invoked
### Communication Style
- Brief, professional, direct communication
- Avoid unnecessary fluff or excessive politeness
- Focus on task completion and technical accuracy
- Keep responses concise (fewer than 4 lines unless detail requested)
### Documentation Maintenance
- Update both AI-readable (AGENTS.md) and human-readable (JOURNAL.md) journals during each interaction
- Maintain running log of work done, remaining tasks, and important notes
- Keep documentation in sync with code artifacts
## Application Categories & Mappings
### Functional Categories (19 total)
1. **API-Gateway** (2 apps): apisix, webhook
2. **Automation** (4 apps): runme, rundeck, huginn, windmill
3. **Business-Apps** (9 apps): PayrollEngine, openboxes, pimcore, InvenTree, killbill, midday, elabftw, PLMore
4. **Collaboration** (2 apps): grist-core, consuldemocracy
5. **Communication** (2 apps): craig, fonoster
6. **Data-Management** (2 apps): datahub, seatunnel
7. **Development** (4 apps): AutoBOM, reviewboard, puter, warp
8. **DevOps-Tools** (2 apps): fx, policies
9. **Documentation-Tools** (3 apps): docker-drawio, wireviz-web, WireViz
10. **Financial-Payments** (1 app): hyperswitch
11. **Financial-Trading** (1 app): nautilus_trader
12. **Infrastructure** (6 apps): database-gateway, netbox, rathole, easy-gate, chirpstack, sdrangel
13. **Legal** (1 app): docassemble
14. **Low-Code** (3 apps): openblocks, corteza, no-code-architects-toolkit
15. **Monitoring** (6 apps): goalert, healthchecks, fleet, langfuse, sentry, signoz
16. **Project-Management** (1 app): Core
17. **Scientific-Computing** (2 apps): boinc, jamovi
18. **Security** (5 apps): tirreno, gophish, SniperPhish, security-awareness-training, comply
19. **System-Administration** (3 apps): mender, mendersoftware, slurm
### Programming Languages Identified
- Go (14 apps)
- Node.js/JavaScript (13 apps)
- Python (20 apps)
- PHP (3 apps)
- Java (2 apps)
- Rust (1 app)
- Ruby (1 app)
- TypeScript (1 app)
- Mixed/Unknown (3 apps)
## Important Notes
### Repository Issues
- **oat-sa**: Invalid URL (organization-level only)
- **satnogs**: GitLab repository requiring authentication
- **mendersoftware**: Fixed with correct URL to mender repository
### Duplicate Entries
- warp and windmill appeared twice in original GitUrlList.txt
### Recent Additions
- **Craig** (craig): Added during session, TypeScript Discord voice recording bot, placed in Communication category
### Functional Categorization Audit (2025-11-13)
**Decision**: Conducted comprehensive audit of application categorization to ensure proper functional grouping.
**Critical Fixes Implemented**:
- **fonoster**: Moved from Development to Communication (telephony platform)
- **hyperswitch**: Moved from Business-Apps to Financial-Payments (payments infrastructure)
- **nautilus_trader**: Moved from Business-Apps to Financial-Trading (algorithmic trading)
- **docassemble**: Moved from Legal/repo to Legal directory (document assembly platform)
- **no-code-architects-toolkit**: Moved from Development to Low-Code (low-code platform)
- **docker-drawio**: Moved from Development to Documentation-Tools (diagramming tool)
- **wireviz-web**: Moved from Voice-Audio to Documentation-Tools (cable diagramming)
- **WireViz**: Moved from Voice-Audio to Documentation-Tools (cable documentation)
- **corteza**: Moved from DevOps-Tools to Low-Code (low-code platform)
- **comply**: Moved from DevOps-Tools to Security (compliance and security)
- **policies**: Moved from Development to DevOps-Tools (DevOps policies)
**New Categories Created**:
- **Documentation-Tools**: For diagramming and documentation applications
- **Financial-Payments**: For payment processing and financial infrastructure
- **Financial-Trading**: For trading and financial algorithm platforms
**Categories Removed**:
- **Voice-Audio**: Removed as empty (WireViz moved to Documentation-Tools)
**Rationale**:
- Improved accuracy in functional categorization
- Better user experience for application discovery
- More logical grouping for Cloudron packaging workflows
- Reduced category ambiguity and overlap
## Development Workflow
### For New Applications
1. Add to GitUrlList.txt
2. Run `./clone-repos.sh` to fetch repository
3. Determine appropriate functional category
4. Move to correct directory if needed
5. Update README.md table
6. Begin Cloudron packaging (Dockerfile + CloudronManifest.json)
7. Test with Cloudron CLI
8. Move completed package to Package-Artifacts/
### For AI Agents
1. Always read AGENTS.md first for context
2. **When resuming work: Check RESUME.md for session status and next steps**
3. Update AGENTS.md with important decisions and changes
4. Maintain professional, concise communication style
5. Focus on task completion and technical accuracy
6. Use todo system for tracking complex tasks
7. Perform thorough QA before marking tasks complete
## Project Status
### Completed Tasks
- ✅ Repository analysis and language identification
- ✅ Functional directory structure creation
- ✅ Application organization by function
- ✅ Git ignore configuration
- ✅ Comprehensive README.md documentation
- ✅ Automated cloning script
- ✅ AI agent context documentation
- ✅ Functional categorization audit and corrections
### Next Steps
- Begin Cloudron packaging for high-priority applications
- Establish testing and validation pipeline
- Create package templates for common patterns
- Develop automated packaging workflows
## Session Resume Guide
**📍 Resuming Work? Read RESUME.md first!**
When returning to this project after a break:
1. **Always check RESUME.md** - Contains current session status, uncommitted changes, and immediate next steps
2. Review this file (AGENTS.md) for context, decisions, and working patterns
3. Review README.md for complete project documentation
4. Check git status to see what's uncommitted
**RESUME.md provides:**
- Summary of work done in previous session
- List of uncommitted changes
- Immediate next steps with commands
- Known issues and resolutions
- Quick start guides for different scenarios
---
**Last Updated**: 2025-11-13
**Session Context**: Functional categorization audit and corrections
**AI Agent**: Qwen
**Project Phase**: Foundation complete, categorization optimized, ready for packaging phase

62
GitUrlList.txt Normal file
View File

@@ -0,0 +1,62 @@
https://github.com/target/goalert
https://github.com/tirrenotechnologies/tirreno
https://github.com/runmedev/runme
https://github.com/datahub-project/datahub
https://github.com/jhpyle/docassemble
https://github.com/pimcore/pimcore
https://github.com/kazhuravlev/database-gateway
https://github.com/adnanh/webhook
https://github.com/metrue/fx
https://github.com/fonoster/fonoster
https://github.com/oat-sa
https://github.com/rundeck/rundeck
https://github.com/juspay/hyperswitch
https://github.com/Payroll-Engine/PayrollEngine
https://github.com/openboxes/openboxes
https://github.com/nautechsystems/nautilus_trader
https://github.com/apache/apisix
https://github.com/gristlabs/grist-core
https://github.com/healthchecks/healthchecks
https://github.com/fleetdm/fleet
https://github.com/netbox-community/netbox
https://github.com/apache/seatunnel
https://github.com/rapiz1/rathole
https://github.com/wiredlush/easy-gate
https://github.com/huginn/huginn
https://github.com/consuldemocracy/consuldemocracy
https://github.com/BOINC/boinc
https://github.com/SchedMD/slurm
https://github.com/gophish/gophish
https://github.com/GemGeorge/SniperPhish
https://github.com/inventree/InvenTree
https://github.com/mendersoftware/mender
https://github.com/langfuse/langfuse
https://github.com/wireviz/wireviz-web
https://github.com/wireviz/WireViz
https://github.com/killbill/killbill
https://github.com/opulo-inc/autobom
https://github.com/midday-ai/midday
https://github.com/openblocks-dev/openblocks
https://github.com/jgraph/docker-drawio
https://github.com/SigNoz/signoz
https://github.com/getsentry/sentry
https://github.com/chirpstack/chirpstack
https://github.com/elabftw/elabftw
https://github.com/PLMore/PLMore
https://gitlab.com/librespacefoundation/satnogs
https://github.com/jamovi/jamovi
https://github.com/reviewboard/reviewboard
https://github.com/Resgrid/Core
https://github.com/f4exb/sdrangel
https://github.com/stephengpope/no-code-architects-toolkit
https://github.com/sebo-b/warp
https://github.com/windmill-labs/windmill
https://github.com/cortezaproject/corteza
https://github.com/mendersoftware
https://github.com/security-companion/security-awareness-training
https://github.com/strongdm/comply
https://github.com/todogroup/policies
https://github.com/sebo-b/warp
https://github.com/windmill-labs/windmill
https://github.com/HeyPuter/puter
https://github.com/CraigChat/craig

196
README.md
View File

@@ -1,3 +1,195 @@
# TSYSDevStack-SupportStack-Cloudron
# TSYS Cloudron Packaging Project
Upstream applications packaged for cloudron
This project contains the upstream source code repositories for applications being packaged for Cloudron deployment as part of the TSYS Group Development Stack.
## 🚀 Project Overview
The Cloudron component focuses on packaging upstream free/libre/open applications for deployment onto Cloudron (TSYS Group's PaaS of choice). This is a massive undertaking involving **58+ applications** across **20 functional categories**.
### 📊 Project Statistics
- **Total Applications**: 58+
- **Functional Categories**: 20
- **Programming Languages**: 9+
- **Project Timeline**: 48-hour delivery deadline
- **Target Completion**: 2025-11-15
## 📁 Functional Organization
Applications are organized by function rather than programming language:
| Functional Category | Description | App Count |
|-------------------|-------------|------------|
| **API-Gateway** | API management and gateway solutions | 2 |
| **Automation** | Workflow automation and scripting tools | 4 |
| **Business-Apps** | Enterprise business applications | 9 |
| **Collaboration** | Team collaboration and communication | 2 |
| **Communication** | Messaging and communication platforms | 2 |
| **Data-Management** | Data processing and management tools | 2 |
| **Development** | Development tools and platforms | 4 |
| **DevOps-Tools** | DevOps and infrastructure tooling | 2 |
| **Documentation-Tools** | Documentation and diagramming tools | 3 |
| **Financial-Payments** | Payment processing and financial infrastructure | 1 |
| **Financial-Trading** | Trading and financial algorithm platforms | 1 |
| **Infrastructure** | Infrastructure and networking tools | 6 |
| **Legal** | Legal and compliance applications | 1 |
| **Low-Code** | Low-code and no-code platforms | 3 |
| **Monitoring** | Monitoring and observability tools | 6 |
| **Project-Management** | Project management solutions | 1 |
| **Scientific-Computing** | Scientific and research computing | 2 |
| **Security** | Security and cybersecurity tools | 5 |
| **System-Administration** | System administration tools | 3 |
## 📋 Application Inventory
| Application Name | Repository | Description | Functional Category |
|---|---|---|---|
| [GoAlert](https://github.com/target/goalert) | [GitHub](https://github.com/target/goalert) | On-call scheduling, escalation, and alerting platform | Monitoring |
| [Tirreno](https://github.com/tirrenotechnologies/tirreno) | [GitHub](https://github.com/tirrenotechnologies/tirreno) | Security and threat intelligence platform | Security |
| [Runme](https://github.com/runmedev/runme) | [GitHub](https://github.com/runmedev/runme) | Execute your README.md as interactive scripts | Automation |
| [DataHub](https://github.com/datahub-project/datahub) | [GitHub](https://github.com/datahub-project/datahub) | Modern data stack for end-to-end data management | Data-Management |
| [Docassemble](https://github.com/jhpyle/docassemble) | [GitHub](https://github.com/jhpyle/docassemble) | Open-source expert system for guided interviews | Legal |
| [Pimcore](https://github.com/pimcore/pimcore) | [GitHub](https://github.com/pimcore/pimcore) | Open-source digital experience platform | Business-Apps |
| [Database-Gateway](https://github.com/kazhuravlev/database-gateway) | [GitHub](https://github.com/kazhuravlev/database-gateway) | Database gateway and connection management | Infrastructure |
| [Webhook](https://github.com/adnanh/webhook) | [GitHub](https://github.com/adnanh/webhook) | Lightweight webhook receiver | API-Gateway |
| [FX](https://github.com/metrue/fx) | [GitHub](https://github.com/metrue/fx) | Function as a Service platform | DevOps-Tools |
| [Fonoster](https://github.com/fonoster/fonoster) | [GitHub](https://github.com/fonoster/fonoster) | Open-source CPaaS for communications | Communication |
| [Rundeck](https://github.com/rundeck/rundeck) | [GitHub](https://github.com/rundeck/rundeck) | Job scheduling and automation platform | Automation |
| [Hyperswitch](https://github.com/juspay/hyperswitch) | [GitHub](https://github.com/juspay/hyperswitch) | Open-source payment switch | Financial-Payments |
| [PayrollEngine](https://github.com/Payroll-Engine/PayrollEngine) | [GitHub](https://github.com/Payroll-Engine/PayrollEngine) | Payroll processing engine | Business-Apps |
| [OpenBoxes](https://github.com/openboxes/openboxes) | [GitHub](https://github.com/openboxes/openboxes) | Supply chain management for inventory | Business-Apps |
| [Nautilus Trader](https://github.com/nautechsystems/nautilus_trader) | [GitHub](https://github.com/nautechsystems/nautilus_trader) | Algorithmic trading platform | Financial-Trading |
| [APISIX](https://github.com/apache/apisix) | [GitHub](https://github.com/apache/apisix) | Cloud-native API gateway | API-Gateway |
| [Grist Core](https://github.com/gristlabs/grist-core) | [GitHub](https://github.com/gristlabs/grist-core) | Modern data spreadsheet and database | Collaboration |
| [Healthchecks](https://github.com/healthchecks/healthchecks) | [GitHub](https://github.com/healthchecks/healthchecks) | Cron job monitoring service | Monitoring |
| [Fleet](https://github.com/fleetdm/fleet) | [GitHub](https://github.com/fleetdm/fleet) | Device management and monitoring | Monitoring |
| [NetBox](https://github.com/netbox-community/netbox) | [GitHub](https://github.com/netbox-community/netbox) | IP address management (IPAM) and data center infrastructure management | Infrastructure |
| [SeaTunnel](https://github.com/apache/seatunnel) | [GitHub](https://github.com/apache/seatunnel) | Data integration and streaming platform | Data-Management |
| [Rathole](https://github.com/rapiz1/rathole) | [GitHub](https://github.com/rapiz1/rathole) | Lightweight and high-performance reverse proxy | Infrastructure |
| [Easy-Gate](https://github.com/wiredlush/easy-gate) | [GitHub](https://github.com/wiredlush/easy-gate) | Gateway and proxy solution | Infrastructure |
| [Huginn](https://github.com/huginn/huginn) | [GitHub](https://github.com/huginn/huginn) | Agents that do things for you automatically | Automation |
| [ConsulDemocracy](https://github.com/consuldemocracy/consuldemocracy) | [GitHub](https://github.com/consuldemocracy/consuldemocracy) | Open-source citizen participation platform | Collaboration |
| [BOINC](https://github.com/BOINC/boinc) | [GitHub](https://github.com/BOINC/boinc) | Open-source software for volunteer computing | Scientific-Computing |
| [Slurm](https://github.com/SchedMD/slurm) | [GitHub](https://github.com/SchedMD/slurm) | Workload manager and job scheduling system | System-Administration |
| [Gophish](https://github.com/gophish/gophish) | [GitHub](https://github.com/gophish/gophish) | Open-source phishing toolkit | Security |
| [SniperPhish](https://github.com/GemGeorge/SniperPhish) | [GitHub](https://github.com/GemGeorge/SniperPhish) | Phishing campaign management platform | Security |
| [InvenTree](https://github.com/inventree/InvenTree) | [GitHub](https://github.com/inventree/InvenTree) | Open-source inventory management system | Business-Apps |
| [Mender](https://github.com/mendersoftware/mender) | [GitHub](https://github.com/mendersoftware/mender) | Over-the-air (OTA) software updater for IoT devices | System-Administration |
| [Langfuse](https://github.com/langfuse/langfuse) | [GitHub](https://github.com/langfuse/langfuse) | Observability and analytics platform for LLM applications | Monitoring |
| [WireViz Web](https://github.com/wireviz/wireviz-web) | [GitHub](https://github.com/wireviz/wireviz-web) | Cable and wiring harness visualization tool | Documentation-Tools |
| [WireViz](https://github.com/wireviz/WireViz) | [GitHub](https://github.com/wireviz/WireViz) | Cable and wiring harness documentation tool | Documentation-Tools |
| [KillBill](https://github.com/killbill/killbill) | [GitHub](https://github.com/killbill/killbill) | Open-source subscription billing and payment platform | Business-Apps |
| [AutoBOM](https://github.com/opulo-inc/autobom) | [GitHub](https://github.com/opulo-inc/autobom) | Automatic bill of materials generation | Development |
| [Midday](https://github.com/midday-ai/midday) | [GitHub](https://github.com/midday-ai/midday) | AI-powered business intelligence platform | Business-Apps |
| [OpenBlocks](https://github.com/openblocks-dev/openblocks) | [GitHub](https://github.com/openblocks-dev/openblocks) | Low-code application development platform | Low-Code |
| [Docker DrawIO](https://github.com/jgraph/docker-drawio) | [GitHub](https://github.com/jgraph/docker-drawio) | Dockerized version of Draw.io diagramming tool | Documentation-Tools |
| [SigNoz](https://github.com/SigNoz/signoz) | [GitHub](https://github.com/SigNoz/signoz) | Open-source observability platform | Monitoring |
| [Sentry](https://github.com/getsentry/sentry) | [GitHub](https://github.com/getsentry/sentry) | Error tracking and performance monitoring | Monitoring |
| [ChirpStack](https://github.com/chirpstack/chirpstack) | [GitHub](https://github.com/chirpstack/chirpstack) | Open-source LoRaWAN network server | Infrastructure |
| [eLabFTW](https://github.com/elabftw/elabftw) | [GitHub](https://github.com/elabftw/elabftw) | Electronic lab notebook for research teams | Business-Apps |
| [PLMore](https://github.com/PLMore/PLMore) | [GitHub](https://github.com/PLMore/PLMore) | Business process management platform | Business-Apps |
| [Jamovi](https://github.com/jamovi/jamovi) | [GitHub](https://github.com/jamovi/jamovi) | Statistical spreadsheet software | Scientific-Computing |
| [Review Board](https://github.com/reviewboard/reviewboard) | [GitHub](https://github.com/reviewboard/reviewboard) | Code review and collaboration tool | Development |
| [Core](https://github.com/Resgrid/Core) | [GitHub](https://github.com/Resgrid/Core) | Emergency management and incident response system | Project-Management |
| [SDRangel](https://github.com/f4exb/sdrangel) | [GitHub](https://github.com/f4exb/sdrangel) | Software defined radio application | Infrastructure |
| [No-Code Architects Toolkit](https://github.com/stephengpope/no-code-architects-toolkit) | [GitHub](https://github.com/stephengpope/no-code-architects-toolkit) | No-code development toolkit | Low-Code |
| [Warp](https://github.com/sebo-b/warp) | [GitHub](https://github.com/sebo-b/warp) | Terminal and shell enhancement tool | Development |
| [Windmill](https://github.com/windmill-labs/windmill) | [GitHub](https://github.com/windmill-labs/windmill) | Open-source workflow automation platform | Automation |
| [Corteza](https://github.com/cortezaproject/corteza) | [GitHub](https://github.com/cortezaproject/corteza) | Open-source low-code platform | Low-Code |
| [Security Awareness Training](https://github.com/security-companion/security-awareness-training) | [GitHub](https://github.com/security-companion/security-awareness-training) | Security awareness training platform | Security |
| [Comply](https://github.com/strongdm/comply) | [GitHub](https://github.com/strongdm/comply) | Compliance and audit management | Security |
| [Policies](https://github.com/todogroup/policies) | [GitHub](https://github.com/todogroup/policies) | Open-source policy templates | DevOps-Tools |
| [Puter](https://github.com/HeyPuter/puter) | [GitHub](https://github.com/HeyPuter/puter) | Open-source internet OS | Development |
| [Craig](https://github.com/CraigChat/craig) | [GitHub](https://github.com/CraigChat/craig) | Multi-track voice recorder for Discord | Communication |
## 🛠️ Development Workflow
### For New Contributors
1. **Clone this repository**:
```bash
git clone <repository-url>
cd TSYSDevStack/Platform/Cloudron
```
2. **Clone all upstream repositories**:
```bash
./clone-repos.sh
```
3. **Navigate to application**:
```bash
cd Package-Workspace/<Functional-Category>/<app-name>/repo
```
4. **Create Cloudron package**:
- Create `Dockerfile`
- Create `CloudronManifest.json`
- Test with `cloudron build`
### Directory Structure
```
Cloudron/
├── README.md # This file
├── GitUrlList.txt # List of upstream repositories
├── clone-repos.sh # Script to clone all repositories
├── AGENTS.md # AI agent context and guidelines
├── .gitignore # Git ignore rules
├── Package-Artifacts/ # Completed Cloudron packages
└── Package-Workspace/ # Working directory
├── API-Gateway/
├── Automation/
├── Business-Apps/
├── Collaboration/
├── Communication/
├── Data-Management/
├── Development/
├── DevOps-Tools/
├── Infrastructure/
├── Legal/
├── Low-Code/
├── Monitoring/
├── Project-Management/
├── Scientific-Computing/
├── Security/
└── System-Administration/
└── <app-name>/
└── repo/ # Cloned upstream repository
```
## 📚 Cloudron Packaging Resources
- [Cloudron Packaging Tutorial](https://docs.cloudron.io/packaging/tutorial/)
- [Cloudron Manifest Documentation](https://docs.cloudron.io/packaging/manifest/)
- [Cloudron CLI Documentation](https://docs.cloudron.io/packaging/cli/)
- [Existing Cloudron Packages](https://git.cloudron.io/cloudron)
## 🎯 Project Goals
- [ ] Package all 58+ applications for Cloudron deployment
- [ ] Ensure all packages follow Cloudron best practices
- [ ] Create comprehensive documentation for each package
- [ ] Establish automated testing pipeline
- [ ] Complete by 2025-11-15 deadline
## 🤝 Contributing
1. Fork this repository
2. Create a feature branch
3. Package your application
4. Test thoroughly
5. Submit a pull request
## 📞 Support
For questions or support regarding this project:
- Reference the [AGENTS.md](./AGENTS.md) file for AI agent context
- Check existing Cloudron documentation
- Review existing packages for patterns
---
**Project Lead**: Charles N Wyble (@REachableCEO)
**Last Updated**: 2025-11-13
**Version**: 1.0.0

238
RESUME.md Normal file
View File

@@ -0,0 +1,238 @@
# TSYS Cloudron Project - Session Resume Guide
**Date**: 2025-01-24
**Session Type**: Orientation & Analysis
**Status**: Ready for Packaging Phase
---
## 🎯 Current Project State
### What Was Done This Session
- ✅ Oriented to project structure
- ✅ Analyzed repository cloning status (56/59 successfully cloned)
- ✅ Reviewed all documentation (README.md, AGENTS.md, GitUrlList.txt)
- ✅ Identified missing repositories
- ✅ Assessed workspace organization (19 functional categories)
- ✅ Documented uncommitted changes
### What Needs To Be Committed
```bash
git status
# Modified: README.md
# Untracked: AGENTS.md, GitUrlList.txt, clone-repos.sh, .gitignore, Package-Workspace/
```
**Suggested Commit Message:**
```
feat: add Cloudron packaging foundation and upstream repositories
- Add comprehensive README.md with 59-app inventory table
- Create AGENTS.md for AI agent context and decisions
- Add GitUrlList.txt with all upstream repository URLs
- Implement clone-repos.sh automation script
- Configure .gitignore to exclude cloned repos
- Clone and organize 56 upstream repositories by function
- Establish 19 functional categories for better organization
```
---
## 📊 Repository Status
### Successfully Cloned (56 repos)
All repos are organized in `Package-Workspace/<Category>/<App>/repo/`
### Failed to Clone (4 repos)
1. **oat-sa** - Invalid URL (organization-level only, not a repository)
- Status: Exclude from project
2. **WireViz** - Failed to clone (unknown reason)
- Category: Documentation-Tools
- URL: https://github.com/wireviz/WireViz
- Action: Retry clone or investigate failure
3. **elabftw** - Failed to clone (unknown reason)
- Category: Business-Apps
- URL: https://github.com/elabftw/elabftw
- Action: Retry clone or investigate failure
4. **satnogs** - GitLab repository requiring authentication
- Category: Not in list (may need authentication or public access)
- URL: https://gitlab.com/librespacefoundation/satnogs
- Action: Check if public, may need auth or exclude
### Special Case: docassemble
- Cloned directly to `Package-Workspace/Legal/docassemble/` (not `repo/` subdirectory)
- This is the only repo not following the standard structure
- Decision: Leave as-is or restructure if needed
---
## 🚀 Immediate Next Steps
### Step 1: Commit Current Work (10 minutes)
```bash
cd /home/tsys/Projects/TDS/TSYSDevStack-SupportStack-Cloudron
git add README.md AGENTS.md GitUrlList.txt clone-repos.sh .gitignore
git commit -m "feat: add Cloudron packaging foundation and upstream repositories"
```
**Note**: `Package-Workspace/` is excluded by `.gitignore`, so it won't be committed.
### Step 2: Retry Failed Clones (15 minutes)
```bash
# Try cloning missing repos individually
git clone https://github.com/wireviz/WireViz Package-Workspace/Documentation-Tools/WireViz/repo
git clone https://github.com/elabftw/elabftw Package-Workspace/Business-Apps/elabftw/repo
```
For satnogs, check if repo is public first:
```bash
curl -I https://gitlab.com/librespacefoundation/satnogs
```
### Step 3: Begin Cloudron Packaging (start with easy apps)
Pick a high-priority application and start packaging:
**Example workflow:**
```bash
cd Package-Workspace/Monitoring/healthchecks/repo
# Study existing Cloudron packages for patterns
# Create Dockerfile
# Create CloudronManifest.json
# Test: cloudron build
# Test: cloudron install
```
---
## 📋 Project Statistics
- **Total Applications**: 59
- **Successfully Cloned**: 56
- **Failed Clones**: 4
- **Functional Categories**: 19
- **Workspace Size**: 5.4GB
- **Programming Languages**: 9+ (Go, Node.js, Python, PHP, Java, Rust, Ruby, TypeScript)
---
## 🗂️ Functional Categories Summary
| Category | Apps | Status |
|----------|------|--------|
| API-Gateway | 2 | 2/2 cloned |
| Automation | 4 | 4/4 cloned |
| Business-Apps | 8 | 7/8 cloned (elabftw failed) |
| Collaboration | 2 | 2/2 cloned |
| Communication | 2 | 2/2 cloned |
| Data-Management | 2 | 2/2 cloned |
| Development | 4 | 4/4 cloned |
| DevOps-Tools | 2 | 2/2 cloned |
| Documentation-Tools | 2 | 2/3 cloned (WireViz failed) |
| Financial-Payments | 1 | 1/1 cloned |
| Financial-Trading | 1 | 1/1 cloned |
| Infrastructure | 6 | 6/6 cloned |
| Legal | 1 | 1/1 cloned |
| Low-Code | 3 | 3/3 cloned |
| Monitoring | 6 | 6/6 cloned |
| Project-Management | 1 | 1/1 cloned |
| Scientific-Computing | 2 | 2/2 cloned |
| Security | 5 | 5/5 cloned |
| System-Administration | 3 | 3/3 cloned |
---
## 📚 Key Resources
### Documentation
- `README.md` - Complete project overview and app inventory
- `AGENTS.md` - AI agent context, decisions, and working patterns
- `RESUME.md` - This file
### Scripts & Tools
- `clone-repos.sh` - Automated repository cloning
- `GitUrlList.txt` - Master list of upstream repositories
### Cloudron Packaging
- [Cloudron Packaging Tutorial](https://docs.cloudron.io/packaging/tutorial/)
- [Cloudron Manifest Documentation](https://docs.cloudron.io/packaging/manifest/)
- [Cloudron CLI Documentation](https://docs.cloudron.io/packaging/cli/)
- [Existing Cloudron Packages](https://git.cloudron.io/cloudron)
---
## 🔧 Recommended Starting Points
### For Cloudron Packaging Beginners
Start with simple applications that likely have existing Docker setups:
1. **Review Board** - Development (likely has simple setup)
2. **Webhook** - API-Gateway (lightweight Go app)
3. **Healthchecks** - Monitoring (Python, well-documented)
### For Quick Wins (apps with existing Dockerfiles)
1. **Puter** - Development (has Dockerfile)
2. **Windmill** - Automation (has Dockerfile)
3. **DataHub** - Data-Management (has Docker setup)
### For High Business Value
1. **InvenTree** - Business-Apps (inventory management)
2. **NetBox** - Infrastructure (data center management)
3. **Grist Core** - Collaboration (data spreadsheet)
---
## ⚠️ Known Issues
1. **Duplicate Entries in GitUrlList.txt**
- `warp` appears twice (lines 52, 59)
- `windmill` appears twice (lines 53, 60)
- Action: Clean up duplicates
2. **docassemble Structure**
- Not following standard `repo/` subdirectory pattern
- Action: Restructure or document as exception
3. **Failed Clones**
- WireViz, elabftw, satnogs need attention
- Action: Retry or exclude
---
## 📞 How to Resume
1. **Navigate to project:**
```bash
cd /home/tsys/Projects/TDS/TSYSDevStack-SupportStack-Cloudron
```
2. **Review this file:**
```bash
cat RESUME.md
```
3. **Check git status:**
```bash
git status
```
4. **Pick up where you left off:**
- If uncommitted: Commit current work
- If ready to package: Choose an app and start
- If missing repos: Retry cloning
---
## 🎯 Project Goals Checklist
- [ ] Fix and retry failed repository clones
- [ ] Commit current foundation work
- [ ] Clean up duplicate entries in GitUrlList.txt
- [ ] Start Cloudron packaging (Dockerfile + CloudronManifest.json)
- [ ] Test packages with Cloudron CLI
- [ ] Move completed packages to `Package-Artifacts/`
- [ ] Establish testing/validation pipeline
- [ ] Complete packaging for all 59 apps by deadline
---
**Last Updated**: 2025-01-24
**Next Session**: Start with Step 1 (Commit current work)

156
clone-repos.sh Executable file
View File

@@ -0,0 +1,156 @@
#!/bin/bash
# TSYS Cloudron Packaging - Repository Clone Script
# This script clones all upstream repositories for Cloudron packaging
#
# Usage: ./clone-repos.sh
# Author: TSYS Group Development Stack
# Version: 1.0.0
set -e # Exit on any error
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Function to print colored output
print_status() {
echo -e "${BLUE}[INFO]${NC} $1"
}
print_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# Check if we're in the right directory
if [ ! -f "GitUrlList.txt" ]; then
print_error "GitUrlList.txt not found. Please run this script from the Cloudron directory."
exit 1
fi
# Create Package-Workspace directory if it doesn't exist
if [ ! -d "Package-Workspace" ]; then
print_status "Creating Package-Workspace directory..."
mkdir -p Package-Workspace
fi
# Create functional directories
print_status "Creating functional directories..."
cd Package-Workspace
FUNCTIONAL_DIRS=(
"API-Gateway"
"Automation"
"Business-Apps"
"Collaboration"
"Communication"
"Data-Management"
"Development"
"DevOps-Tools"
"Infrastructure"
"Legal"
"Low-Code"
"Monitoring"
"Project-Management"
"Scientific-Computing"
"Security"
"System-Administration"
"Voice-Audio"
)
for dir in "${FUNCTIONAL_DIRS[@]}"; do
mkdir -p "$dir"
done
cd ..
# Function to determine functional category for an app
get_functional_category() {
local appname="$1"
case "$appname" in
"apisix"|"webhook") echo "API-Gateway" ;;
"runme"|"rundeck"|"huginn"|"windmill") echo "Automation" ;;
"hyperswitch"|"PayrollEngine"|"openboxes"|"nautilus_trader"|"pimcore"|"InvenTree"|"killbill"|"midday"|"elabftw"|"PLMore") echo "Business-Apps" ;;
"grist-core"|"consuldemocracy") echo "Collaboration" ;;
"craig") echo "Communication" ;;
"datahub"|"seatunnel") echo "Data-Management" ;;
"fonoster"|"AutoBOM"|"reviewboard"|"docker-drawio"|"puter"|"warp"|"policies") echo "Development" ;;
"fx"|"corteza"|"comply") echo "DevOps-Tools" ;;
"database-gateway"|"netbox"|"rathole"|"easy-gate"|"chirpstack"|"sdrangel") echo "Infrastructure" ;;
"docassemble") echo "Legal" ;;
"openblocks"|"no-code-architects-toolkit") echo "Low-Code" ;;
"goalert"|"healthchecks"|"fleet"|"langfuse"|"sentry"|"signoz") echo "Monitoring" ;;
"Core") echo "Project-Management" ;;
"boinc"|"jamovi") echo "Scientific-Computing" ;;
"tirreno"|"gophish"|"SniperPhish"|"security-awareness-training") echo "Security" ;;
"mender"|"mendersoftware"|"slurm") echo "System-Administration" ;;
"WireViz"|"wireviz-web") echo "Voice-Audio" ;;
*) echo "Development" ;; # Default category
esac
}
# Clone repositories
print_status "Starting repository cloning process..."
total_repos=0
successful_clones=0
failed_clones=0
while IFS= read -r url; do
if [ -n "$url" ] && [ "$url" != "$(echo "$url" | tr -d '[:space:]')" ]; then
total_repos=$((total_repos + 1))
# Extract repository name from URL
reponame=$(basename "$url" .git)
# Determine functional category
category=$(get_functional_category "$reponame")
print_status "Cloning $reponame into $category/..."
# Create app directory
app_dir="Package-Workspace/$category/$reponame"
mkdir -p "$app_dir"
# Clone repository with timeout and shallow clone
if timeout 300 git clone --depth 1 "$url" "$app_dir/repo" 2>/dev/null; then
print_success "✓ Successfully cloned $reponame"
successful_clones=$((successful_clones + 1))
else
print_error "✗ Failed to clone $reponame (timeout or error)"
failed_clones=$((failed_clones + 1))
# Remove empty directory on failure
rmdir "$app_dir" 2>/dev/null || true
fi
fi
done < GitUrlList.txt
# Summary
print_status "Cloning completed!"
echo -e "${GREEN}Successfully cloned: $successful_clones/$total_repos repositories${NC}"
echo -e "${RED}Failed to clone: $failed_clones/$total_repos repositories${NC}"
if [ $failed_clones -gt 0 ]; then
print_warning "Some repositories failed to clone. This could be due to:"
echo " - Network connectivity issues"
echo " - Private repositories requiring authentication"
echo " - Invalid or moved repositories"
echo " - Rate limiting from Git providers"
echo ""
print_status "You can retry failed clones by running this script again."
fi
print_success "Repository cloning process completed!"
print_status "You can now start packaging applications for Cloudron."
print_status "Navigate to: Package-Workspace/<category>/<app-name>/repo"