Version 1.0.30

Download Mimir Server

Free, and free of strings. No account, no licence key, no subscription and no cloud service sitting between you and your own television.

After installing, add your channels and guide, then connect your TV app. Native apps have a free trial and require a subscription after it; check the offer in your app store.

macOS
MACOS 12 MONTEREY OR LATER

A signed and notarised package that puts Mimir in your Applications folder and starts it at login, with everything it needs bundled inside, so there's nothing else to install.

Apple silicon  ·  52 MB Intel  ·  57 MB

Not sure which? Apple menu → About This Mac. "Apple M1" or later means Apple silicon; anything listing an Intel processor means Intel.

Docker
LINUX · NAS · DOCKER DESKTOP · AMD64 & ARM64

A published multi-architecture image, so no building from source. State lives in a named volume and recordings in a host folder you choose, so updates never touch your data.

Setup instructions

Every build ships the media engine it needs, so there is nothing else to install, and no separate codec pack to hunt down.


After you install

The setup wizard does the rest

Starting Mimir for the first time opens a wizard in your browser. You set a password, point it at your channel source, and choose where recordings should go. There's no config file to edit and no token to copy out of a terminal window.

  • Pick folders by browsingChoose your recording directory and any local playlist or guide files from a proper picker, rather than typing full paths.
  • Large playlists handledFilm and series catalogue entries are filtered out before live channels are indexed, so a huge source doesn't turn into an unusable channel list.
  • Take your setup with youExport your whole channel configuration to a single checksummed file and import it on another machine, or keep it as a backup before you experiment.
  • Locked out? Not locked out.On Windows, the tray icon can open a single-use password reset page that only works from the machine itself and only for ten minutes.
Quick start
# pull the published multi-architecture image, nothing to build
docker pull ghcr.io/marleshi/mimir:latest

# start it, with recordings and working space on folders you choose
docker run -d \
  --name mimir \
  --restart unless-stopped \
  --stop-timeout 120 \
  -p 8094:8093 \
  -e TZ=Australia/Perth \
  -e TRANSCODE_TEMP_DIR=/transcode \
  -v mimir-config:/config \
  -v /path/to/recordings:/recordings \
  -v /path/to/transcode:/transcode \
  ghcr.io/marleshi/mimir:latest

# follow the log while it starts
docker logs -f mimir

# then open the setup wizard at http://localhost:8094/
Check it's healthy
docker ps
curl http://localhost:8094/api/health
Load playlist and guide files
# add this line to the docker run command from the first block
-v /path/to/lineup:/lineup-input:ro

Add that line to expose a folder of M3U playlists and XMLTV guides. The folder then appears as lineup-input in the file picker, so you choose your files without typing paths, and Mimir re-reads them on every refresh — a regenerated playlist or guide is picked up automatically. Mount as many folders as you like, each under its own name.

Update to a newer version
# pull the new image, stop and remove the old container, then re-run
# the docker run command from the first block. The mimir-config
# volume keeps your settings, sources and recordings intact.
docker pull ghcr.io/marleshi/mimir:latest
docker stop mimir
docker rm mimir

Application state is kept in a named volume, while recordings and working space live in folders you choose, so pulling a new image never puts your library at risk. Point /transcode at a drive with room to spare: a recording is written there in full before it is finalised, about 5 GB per hour of HD. Keeping it on the same drive as your recordings makes that final step a move rather than a copy. The --stop-timeout 120 flag gives an in-progress recording up to two minutes to finalise before the container exits, so stopping or updating Mimir never cuts a capture short.

Set TZ to your own timezone, because recordings are scheduled in the container's clock, so leaving it wrong shifts every timer. On Windows and macOS, use Windows- or macOS-style paths for the two folders. On Linux or a NAS, add -e PUID=$(id -u) -e PGID=$(id -g) so the server runs as your user — it defaults to UID/GID 1000, and your recordings folder must be writable by whichever user you choose. Publishing the port with -p 8094:8093 works everywhere. On Linux or a NAS you can swap it for --network host instead, which lets the TV apps discover the server automatically; the web interface then answers on port 8093.


Verify what you downloaded

Checksums

The macOS packages are signed by Apple Developer ID and notarised by Apple, the Windows installer is Authenticode-signed and timestamped, and every release is published with its SHA-256 hash so you can confirm the file you received is the file we built.

SHA256SUMS · Mimir 1.0.30
c79f489f29000b2cfb738efefd547837369130cb4682ca3260913f69d496d5a7  Mimir-1.0.30-macos-arm64.pkg
ecd474de1fdf291f6edfd8bd52420c4571bc98594659aaa3ebf3991079efc94b  Mimir-1.0.30-macos-x86_64.pkg
b715289848c1e8ff7c686811dae66224338ecbcaac91185f6491fc958aeb302f  Mimir-1.0.30-windows-x64-Setup.exe
Verify your download
# Windows · PowerShell
Get-FileHash -Algorithm SHA256 $HOME\Downloads\Mimir-1.0.30-windows-x64-Setup.exe
Get-AuthenticodeSignature $HOME\Downloads\Mimir-1.0.30-windows-x64-Setup.exe

# macOS
shasum -a 256 ~/Downloads/Mimir-1.0.30-macos-arm64.pkg

Now point it at a tuner

Mimir reads channels from anything that publishes an M3U playlist and an XMLTV guide, including HDHomeRun tuners and VBox gateways.