Skip to content

Latest commit

 

History

History
128 lines (96 loc) · 5.02 KB

File metadata and controls

128 lines (96 loc) · 5.02 KB

server-stack

Build Status

Service list

This Docker Compose stack uses the following web services:

as well as the following support services:

Usage

To use the stack, make sure to create a .env file, and populate it with the required variables:

cp .env_example .env
vim .env

Start all services

docker compose up -d

Start specific service groups using profiles

# Media services only
docker compose --profile media up -d

# Home automation stack
docker compose --profile home-automation up -d

# Networking services
docker compose --profile networking up -d

# Multiple profiles
docker compose --profile media --profile monitoring up -d

Available Profiles

  • home-automation - IoT and smart home services
  • immich - Photo management with AI features
  • media - Media management and streaming
  • monitoring - Health and performance monitoring
  • networking - VPN, proxy, SSL services
  • utilities - Database and utility services

Tools

Container security patcher

To update all containers' packages to their latest versions, run the script below. Please note that ALL containers running on the server will have their packages upgraded!

./patch_containers

To run it periodically, run the following to add it to your crontab:

crontab -l | { cat; echo -e "# Container patcher\n0 5 * * * $pwd/patch_containers"; } | crontab -

Network devices certificate update

Check if your network devices need a certificate update by running:

./update_certs -v

To run it periodically, run the following to add it to your crontab:

crontab -l | { cat; echo -e "# Certificate checker\n0 6 * * * $pwd/update_certs"; } | crontab -

Jellyfin with nvenc transcoding

To use nvenc transcoding in Jellyfin, on an Ubuntu host run the following:

Set up the libnvidia-container repository:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

Install the Nvidia container toolkit and configure it:

apt update
apt install nvidia-container-toolkit

nvidia-ctk runtime configure
systemctl restart docker

If not available or not required, remove the 'runtime' and the 'NVIDIA_VISIBLE_DEVICES' environment variable from the 'jellyfin' container