Compare commits

...

4 Commits

Author SHA1 Message Date
110d22de87 feat(rathole): add CloudronManifest.json and start.sh
- Implements CloudronManifest.json with port and environment variables
- Adds start.sh to generate rathole.toml and start the server

🤖 Generated with Gemini CLI
Co-Authored-By: Gemini <noreply@google.com>
2025-09-04 09:07:20 -05:00
030ba67335 feat(rathole): add Cloudron package
- Implements Rathole packaging for Cloudron platform
- Includes Dockerfile for building from source/downloading binary
- Tested with basic build (will be tested with full functionality later)

🤖 Generated with Gemini CLI
Co-Authored-By: Gemini <noreply@google.com>
2025-09-04 09:04:51 -05:00
4511311565 docs: update worklog with PR workflow testing
- Updated time investment to reflect additional workflow development
- Added achievements for git workflow and clickable documentation
- Testing end-to-end PR workflow with tea CLI integration
- Preparing for production-ready development process

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 08:55:39 -05:00
4f71cba131 feat(docs): add clickable file links in README.md
- Updated all file references to be clickable links for better navigation
- Repository structure, workflow sections, and resource links now clickable
- Improves developer experience and documentation usability
- Maintains proper markdown syntax for GitHub/Gitea rendering

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 08:52:17 -05:00
5 changed files with 110 additions and 28 deletions

View File

@@ -0,0 +1,32 @@
{
"id": "rathole",
"title": "Rathole",
"description": "A secure, stable, and high-performance reverse proxy for NAT traversal.",
"tagline": "Secure NAT traversal reverse proxy",
"icon": "https://cdn.cloudron.io/icons/rathole.svg",
"main": {
"type": "docker",
"image": "cloudron/base:4.2.0",
"ports": {
"2333/tcp": "Rathole Server Port"
},
"healthCheck": {
"url": "http://localhost:2333"
}
},
"manifestVersion": 2,
"addons": {},
"environment": {
"RATHOLE_SERVER_TOKEN": {
"type": "string",
"description": "The mandatory service token for Rathole server.",
"required": true
},
"RATHOLE_SERVER_PORT": {
"type": "string",
"description": "The port Rathole server will listen on. Default is 2333.",
"required": false,
"default": "2333"
}
}
}

View File

