Getting started
Run the h3xed server on your own hardware, finish setup in the browser-based wizard, add your libraries, then get the apps for the web, your desktop, and Apple TV. You'll be watching in minutes.
Install the server
The server runs on macOS, Windows, and Linux. The quickest path is the one-line native installer for your OS — it installs Node.js 22 and ffmpeg if they're missing, sets up an auto-start service, runs the server on port 32400, and gives you GPU hardware transcoding. Or run it in Docker. Re-running an installer upgrades in place and keeps your data.
macOS
In Terminal, as your normal user (not sudo):
curl -fsSL https://h3xed.app/install-macos.sh | bash
Installs into ~/Library/Application Support/Hexed and runs as a launchd LaunchAgent. Apple VideoToolbox hardware transcoding is available.
Windows
In an elevated PowerShell (Run as administrator):
irm https://h3xed.app/install-windows.ps1 | iex
Installs into %ProgramData%\Hexed and runs as a startup Scheduled Task. NVIDIA NVENC and Intel Quick Sync hardware transcoding are available.
Linux
As root with sudo:
curl -fsSL https://h3xed.app/install.sh | sudo bash
Installs into /opt/hexed and runs as a systemd service. VAAPI, Quick Sync, and NVENC hardware transcoding are available with the right drivers.
Docker (any OS)
One self-contained image with ffmpeg bundled. Pull it with docker pull ghcr.io/roxas712/hexed, or bring it up with Compose from the repo — point HEXED_MEDIA_DIR at your media, then docker compose up -d. Docker on macOS and Windows uses CPU transcoding (the Docker VM can't reach the GPU); on Linux you can add the GPU override. See Server Setup and DOCKER.md for the details.
32400 by default. Override it with the HEXED_PORT environment variable or the server.port field in config.json.
Finish in the setup wizard
Open http://localhost:32400 on the server (or http://YOUR_SERVER:32400 from another device). On first run the server serves a setup wizard that walks you through everything:
- Remote access — choose whether to reach the server from outside your home network, or keep it local-only
- h3xed.app account — sign in or create an account; it links the server and becomes your admin (no separate server password needed). You can skip this for a LAN-only server.
- Name your server — how it appears in the apps
- Admin password — only asked if you skipped linking a cloud account
- TMDB API key — free at themoviedb.org, used for poster art, summaries, cast, and ratings (you can skip and add it later)
- Add a library — pick Movies or TV Shows, browse to your media folder (the wizard shows a live count of video files found), name it, and start the first scan
When you reach the end the server is running and ready. You can add more libraries, music, and photo libraries from Settings afterward.
Remote access
Linking your server to h3xed.app during setup pairs your devices and routes traffic through a secure relay, so you and the people you invite can reach the server from anywhere — no port forwarding and no nginx required. You can optionally forward a port for direct video streaming when you're remote, or skip it and use the relay for everything.
Prefer to stay on your LAN, or want a custom domain behind your own reverse proxy? See Server Setup.
Get the apps
Once setup is complete, watch from any of these:
- Web: open your server's web app at
http://YOUR_SERVER:32400/app/, or sign in at h3xed.app/app with your account - Desktop: one app for macOS, Windows, and Linux — download it from Downloads
- Apple TV: install the tvOS app, then pair it to your account using the on-screen code and QR
Profiles & sharing
Set up Netflix-style profiles so everyone in the house gets their own watch state and watchlist, and add managed (kids) profiles with content restrictions. To let friends and family onto your server, send them an invite and choose which libraries they can see. You can also add friends, watch together in a watch party, and link servers co-op so your libraries appear merged. See Users & Access for all of it.
Managing your server
The native installers set up an auto-start service (a launchd LaunchAgent on macOS, a Scheduled Task on Windows, a systemd service on Linux) that restarts on crash. To update a native install, re-run the same one-line installer — it upgrades in place and keeps your data. For Docker, docker compose pull && docker compose up -d. See Server Setup for the per-platform start, stop, and log commands.
Next steps
- Server Setup — service install, remote access, reverse proxy, GPU transcoding
- Users & Access — invites, profiles, kids restrictions, friends, co-op
- API Reference — selected endpoints and the general shape of the API