Your personal media companion, built with Phoenix LiveView
See the codeYour personal media companion, built with Phoenix LiveView
A modern, self-hosted media management platform for tracking, organizing, and monitoring your movies and TV shows.
Warning: Mydia is in early development (0.x.x). Expect breaking changes. Report issues or request features.
1. Generate secrets:
openssl rand -base64 48 # SECRET_KEY_BASE
openssl rand -base64 48 # GUARDIAN_SECRET_KEY
2. Create docker-compose.yml:
services:
mydia:
image: ghcr.io/getmydia/mydia:latest
container_name: mydia
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- SECRET_KEY_BASE=your-secret-key-base-here
- GUARDIAN_SECRET_KEY=your-guardian-secret-key-here
- PHX_HOST=localhost
- MOVIES_PATH=/media/library/movies
- TV_PATH=/media/library/tv
volumes:
- ./config:/config
- /path/to/media:/media
ports:
- 4000:4000
restart: unless-stopped
3. Start and access:
docker compose up -d
Open http://localhost:4000 and create your admin account.
Automatic and manual search rank releases the same way. Automatic search grabs the top one; manual search shows you the list in that order.
flowchart TD
A[Releases found by your indexers] --> B[Drop wrong and unwanted releases]
B --> C[Order the rest by what you asked for]
C --> D{Who is choosing}
D -->|Automatic search| E[Grab the top release]
D -->|You, in manual search| F[See the same order and pick]
Dropped before ranking
* Manual search keeps these at the bottom of the list instead.
Ranking order, each step only breaking ties left by the one above
Upgrades
More detail: Why Mydia Picked That Release and Custom Formats.
A cross-platform app that streams your library from anywhere over an encrypted peer-to-peer connection. No port forwarding, no VPN.
| Home | Shows |
|---|---|
![]() | ![]() |
| Platform | Get it | Notes |
|---|---|---|
| Android | Download APK | Allow installs from unknown sources; updates itself afterward, track chosen in Settings |
| iOS | Install via TestFlight | Needs the TestFlight app |
| macOS | Download .dmg | Notarized, updates itself |
| Windows | irm https://mydia.dev/install.ps1 | iex in PowerShell, or download installer | Per-user install. The command avoids the SmartScreen prompt the unsigned installer gets |
| Linux | Flatpak or .tar.gz | Flatpak recommended |
| Web | Served by your own Mydia server at /player | Nothing to install |
All platforms and install instructions
Full documentation available at docs.mydia.dev
Shown in the dark theme. Mydia ships light, dark and follow-your-system, and the dashboard above switches with your GitHub theme.
| Movies | TV Shows | Series | Calendar |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
./dev up -d # Start development environment
./dev mix ecto.migrate # Run migrations
./dev mix test # Run tests
./dev mix precommit # Run all checks
See the Development Guide for details.
Docs are built with MkDocs and Material for MkDocs. Requires uv.
uv sync --project docs # Install dependencies
uv run --project docs mkdocs serve # Serve at http://localhost:8000
uv run --project docs mkdocs build # Build static site to /site
Built with Elixir & Phoenix
50 followers · starred Aug 2026
117 followers · starred Nov 2025
75 followers · starred Nov 2025
34 followers · starred Mar 2026
Elixir
63.8%
Dart
26.3%
Rust
4.8%
HTML
1.9%
Your personal media companion, built with Phoenix LiveView
See the codeYour personal media companion, built with Phoenix LiveView
A modern, self-hosted media management platform for tracking, organizing, and monitoring your movies and TV shows.
Warning: Mydia is in early development (0.x.x). Expect breaking changes. Report issues or request features.
1. Generate secrets:
openssl rand -base64 48 # SECRET_KEY_BASE
openssl rand -base64 48 # GUARDIAN_SECRET_KEY
2. Create docker-compose.yml:
services:
mydia:
image: ghcr.io/getmydia/mydia:latest
container_name: mydia
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- SECRET_KEY_BASE=your-secret-key-base-here
- GUARDIAN_SECRET_KEY=your-guardian-secret-key-here
- PHX_HOST=localhost
- MOVIES_PATH=/media/library/movies
- TV_PATH=/media/library/tv
volumes:
- ./config:/config
- /path/to/media:/media
ports:
- 4000:4000
restart: unless-stopped
3. Start and access:
docker compose up -d
Open http://localhost:4000 and create your admin account.
Automatic and manual search rank releases the same way. Automatic search grabs the top one; manual search shows you the list in that order.
flowchart TD
A[Releases found by your indexers] --> B[Drop wrong and unwanted releases]
B --> C[Order the rest by what you asked for]
C --> D{Who is choosing}
D -->|Automatic search| E[Grab the top release]
D -->|You, in manual search| F[See the same order and pick]
Dropped before ranking
* Manual search keeps these at the bottom of the list instead.
Ranking order, each step only breaking ties left by the one above
Upgrades
More detail: Why Mydia Picked That Release and Custom Formats.
A cross-platform app that streams your library from anywhere over an encrypted peer-to-peer connection. No port forwarding, no VPN.
| Home | Shows |
|---|---|
![]() | ![]() |
| Platform | Get it | Notes |
|---|---|---|
| Android | Download APK | Allow installs from unknown sources; updates itself afterward, track chosen in Settings |
| iOS | Install via TestFlight | Needs the TestFlight app |
| macOS | Download .dmg | Notarized, updates itself |
| Windows | irm https://mydia.dev/install.ps1 | iex in PowerShell, or download installer | Per-user install. The command avoids the SmartScreen prompt the unsigned installer gets |
| Linux | Flatpak or .tar.gz | Flatpak recommended |
| Web | Served by your own Mydia server at /player | Nothing to install |
All platforms and install instructions
Full documentation available at docs.mydia.dev
Shown in the dark theme. Mydia ships light, dark and follow-your-system, and the dashboard above switches with your GitHub theme.
| Movies | TV Shows | Series | Calendar |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
./dev up -d # Start development environment
./dev mix ecto.migrate # Run migrations
./dev mix test # Run tests
./dev mix precommit # Run all checks
See the Development Guide for details.
Docs are built with MkDocs and Material for MkDocs. Requires uv.
uv sync --project docs # Install dependencies
uv run --project docs mkdocs serve # Serve at http://localhost:8000
uv run --project docs mkdocs build # Build static site to /site
Built with Elixir & Phoenix
50 followers · starred Aug 2026
117 followers · starred Nov 2025
75 followers · starred Nov 2025
34 followers · starred Mar 2026
Elixir
63.8%
Dart
26.3%
Rust
4.8%
HTML
1.9%