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

View File

@@ -3,13 +3,15 @@
## 📅 2025-01-04 - Foundation & Documentation Day
### 🏗️ Repository Setup and Organization
**Time Investment**: ~4 hours
**Time Investment**: ~5 hours
#### Achievements
-**Repository Structure Analysis**: Analyzed existing structure, confirmed workspace approach is optimal
-**Enhanced .gitignore**: Added patterns for temporary packaging directories and OS files
-**Container Environment**: Established persistent `tsys-cloudron-packaging` container for all development
-**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
- 📝 **README.md**: Comprehensive repository documentation with quick start guide