Host a library for your people
Moovo has two halves. The server runs next to your movies and makes them look gorgeous. The app is what your friends and family install to browse, download and watch together. This guide is for the host: the one person who sets up the server.
It takes about 15 minutes, and you don't need to be a sysadmin. If you can copy a file and run one command, you're set.
What you need
- Your movies and shows as files, in folders (see folder layout).
- A computer that stays on: a NAS (Synology, Unraid, TrueNAS, QNAP), a Mac mini, an old PC or a Linux box. It doesn't need to be powerful; the server doesn't transcode.
- Docker (Docker Desktop on Mac and Windows, or Docker Engine on Linux and most NAS systems).
- A way for people outside your home to reach it: port forwarding, or a tunnel if your internet provider doesn't allow that. Remote access explains both.
How it fits together
- The server reads your folders read-only. It can't rename, move or delete anything.
- It fetches posters and details with your own API keys (TMDB, optionally OMDb and OpenSubtitles). No keys? It still works, just with plainer pages.
- Your people's apps download files straight from your server, resumably, and then play them offline.
- For Watch Together, only tiny sync messages travel between apps: nobody streams video to anybody.
- Nothing about your library ever touches our website. The server doesn't need us to keep running.
Quick start
docker-compose.yml
# docker-compose.yml
services:
moovo:
image: ghcr.io/moovoapp/server:latest
restart: unless-stopped
ports:
- "8080:8080"
environment:
MOOVO_PUBLIC_URL: https://movies.example.com # how your people reach it
MOOVO_MOVIE_ROOTS: /media/movies
MOOVO_TV_ROOTS: /media/tv
TMDB_API_KEY: ${TMDB_API_KEY:-} # optional: posters & details
TZ: America/New_York
volumes:
- ./data:/data # database, artwork, subtitles
- /path/to/Movies:/media/movies:ro # read-only: it never modifies your files
- /path/to/TV:/media/tv:roterminal
docker compose up -d
docker compose logs -f moovoThe log prints a one-time setup code. Open the app, choose Set up a new server, enter your server's address and the code, and you're the owner. Then invite your people.
Next steps
- Install with Docker & NAS: the details for your particular box.
- First run & setup code: creating the owner account and scanning the library.
- Remote access: port forwarding, Cloudflare Tunnel or Tailscale.
- Invites, people & circles: bring everyone in.