Repository navigation
feat: install and run the Jellyfin media server on the gateway host #355
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
4fb50af
f4db3e6
7ca3214
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -70,6 +70,12 @@ cask "steam" | |
| cask "transmission" # BitTorrent client | ||
| cask "whatsapp" | ||
|
|
||
| # Gateway-only (mac-mini): same hostname match as is_gateway_host in bootstrap.sh | ||
| require "socket" | ||
| if Socket.gethostname.split(".").first.match?(/\Amac-mini(-\d+)?\z/) | ||
| cask "jellyfin" # Media server (http://localhost:8096) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [Suggestion] The cask only installs |
||
| end | ||
|
|
||
| # Casks - Fonts | ||
| cask "font-jetbrains-mono-nerd-font" | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| <plist version="1.0"> | ||
| <dict> | ||
| <key>Label</key> | ||
| <string>com.evansenter.jellyfin</string> | ||
|
|
||
| <!-- Runs the server binary from the jellyfin cask headless, in place of the | ||
| Jellyfin.app menu-bar wrapper (which can't be given an environment). --> | ||
| <key>ProgramArguments</key> | ||
| <array> | ||
| <string>/Applications/Jellyfin.app/Contents/MacOS/jellyfin</string> | ||
| <string>--webdir</string> | ||
| <string>/Applications/Jellyfin.app/Contents/Resources/jellyfin-web</string> | ||
| <string>--ffmpeg</string> | ||
| <string>/Applications/Jellyfin.app/Contents/MacOS/ffmpeg</string> | ||
| <string>--datadir</string> | ||
| <string>__HOME__/Library/Application Support/jellyfin</string> | ||
| </array> | ||
|
|
||
| <!-- On macOS 27, starting the FSEvents-backed config watcher blocks forever | ||
| and the server never logs or binds 8096; polling avoids FSEvents. --> | ||
| <key>EnvironmentVariables</key> | ||
| <dict> | ||
| <key>DOTNET_USE_POLLING_FILE_WATCHER</key> | ||
| <string>1</string> | ||
| </dict> | ||
|
|
||
| <key>RunAtLoad</key> | ||
| <true/> | ||
|
|
||
| <key>KeepAlive</key> | ||
| <dict> | ||
| <key>SuccessfulExit</key> | ||
| <false/> | ||
| </dict> | ||
|
|
||
| <key>ThrottleInterval</key> | ||
| <integer>30</integer> | ||
|
|
||
| <!-- stdout duplicates the rotating logs Jellyfin writes under its datadir/log; | ||
| keep only stderr for crashes before logging is up. --> | ||
| <key>StandardOutPath</key> | ||
| <string>/dev/null</string> | ||
|
|
||
| <key>StandardErrorPath</key> | ||
| <string>__HOME__/.local/log/jellyfin.err</string> | ||
|
|
||
| <!-- Standard, not Background: Background caps CPU/IO, which starves transcoding. --> | ||
| <key>ProcessType</key> | ||
| <string>Standard</string> | ||
| </dict> | ||
| </plist> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[Suggestion] The gateway regex now lives in two languages:
is_gateway_hostin bootstrap.sh and this line. The comment points at the bash version, but nothing makes the two stay in step. If one is widened later (for example to a new hostname), the other drifts silently. A small check intests/test-bootstrap.shcould catch that. It would assert that the Brewfile containsmac-mini(-\d+)?and bootstrap.sh containsmac-mini(-[0-9]+)?, or extract both and run the same sample hostnames through each.