Cloudron Packaging Workspace
This workspace contains development tools and upstream source repositories for Cloudron application packaging.
🏗️ Workspace Structure
PackagingForCloudronWorkspace/
├── README.md # This file
├── Docker/ (gitignored) # Upstream application sources (many apps)
├── NonDocker/ (gitignored) # Non-Docker application sources
├── UpstreamVendor-Clone.sh # Clone all upstream repositories
└── UpstreamVendor-Update.sh # Update existing repositories
🚀 Setup Instructions
Initial Setup
cd PackagingForCloudronWorkspace/
# Create Docker directory for upstream sources
mkdir -p Docker
# Make scripts executable
chmod +x *.sh
# Clone all upstream vendor repositories
./UpstreamVendor-Clone.sh
This clones upstream vendor repositories used when packaging applications for Cloudron.
Keeping Sources Updated
# Update all existing checkouts to latest versions
./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
- Source Access: All upstream sources are available in
Docker/[appname]/
- Development: Use the
tsys-cloudron-packaging
container for all work - Package Creation: Create packages in separate temporary directories
- Git Exclusion: All upstream sources are gitignored to keep repository clean
Container Development
# 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
- Update
UpstreamVendor-Clone.sh
with the new repository URL - Run the clone script to fetch the new application
Removing Applications
- Remove directory from
Docker/
- Update clone script to prevent future re-cloning
Repository Updates
- Run
./UpstreamVendor-Update.sh
periodically or before starting packaging work - Check for breaking changes in upstream before building
⚠️ Important Notes
Git Exclusions
Docker/
andNonDocker/
are gitignored (see repo.gitignore
)- Keeps the repo slim while preserving local sources
Repository Integrity
- Never commit upstream sources to the repository
- Develop packages outside of
Docker/
(e.g., directly underCloudronPackages/<AppName>
)
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
📊 Notes
- Number of upstream repositories and size vary over time.
🤝 Team Usage
For Developers
- Use
./UpstreamVendor-Clone.sh
on first setup - Run
./UpstreamVendor-Update.sh
weekly or before new package work - Always work in the containerized environment
- Never commit workspace contents to git
For DevOps
- Monitor disk space usage of workspace
- Ensure container environment has access to workspace
- Backup workspace if needed for disaster recovery
- Update scripts when adding/removing applications
Maintained By: KNEL/TSYS Development Team