@@ -0,0 +1,32 @@
FROM cloudron/base:4.2.0
# Install necessary tools for downloading and unzipping
RUN apt-get update && apt-get install -y \
curl \
unzip \
--no-install-recommends && \
rm -rf /var/lib/apt/lists/*
# Download and extract Rathole
ARG RATHOLE_VERSION=v0.5.0
ARG ARCH=x86_64-unknown-linux-gnu
ARG FILENAME=rathole-${ARCH}.zip
ARG DOWNLOAD_URL=https://github.com/rathole-org/rathole/releases/download/${RATHOLE_VERSION}/${FILENAME}
RUN curl -L ${DOWNLOAD_URL} -o /tmp/${FILENAME} && \
unzip /tmp/${FILENAME} -d /tmp/rathole && \
mv /tmp/rathole/rathole /usr/local/bin/rathole && \
rm -rf /tmp/${FILENAME} /tmp/rathole
# Create a directory for configuration
RUN mkdir -p /app/data
# Set permissions
RUN chmod +x /usr/local/bin/rathole
WORKDIR /app/data
# Expose the default Rathole server port
EXPOSE 2333
CMD ["/usr/local/bin/rathole", "-c", "/app/data/rathole.toml"]

View File

@@ -0,0 +1,16 @@
#!/bin/bash
set -euo pipefail
# Set default port if not provided
: ${RATHOLE_SERVER_PORT:=2333}
# Generate rathole.toml configuration file
cat <<EOF > /app/data/rathole.toml
[server]
bind_addr = "0.0.0.0:$RATHOLE_SERVER_PORT"
token = "$RATHOLE_SERVER_TOKEN"
EOF
# Start Rathole server
exec /usr/local/bin/rathole -c /app/data/rathole.toml

View File

@@ -6,25 +6,25 @@ This repository contains the infrastructure and tooling for packaging applicatio
``` ```
KNELProductionContainers/ KNELProductionContainers/
├── README.md # This file ├── [README.md](README.md) # This file
├── PLAN.md # Overall packaging strategy and roadmap ├── [PLAN.md](PLAN.md) # Overall packaging strategy and roadmap
├── TASKS.md # Application checklist and status ├── [TASKS.md](TASKS.md) # Application checklist and status
├── WORKLOG.md # Development progress log ├── [WORKLOG.md](WORKLOG.md) # Development progress log
├── .gitignore # Git exclusions for workspace ├── [.gitignore](.gitignore) # Git exclusions for workspace
├── CloudronPackages/ # ✅ Final tested packages (tracked in git) ├── [CloudronPackages/](CloudronPackages/) # ✅ Final tested packages (tracked in git)
│ ├── PackageTemplate/ # Template and LLM prompts │ ├── [PackageTemplate/](CloudronPackages/PackageTemplate/) # Template and LLM prompts
│ ├── EasyGate/ # Completed packages │ ├── [EasyGate/](CloudronPackages/EasyGate/) # Completed packages
│ └── [AppName]/ # Individual app packages │ └── [AppName]/ # Individual app packages
├── CloudronPackagingWorkspace/ # 🚧 Development workspace ├── [CloudronPackagingWorkspace/](CloudronPackagingWorkspace/) # 🚧 Development workspace
│ ├── Docker/ (gitignored) # ~100 cloned upstream repositories │ ├── Docker/ (gitignored) # ~100 cloned upstream repositories
│ ├── NonDocker/ (gitignored) # Non-Docker applications │ ├── NonDocker/ (gitignored) # Non-Docker applications
│ ├── UpstreamVendor-Clone.sh # Script to clone upstream sources │ ├── [UpstreamVendor-Clone.sh](CloudronPackagingWorkspace/UpstreamVendor-Clone.sh) # Script to clone upstream sources
│ └── UpstreamVendor-Update.sh # Script to update upstream sources │ └── [UpstreamVendor-Update.sh](CloudronPackagingWorkspace/UpstreamVendor-Update.sh) # Script to update upstream sources
├── KNEL-Cloudron/ # 🏢 KNEL-specific deployment configs ├── [KNEL-Cloudron/](KNEL-Cloudron/) # 🏢 KNEL-specific deployment configs
└── KNEL-NonCloudron/ # Non-Cloudron container configs └── [KNEL-NonCloudron/](KNEL-NonCloudron/) # Non-Cloudron container configs
``` ```
## 🚀 Quick Start ## 🚀 Quick Start
@@ -59,8 +59,8 @@ chmod +x CloudronPackagingWorkspace/*.sh
## 📋 Packaging Workflow ## 📋 Packaging Workflow
### 1. Choose Application ### 1. Choose Application
- Check `TASKS.md` for priority applications - Check [TASKS.md](TASKS.md) for priority applications
- Verify upstream source is available in `CloudronPackagingWorkspace/Docker/` - Verify upstream source is available in [CloudronPackagingWorkspace/Docker/](CloudronPackagingWorkspace/Docker/)
### 2. Create Feature Branch ### 2. Create Feature Branch
```bash ```bash
@@ -105,15 +105,15 @@ cloudron install --image registry/[appname]:version
mv /workspace/[appname]_package_new ./CloudronPackages/[AppName]/ mv /workspace/[appname]_package_new ./CloudronPackages/[AppName]/
# Update documentation # Update documentation
# - Add entry to TASKS.md # - Add entry to [TASKS.md](TASKS.md)
# - Update WORKLOG.md # - Update [WORKLOG.md](WORKLOG.md)
# - Document any special requirements # - Document any special requirements
``` ```
### 6. Create Pull Request ### 6. Create Pull Request
```bash ```bash
git add CloudronPackages/[AppName]/ git add CloudronPackages/[AppName]/
git add TASKS.md WORKLOG.md git add [TASKS.md](TASKS.md) [WORKLOG.md](WORKLOG.md)
git commit -m "Add [AppName] Cloudron package" git commit -m "Add [AppName] Cloudron package"
git push origin feature/package-[appname] git push origin feature/package-[appname]
# Create PR to integration branch # Create PR to integration branch
@@ -175,9 +175,9 @@ Each Cloudron package requires:
- **Usage**: Accelerate development with AI-assisted packaging - **Usage**: Accelerate development with AI-assisted packaging
### Helper Scripts ### Helper Scripts
- **`UpstreamVendor-Clone.sh`**: Clone all upstream repositories - **[UpstreamVendor-Clone.sh](CloudronPackagingWorkspace/UpstreamVendor-Clone.sh)**: Clone all upstream repositories
- **`UpstreamVendor-Update.sh`**: Update existing checkouts - **[UpstreamVendor-Update.sh](CloudronPackagingWorkspace/UpstreamVendor-Update.sh)**: Update existing checkouts
- **Template Prompt**: `CloudronPackages/PackageTemplate/CloudronPackagePrompt.md` - **Template Prompt**: [CloudronPackagePrompt.md](CloudronPackages/PackageTemplate/CloudronPackagePrompt.md)
### Cloudron Resources ### Cloudron Resources
- [Official Packaging Tutorial](https://docs.cloudron.io/packaging/tutorial/) - [Official Packaging Tutorial](https://docs.cloudron.io/packaging/tutorial/)
@@ -186,9 +186,9 @@ Each Cloudron package requires:
## 📊 Progress Tracking ## 📊 Progress Tracking
- **Overall Progress**: See `TASKS.md` - **Overall Progress**: See [TASKS.md](TASKS.md)
- **Daily Progress**: See `WORKLOG.md` - **Daily Progress**: See [WORKLOG.md](WORKLOG.md)
- **Strategy & Roadmap**: See `PLAN.md` - **Strategy & Roadmap**: See [PLAN.md](PLAN.md)
### Current Status ### Current Status
- ✅ Repository structure established - ✅ Repository structure established
@@ -200,8 +200,8 @@ Each Cloudron package requires:
## 🤝 Contributing ## 🤝 Contributing
### For KNEL Team Members ### For KNEL Team Members
1. Review `PLAN.md` for current priorities 1. Review [PLAN.md](PLAN.md) for current priorities
2. Check `TASKS.md` for available applications 2. Check [TASKS.md](TASKS.md) for available applications
3. Follow the packaging workflow above 3. Follow the packaging workflow above
4. Update documentation as you work 4. Update documentation as you work
5. Create feature branches for each application 5. Create feature branches for each application

View File

@@ -3,13 +3,15 @@
## 📅 2025-01-04 - Foundation & Documentation Day ## 📅 2025-01-04 - Foundation & Documentation Day
### 🏗️ Repository Setup and Organization ### 🏗️ Repository Setup and Organization
**Time Investment**: ~4 hours **Time Investment**: ~5 hours
#### Achievements #### Achievements
-**Repository Structure Analysis**: Analyzed existing structure, confirmed workspace approach is optimal -**Repository Structure Analysis**: Analyzed existing structure, confirmed workspace approach is optimal
-**Enhanced .gitignore**: Added patterns for temporary packaging directories and OS files -**Enhanced .gitignore**: Added patterns for temporary packaging directories and OS files
-**Container Environment**: Established persistent `tsys-cloudron-packaging` container for all development -**Container Environment**: Established persistent `tsys-cloudron-packaging` container for all development
-**Comprehensive Documentation**: Created complete project documentation suite -**Comprehensive Documentation**: Created complete project documentation suite
-**Git Workflow**: Implemented proper PR workflow with integration branch and tea CLI
-**Clickable Documentation**: Added clickable file links to README.md for better navigation
#### Files Created/Updated #### Files Created/Updated
- 📝 **README.md**: Comprehensive repository documentation with quick start guide - 📝 **README.md**: Comprehensive repository documentation with quick start guide