Compare commits
6 Commits
e2c8067ae5
...
fe060c1627
| Author | SHA1 | Date | |
|---|---|---|---|
| fe060c1627 | |||
| 2dc31349b2 | |||
| 61663d7540 | |||
| a28776f238 | |||
| 53fa1c20d3 | |||
| 61225a20e5 |
23
.gitignore
vendored
Normal file
23
.gitignore
vendored
Normal 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
290
AGENTS.md
Normal 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
62
GitUrlList.txt
Normal 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
196
README.md
@@ -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
238
RESUME.md
Normal 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
156
clone-repos.sh
Executable 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"
|
||||
Reference in New Issue
Block a user