A containerized file distribution server that automatically downloads and serves software packages, extensions, and installers. Built with unprivileged Nginx for security.
# Pull and run the latest image
docker run --rm -p 8080:8080 ghcr.io/watskebart/hivedrop:latestNavigate to http://localhost:8080 to browse available downloads.
- VS Code Extensions - Latest
.vsixfiles from Microsoft Marketplace - Windows Software Installers - Popular applications via Winget
New container images build automatically:
- Schedule: Every Sunday at 22:00 UTC
- Trigger: Latest downloads from configured package lists
- Registry:
ghcr.io/watskebart/hivedrop:latest
├── pollen/ # 🌼 Download configuration
│ ├── vscode-extensions.txt # VS Code extension IDs
│ └── winget-installers.txt # Winget package IDs
├── honey/ # 🍯 Downloaded files (generated)
│ ├── vscode-extensions/ # .vsix files
│ └── winget-installers/ # .exe/.msi/.msixbundle installers
└── scripts/ # 🛠️ Download automation
└── winget-downloader.ps1
Contains package lists that define what gets downloaded:
vscode-extensions.txt- One extension ID per line (e.g.,ms-python.python)winget-packages.txt- One package ID per line (e.g.,Microsoft.VisualStudioCode)
Auto-generated directory containing downloaded files, served by Nginx.
- VS Code Extensions: Add extension ID to
pollen/vscode-extensions.txt - Software: Add package ID to
pollen/winget-installers.txt
Find package IDs:
- VS Code: Marketplace URLs contain IDs
- Winget: Use
winget search <app-name>or browse winget.run
# Clone and build
git clone <repo-url>
cd hivedrop
docker build -t hivedrop:local .
docker run --rm -p 8080:8080 hivedrop:local- VS Code Extensions: Downloaded via
offvsixPython package - Winget Packages: Custom PowerShell script extracts installer URLs and downloads directly
- Rootless Security: Runs as non-root user
- Weekly Updates: Fresh downloads every Sunday
- Simple Web UI: Default Nginx file browser interface
- Offline Ready: All files available without internet