Fix UI elements not showing and zip installation issues. - Corrected template wrapper div with proper ID - Fixed custom_bindings configuration to enable Knockout.js data binding - Updated BUILDING.md with proper zip creation process - Bumped version to 0.1.1 - All tests passing

This commit is contained in:
Markus F.J. Busche
2025-09-20 14:57:43 +02:00
parent fa9a5e47dc
commit d379c8d2cd
11 changed files with 1219 additions and 28 deletions

View File

@@ -27,7 +27,7 @@ It's recommended to use a virtual environment to isolate the build dependencies:
```bash
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
source venv/bin/activate # On Windows: venv\Scripts\activate.bat
```
### 3. Install Build Dependencies
@@ -53,10 +53,23 @@ This will create distribution files in the `dist/` directory:
### 5. Create OctoPrint-Compatible Package
OctoPrint's plugin manager expects a zip file with a specific naming convention. Create it by copying and renaming the tar.gz file:
First, install the zip utility if not already installed:
```bash
cp dist/octoprint_tailscale_funnel-*.tar.gz dist/OctoPrint-Tailscale-Funnel-*.zip
sudo apt install zip # On Ubuntu/Debian
```
Then create a proper zip file:
```bash
# Remove any existing zip file
rm -f dist/OctoPrint-Tailscale-Funnel-*.zip
# Extract the tar.gz file and create a proper zip archive
mkdir -p tmp_extract
tar -xzf dist/octoprint_tailscale_funnel-*.tar.gz -C tmp_extract
cd tmp_extract/octoprint_tailscale_funnel-*
zip -r ../../dist/OctoPrint-Tailscale-Funnel-0.1.0.zip .
cd ../..
rm -rf tmp_extract
```
The resulting file `OctoPrint-Tailscale-Funnel-*.zip` can be uploaded to OctoPrint through the plugin manager.
@@ -131,16 +144,22 @@ The project follows a standard structure:
```
.
├── README.md # Project overview and usage instructions
├── LICENSE # License file
├── .gitignore # Files and directories to exclude from Git
├── octoprint_tailscale_funnel/ # Plugin source code
│ ├── BUILDING.md # This document
│ ├── README.md # Plugin-specific README
│ ├── LICENSE # Plugin license (copy of root LICENSE)
│ ├── setup.py # Plugin setup and metadata
│ ├── __init__.py # Main plugin implementation
│ ├── tailscale_interface.py # Tailscale command interface
│ ├── status_monitor.py # Status monitoring functionality
│ ├── requirements.txt # Python dependencies
│ ├── MANIFEST.in # Files to include in distribution
│ ├── octoprint_tailscale_funnel/ # Plugin Python package
│ │ ├── __init__.py # Main plugin implementation
│ │ ├── tailscale_interface.py # Tailscale command interface
│ │ └── status_monitor.py # Status monitoring functionality
│ ├── static/ # Static assets (CSS, JS)
│ │ ├── css/ # CSS stylesheets
│ │ ├── js/ # JavaScript files
│ │ └── less/ # LESS stylesheets
│ ├── templates/ # HTML templates
│ └── tests/ # Unit tests
```
│ └── tests/ # Unit tests