Docs/Maho: Difference between revisions

From MTU LUG Wiki
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 16: Line 16:


=== Maintenance ===
=== Maintenance ===
Media is added to <code>/salieri/jellyfin/import</code>
New media should be added to <code>/salieri/jellyfin/import</code> and separated into each subfolder depending on media type.

Inside the *arr suite, <code>../import/(media type)</code> is mapped to <code>/downloads/(media type)</code> and can be found on the left hand bar under library import.

Select <code>/downloads/(media type)</code> depending on what *arr application you are using and the subfolder, and import all new media. If there is conflicting media, there may be an error importing, to which an admin needs to manually move the clashing media by hand over ssh.

The imported media is still living under <code>../imports</code> in the main file system; go back to *arr's main media page and look for <code>filters</code> on the right hand side. Some associated filters have been made (ex: <code>Downloads-Movies</code> for Radarr), select whichever filter fits the media you imported.

On the top function bar (same bar filters is in) select <code>Edit Movies</code>, <code>Select Series</code>, or however it is formatted for the *arr application. If filtered right, we should only see our newly imported media and not old media. If this is true click <code>Select All</code>, then edit at the very bottom of the page.

Under <code>Root Folder</code>, select the base path that best fits the newly indexed media (<code>/movies</code> for our Radarr example) and finally move the media to the base <code>/salieri/jellyfin/media/(media type)</code> folder.

====*arr====
Updates to the *arr suite are simple and should be done under the podman user. First log into the podman user <code>sudo su podman</code> and go to the podman compose directory <code>cd /opt/podman/compose/arr/</code>, then run the following one liner to pull new images (if there are any) and force recreate the stack <code>podman-compose pull && podman-compose up -d --force-recreate</code>.

<code>-d</code> daemonize's this stack (run in the background)

<code>--force-recreate</code> forces containers to be recreated with the updated image in case podman has issues taking down containers.

Updating the stack should be done as the podman user as our containers are running rootless. Do not run the update commands as another user as said user will try to spin up the containers under its sub ID's.


(Detail about ism's and how to administrate/add media)
===Services===
===Services===


Line 28: Line 46:
(add more jellyfin service detail)
(add more jellyfin service detail)


=====*arr=====
====*arr====
The *arr suite is running inside docker containers on maho as a single host. The compose file can be found at <code>/opt/podman/compose/arr/docker-compose.yaml</code> and holds the *arr suite as a single service, allowing for one-liner updates/replaces.
The *arr suite is running inside docker containers on maho as a single host. The compose file can be found at <code>/opt/podman/compose/arr/docker-compose.yaml</code> and holds the *arr suite as a single service, allowing for one-liner updates/replaces.


Line 34: Line 52:


====Language Models====
====Language Models====
Small language models are to be hosted on the two separate GPU's via docker to allow different models running behind the reverse proxy. A user on LUG's Sillytavern (or any front end where an API can be called on) can then select what model to prompt.
Language and other models are to be hosted on the two GPU's and are than reverse proxied. A user on LUG's Sillytavern (or any front end where an API can be called on) can then select what model to prompt.


Koboldcpp is currently used to run .GGUF models on mixed CPU and GPU allowing for language models (LLM), embedding models (used for data vectorization), text-to-speech (TTS), speech to text, and image generation under one application.
(Allen thing)

Latest revision as of 19:55, 4 January 2026

Maho holds a number of Graphical Processing Units (GPUs) and services either transcoding video or running Large Language Models (LLM's).

Hardware

Maho is a standalone Dell R730 server (2.5" drive bay variant)

Network daughter card has been swapped out for a Dell 165T0 Broadcom 57800S, a 2 port ethernet and 2 port SFP+ card.

2 GPU's are housed and used for compute workloads, a GTX 1060 6GB and a GTX 1070.

There are 3 open low profile PCIe slots.

Operating System

Mirrors runs Debian 13.

(Additional storage information)

Maintenance

New media should be added to /salieri/jellyfin/import and separated into each subfolder depending on media type.

Inside the *arr suite, ../import/(media type) is mapped to /downloads/(media type) and can be found on the left hand bar under library import.

Select /downloads/(media type) depending on what *arr application you are using and the subfolder, and import all new media. If there is conflicting media, there may be an error importing, to which an admin needs to manually move the clashing media by hand over ssh.

The imported media is still living under ../imports in the main file system; go back to *arr's main media page and look for filters on the right hand side. Some associated filters have been made (ex: Downloads-Movies for Radarr), select whichever filter fits the media you imported.

On the top function bar (same bar filters is in) select Edit Movies, Select Series, or however it is formatted for the *arr application. If filtered right, we should only see our newly imported media and not old media. If this is true click Select All, then edit at the very bottom of the page.

Under Root Folder, select the base path that best fits the newly indexed media (/movies for our Radarr example) and finally move the media to the base /salieri/jellyfin/media/(media type) folder.

*arr

Updates to the *arr suite are simple and should be done under the podman user. First log into the podman user sudo su podman and go to the podman compose directory cd /opt/podman/compose/arr/, then run the following one liner to pull new images (if there are any) and force recreate the stack podman-compose pull && podman-compose up -d --force-recreate.

-d daemonize's this stack (run in the background)

--force-recreate forces containers to be recreated with the updated image in case podman has issues taking down containers.

Updating the stack should be done as the podman user as our containers are running rootless. Do not run the update commands as another user as said user will try to spin up the containers under its sub ID's.

Services

Services are based on this machine but may call remote machines (and therefore remote GPU's) for remote compute via rffmpeg (transcoding) or a OpenAI reverse proxy (LLM)

Jellyfin

Jellyfin is installed to its default location (location) and is reverse proxied via nginx. Media is located in /salieri/jellyfin/media with subfolders spanning into media types. Media inside this ../media folder is managed/renamed by the *arr suite. /salieri/jellyfin/imports is a holding directory for unsorted media. *arr has access to these folders as /download/(subfolder) and can be sorted futher/moved into ../media.

(add more jellyfin service detail)

*arr

The *arr suite is running inside docker containers on maho as a single host. The compose file can be found at /opt/podman/compose/arr/docker-compose.yaml and holds the *arr suite as a single service, allowing for one-liner updates/replaces.

(Detail about *arr setup and how to change settings)

Language Models

Language and other models are to be hosted on the two GPU's and are than reverse proxied. A user on LUG's Sillytavern (or any front end where an API can be called on) can then select what model to prompt.

Koboldcpp is currently used to run .GGUF models on mixed CPU and GPU allowing for language models (LLM), embedding models (used for data vectorization), text-to-speech (TTS), speech to text, and image generation under one application.