Update all container images to their latest stable releases with pinned version tags (not "latest" tag for reproducibility). Multimedia services: - Jellyfin: 10.10.5 → 10.11.5 - Lidarr: 2.9.6.4552 → 3.1.0.4875 - Prowlarr: 1.30.2.4939 → 2.3.0.5236 - qBittorrent: 5.0.3 → 5.1.4 - Radarr: 5.18.4.9674 → 6.0.4.10291 - Sonarr: 4.0.13.2932 → 4.0.16.2944 Services: - OpenGist: 1.10 → 1.11.1
61 lines
1.5 KiB
Nix
61 lines
1.5 KiB
Nix
{config, ...}: let
|
|
hostname = config.networking.hostName;
|
|
port = "6157";
|
|
in {
|
|
# OpenGist service configuration
|
|
virtualisation.oci-containers.containers = {
|
|
opengist = {
|
|
image = "ghcr.io/thomiceli/opengist:1.11.1";
|
|
ports = [
|
|
"${port}:${port}"
|
|
];
|
|
volumes = [
|
|
"/srv/opengist:/opengist"
|
|
];
|
|
# Environment variables for OpenGist
|
|
environment = {
|
|
PUID = "1000";
|
|
PGID = "100";
|
|
# Custom OpenGist configuration
|
|
OG_CUSTOM_LOGO = "pikachu.png";
|
|
OG_CUSTOM_FAVICON = "pokeball.png";
|
|
OG_CUSTOM_NAME = "PokeGist";
|
|
# Disable SSH Git support
|
|
OG_SSH_GIT_ENABLED = "false";
|
|
};
|
|
};
|
|
};
|
|
|
|
# Traefik configuration
|
|
services.traefik.dynamicConfigOptions.http = {
|
|
# OpenGist Router
|
|
routers.opengist = {
|
|
rule = "Host(`ps7e.xyz`)";
|
|
entryPoints = [
|
|
"websecure"
|
|
];
|
|
service = "opengist";
|
|
};
|
|
# OpenGist Service
|
|
services.opengist = {
|
|
loadBalancer.servers = [
|
|
{url = "http://127.0.0.1:${port}";}
|
|
];
|
|
};
|
|
};
|
|
|
|
# Activation script to create symlinks for custom assets
|
|
system.activationScripts.opengist-symlink = ''
|
|
cp ${toString ./assets/pikachu.png} /srv/opengist/custom/pikachu.png
|
|
cp ${toString ./assets/pokeball.png} /srv/opengist/custom/pokeball.png
|
|
'';
|
|
|
|
fileSystems."/srv/opengist" = {
|
|
device = "/dev/disk/by-label/${hostname}";
|
|
fsType = "btrfs";
|
|
options = [
|
|
"subvol=srv-opengist"
|
|
"compress=zstd"
|
|
];
|
|
};
|
|
}
|