Skip to content

BleedingXiko/GhostHub

Repository files navigation

👻 GhostHub

Live Demo

Version

License

Stars

Platform

GhostHub is a zero-setup, mobile-first media server you can run instantly and share over the internet. No accounts. No config. Just swipe through your own folder like it's TikTok.

Perfect for temporary sharing, personal libraries, or lightweight deployments with friends.

Runs as a Python script, one-click Windows .exe, or Docker container — no install, no accounts, no cloud.

New in v1.6:

  • Saved session progress per category (even with shuffle)
  • Full Pinggy tunnel integration with live status and config UI
  • Dynamic category thumbnails fixed across environments (incl. Docker)
  • New /kick command to remove users by session ID
  • Slash command popup with instant filtering and improved input handling
  • Chat and modal UI fully reworked for smoother mobile and desktop use
  • Massive performance polish, drag/touch fixes, and config stability

📱 Preview Gallery

Desktop View (Use arrow keys to navigate inside categories)

GhostHub Desktop Preview

GhostHub Mobile Preview GhostHub Mobile Preview 2

🚀 Features

  • 📁 Add custom folders and browse your media

  • 🎞️ TikTok-style swipe navigation for images & videos

  • 🔁 Optional host sync — everyone sees the same media, watches at their own pace

  • 🔐 Sync password protection + admin-only controls

  • 🧑‍🤝‍🧑 Live user counter and join notifications

  • 💬 Built-in real-time chat (ephemeral, anonymous)

  • ⌨️ Slash commands like /myview and /help

  • 📱 Fully mobile and desktop optimized

  • 🌐 Optional public sharing via Cloudflare Tunnel

  • 🖥️ Portable .exe with no dependencies or setup

  • 🐳 Docker support (including ARM64)

  • 💾 External config (media_categories.json) for folder persistence


⚙️ How to Run GhostHub

🔧 Option 1: Standalone Executable (Windows)

The .exe contains everything — no setup needed.

  1. Run GhostHub.exe

  2. You’ll be prompted to enable a Cloudflare Tunnel

  3. URL is auto-copied to clipboard (if enabled)

  4. Open your browser to: http://localhost:5000

📁 media_categories.json is saved in the same folder ✅ No need to download cloudflared — it’s bundled


💻 Option 2: Python (Manual / Development Mode)

  1. Install Python 3.7+

  2. (Optional) Place cloudflared.exe in project root

  3. Install dependencies:

    pip install -r requirements.txt
  4. Start the server:

    python ghosthub.py

💡 If cloudflared.exe is found, you’ll be prompted to start a tunnel


🐳 Option 3: Docker (Cross-Platform)

  1. Install Docker

  2. Pull the latest image:

    docker pull dhux/ghosthub:latest
  3. Create a docker-compose.yml with your media folders:

    version: '3'
    services:
      ghosthub:
        image: dhux/ghosthub:latest
        container_name: ghosthub
        ports:
          - "5000:5000"
        volumes:
          - ../instance:/app/instance
          - ../media:/media
          # Windows paths (Docker Desktop):
          - C:/Users/username/Pictures:/media/pictures
          - C:/Users/username/Videos:/media/videos
          # Linux/macOS paths:
          # - /home/user/Pictures:/media/pictures
          # - /home/user/Videos:/media/videos
        environment:
          - PORT=5000
          - FLASK_CONFIG=production
          - DOCKER_ENV=true
  4. Start it up:

    docker-compose up
  5. Visit: http://localhost:5000

🧠 Tunnel management is now fully in the web UI 📂 Categories auto-generate for anything under /media


🛠️ Build the Executable

Use bin/build_exe.bat

bin/build_exe.bat

Output is saved to /dist/GhostHub.exe


🗂 Media Categories

  • Click Add Category

  • Choose folder and name

  • Auto-saved to media_categories.json


📽 Supported Formats

Images: jpg, jpeg, png, gif, bmp, tiff, webp, heic, etc. Videos: mp4, webm, mov, mkv, avi, ts, flv, etc.


👻 Final Notes

GhostHub is a lightweight ephemeral media server built for speed, fun, and control.

Start it up. Share a link. Watch with friends. No cloud, no login, no trace.

Ghost on. 👻