docs: comprehensive documentation and workflow overhaul
Create complete project documentation suite for 56-application Cloudron packaging initiative: New Documentation Files: - README.md: Comprehensive project overview with quick start guide - PLAN.md: Strategic roadmap for packaging across 2025 with 4-phase approach - TASKS.md: Detailed task list with 56 applications prioritized in 4 tiers - WORKLOG.md: Progress tracking with daily logs and development insights - GIT_WORKFLOW.md: Complete branching strategy and commit standards Enhanced Existing Documentation: - CloudronPackages/README.md: Enhanced package directory with usage instructions - CloudronPackagingWorkspace/README.md: Comprehensive workspace development guide Key Features: - Established feature → integration → master git workflow - Containerized development environment with tsys-cloudron-packaging - 4-tier priority system focusing on business-critical applications first - Quality standards and testing procedures for all packages - Team coordination tools for parallel development This foundation supports systematic packaging of all 56 applications with proper quality control, progress tracking, and team scalability. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,15 +1,170 @@
|
||||
# README for KNEL CLoudron Packaging
|
||||
# Cloudron Packaging Workspace
|
||||
|
||||
```shell
|
||||
mkdir Docker
|
||||
This workspace contains development tools and upstream source repositories for Cloudron application packaging.
|
||||
|
||||
## 🏗️ Workspace Structure
|
||||
|
||||
```
|
||||
CloudronPackagingWorkspace/
|
||||
├── README.md # This file
|
||||
├── Docker/ (gitignored) # Upstream application sources (~56 apps)
|
||||
├── NonDocker/ (gitignored) # Non-Docker application sources
|
||||
├── UpstreamVendor-Clone.sh # Clone all upstream repositories
|
||||
└── UpstreamVendor-Update.sh # Update existing repositories
|
||||
```
|
||||
|
||||
## 🚀 Setup Instructions
|
||||
|
||||
### Initial Setup
|
||||
```bash
|
||||
cd CloudronPackagingWorkspace/
|
||||
|
||||
# Create Docker directory for upstream sources
|
||||
mkdir -p Docker
|
||||
|
||||
# Make scripts executable
|
||||
chmod +x *.sh
|
||||
|
||||
# Clone all upstream vendor repositories
|
||||
./UpstreamVendor-Clone.sh
|
||||
```
|
||||
|
||||
The above will do a (sparse) clone of all the upstream vendor software/docker repositories for every app TSYS runs on Cloudron.
|
||||
This will perform a clone of all upstream vendor software/Docker repositories for every application that KNEL is packaging for Cloudron deployment.
|
||||
|
||||
You can keep the checkouts synced with
|
||||
### Keeping Sources Updated
|
||||
```bash
|
||||
# Update all existing checkouts to latest versions
|
||||
./UpstreamVendor-Update.sh
|
||||
```
|
||||
|
||||
```shell
|
||||
UpstreamVendor-Update.sh
|
||||
```
|
||||
## 📦 Available Applications
|
||||
|
||||
The workspace contains ~56 upstream application repositories including:
|
||||
|
||||
### High Priority Applications
|
||||
- **apisix** - Apache APISIX API Gateway
|
||||
- **jenkins** - Jenkins CI/CD Platform
|
||||
- **grist-core** - Grist Database/Spreadsheet
|
||||
- **rundeck** - Rundeck Job Scheduler
|
||||
- **reviewboard** - ReviewBoard Code Review
|
||||
- **consuldemocracy** - Consul Democracy Platform
|
||||
|
||||
### Development & Infrastructure Tools
|
||||
- **InvenTree** - Inventory Management System
|
||||
- **elabftw** - Laboratory Management
|
||||
- **netbox-docker** - Network Documentation
|
||||
- **signoz** - Observability Platform
|
||||
- **healthchecks** - Health Monitoring
|
||||
- **fleet** - Device Management
|
||||
|
||||
### Productivity & Specialized Applications
|
||||
- **huginn** - Web Automation
|
||||
- **windmill** - Workflow Automation
|
||||
- **docassemble** - Document Assembly
|
||||
- **jamovi** - Statistical Analysis
|
||||
- And many more...
|
||||
|
||||
## 🛠️ Development Workflow
|
||||
|
||||
### Using the Workspace
|
||||
|
||||
1. **Source Access**: All upstream sources are available in `Docker/[appname]/`
|
||||
2. **Development**: Use the `tsys-cloudron-packaging` container for all work
|
||||
3. **Package Creation**: Create packages in separate temporary directories
|
||||
4. **Git Exclusion**: All upstream sources are gitignored to keep repository clean
|
||||
|
||||
### Container Development
|
||||
```bash
|
||||
# Access development container
|
||||
docker exec -it tsys-cloudron-packaging bash
|
||||
|
||||
# Navigate to workspace
|
||||
cd /workspace
|
||||
|
||||
# Access application source
|
||||
cd CloudronPackagingWorkspace/Docker/[appname]/
|
||||
|
||||
# Create new package (outside of workspace)
|
||||
cd /workspace
|
||||
mkdir -p [appname]_package_new
|
||||
```
|
||||
|
||||
## 📋 Workspace Management
|
||||
|
||||
### Adding New Applications
|
||||
1. Update `UpstreamVendor-Clone.sh` with new repository URL
|
||||
2. Run the clone script to fetch the new application
|
||||
3. Add application to priority list in `TASKS.md`
|
||||
|
||||
### Removing Applications
|
||||
1. Remove directory from `Docker/`
|
||||
2. Update clone script to prevent future re-cloning
|
||||
3. Update task lists and documentation
|
||||
|
||||
### Repository Updates
|
||||
- **Frequency**: Weekly or before starting new package development
|
||||
- **Method**: Run `./UpstreamVendor-Update.sh`
|
||||
- **Verification**: Check for breaking changes in upstream
|
||||
|
||||
## ⚠️ Important Notes
|
||||
|
||||
### Git Exclusions
|
||||
- **Docker/**: All contents are gitignored
|
||||
- **NonDocker/**: All contents are gitignored
|
||||
- This keeps the main repository clean while preserving access to sources
|
||||
|
||||
### Repository Integrity
|
||||
- Never commit upstream sources to the main repository
|
||||
- Use temporary directories for package development
|
||||
- Move final packages to `CloudronPackages/` when complete
|
||||
|
||||
### Source Licenses
|
||||
- Each upstream repository maintains its own license
|
||||
- Review license compatibility before packaging
|
||||
- Include appropriate license information in final packages
|
||||
|
||||
## 🔧 Script Maintenance
|
||||
|
||||
### UpstreamVendor-Clone.sh
|
||||
- Contains git clone commands for all upstream repositories
|
||||
- Handles both GitHub and other git hosting platforms
|
||||
- Includes error handling for failed clones
|
||||
|
||||
### UpstreamVendor-Update.sh
|
||||
- Updates existing repositories to latest versions
|
||||
- Skips missing directories gracefully
|
||||
- Provides summary of update status
|
||||
|
||||
### Customization
|
||||
Edit scripts as needed to:
|
||||
- Add new repository sources
|
||||
- Change clone depth or branch targets
|
||||
- Modify update behavior
|
||||
- Handle special cases
|
||||
|
||||
## 📊 Workspace Statistics
|
||||
|
||||
- **Total Applications**: 56 repositories
|
||||
- **Repository Size**: ~2-3 GB total (varies by application)
|
||||
- **Update Frequency**: Weekly recommended
|
||||
- **Clone Time**: ~15-30 minutes for full clone
|
||||
|
||||
## 🤝 Team Usage
|
||||
|
||||
### For Developers
|
||||
1. Use `./UpstreamVendor-Clone.sh` on first setup
|
||||
2. Run `./UpstreamVendor-Update.sh` weekly or before new package work
|
||||
3. Always work in the containerized environment
|
||||
4. Never commit workspace contents to git
|
||||
|
||||
### For DevOps
|
||||
1. Monitor disk space usage of workspace
|
||||
2. Ensure container environment has access to workspace
|
||||
3. Backup workspace if needed for disaster recovery
|
||||
4. Update scripts when adding/removing applications
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2025-01-04
|
||||
**Maintained By**: KNEL/TSYS Development Team
|
||||
**Part of**: [KNEL Production Containers](../README.md) packaging project
|
Reference in New Issue
Block a user