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/
|
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
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user