45Flow is a secure file collaboration and transfer platform designed for media-heavy workflows. It combines an Electron desktop client with a Linux-based server service (houston-broadcaster) to provide controlled file sharing, upload portals, and video review — all managed from a single dashboard.
📖 Full User Guide: See docs/45Flow_User_Guide.md for complete step-by-step instructions with screenshots.
- Share files via secure links — Generate expiring, access-controlled links for viewing, downloading, and commenting on files
- Upload portals — Create links that let external collaborators upload files directly to your server
- Local uploads — Transfer files from your workstation to the server with optional proxy generation and watermarking
- Video review with timecoded comments — Browser-based HLS player with threaded, frame-accurate commenting
- Role-based access control — System and custom roles (View, Comment, Download, Upload) enforced per link
- Proxy generation & watermarking — Generate 720p/1080p proxies and apply watermark overlays to protect original media
- Link management dashboard — Search, filter, edit, disable, and monitor all links from one place
- Auto-discovery — Desktop client finds servers automatically via mDNS/Bonjour
| Component | Platforms |
|---|---|
| Desktop Client | macOS (Intel & Apple Silicon), Windows (x64), Linux (DEB & RPM) |
| Server | Linux — Rocky/RHEL 8+, Ubuntu 20.04+ |
| Storage | ZFS-backed recommended |
Download the latest release from the Releases page and install:
| OS | File | Install |
|---|---|---|
| macOS (Apple Silicon) | *-mac-arm64.dmg |
Drag to Applications |
| macOS (Intel) | *-mac-x64.dmg |
Drag to Applications |
| Windows | *-win-x64.exe |
Run installer |
| Ubuntu/Debian | *-linux-amd64.deb |
sudo apt install ./45flow-*.deb |
| Rocky/RHEL | *-linux-x86_64.rpm |
sudo dnf install ./45flow-*.rpm |
- Open 45Flow — your server should appear automatically if
houston-broadcasteris running. - If not, enter the server IP manually.
- Log in with your server credentials.
- Activate your license key on first connection (
STUDIO-XXXX-XXXX-XXXX-XXXX).
From the Dashboard, use the three main actions:
| Action | What It Does |
|---|---|
| New File Share Link | Select files on the server → configure access → generate a link |
| Upload Files Locally | Pick local files → choose destination → upload to server |
| New Upload Link | Pick a destination folder → configure access → generate an upload portal link |
For detailed walkthroughs of every feature, see the Full User Guide.
┌─────────────────────┐ SSH + API (9095) ┌──────────────────────────┐
│ 45Flow Desktop │◄────────────────────────────────►│ houston-broadcaster │
│ (Electron App) │ │ (Node.js service) │
└─────────────────────┘ └──────────┬───────────────┘
│
┌──────────▼───────────────┐
│ ZFS Storage / Files │
└──────────┬───────────────┘
│
┌─────────────────────┐ HTTPS (443) ┌──────────▼───────────────┐
│ Browser (Viewer) │◄────────────────────────────────►│ Video Player / Upload │
│ Share recipients │ │ (Vue.js SPA) │
└─────────────────────┘ └──────────────────────────┘
- Desktop Client — Electron app for connecting, uploading, and managing links
- houston-broadcaster — Node.js server handling API, file serving, transcoding, and link validation
- Video Player — Browser-based Vue.js app served to share/upload link recipients
| Port | Protocol | Purpose |
|---|---|---|
| 22 | TCP | SSH (client ↔ server) |
| 9095 | TCP | API (client ↔ server) |
| 443 | TCP | HTTPS — share/upload links (must be forwarded for external sharing) |
- All uploads quarantined and malware-scanned before acceptance
- Links support expiration, password protection, and role-restricted access
- HTTPS required for external access
- Server validates all API requests with JWT authentication
# Install dependencies
yarn install
# Run in development mode
yarn dev
# Build for production
yarn buildSee RELEASE_WORKFLOW.md for the full build and release process.
See LICENSE.