Compare commits
4 Commits
v2025.01.0
...
110d22de87
Author | SHA1 | Date | |
---|---|---|---|
110d22de87 | |||
030ba67335 | |||
4511311565 | |||
4f71cba131 |
32
CloudronPackages/Rathole/CloudronManifest.json
Normal file
32
CloudronPackages/Rathole/CloudronManifest.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
32
CloudronPackages/Rathole/Dockerfile
Normal file
32
CloudronPackages/Rathole/Dockerfile
Normal 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"]
|
16
CloudronPackages/Rathole/start.sh
Normal file
16
CloudronPackages/Rathole/start.sh
Normal 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
|
52
README.md
52
README.md
@@ -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
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user