An installer that sets everything up, including the media engine.
Mimir then sits quietly in the notification area; click the icon any
time to open the interface.
Code-signed and timestamped, so Windows can confirm the installer is
genuine and unaltered. The certificate is newly issued and has no
reputation yet, so SmartScreen may still ask once; choose More info,
then Run anyway.
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.
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.
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 builddocker pull ghcr.io/marleshi/mimir:latest
# start it, with recordings and working space on folders you choosedocker 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 startsdocker 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.