Compare commits

..

3 commits

Author SHA1 Message Date
f4067e3697
chore(viridian): update all Docker services to latest pinned releases
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
2025-12-23 13:03:41 +08:00
d9079d778f
feat: add ~/.local/bin support for user scripts
Configure PATH and backup strategy for non-declarative user scripts.

- Add ~/.local/bin to sessionPath in global home-manager config
- Include ~/.local/bin in onsite borgbackup (hourly to viridian)
- Include ~/.local/bin in offsite borgbackup (daily to borgbase)
2025-12-23 11:16:45 +08:00
571c034691
feat(editors): add Claude slash command and refactor config structure
Reorganize Claude configuration into dedicated subdirectory and add
reusable slash command for updating Docker services.

- Create editors/claude/ directory structure
- Move CLAUDE.md and settings.json into claude/
- Add slash commands directory with update-docker-services command
- Update default.nix to link individual files (allows Claude state files)
2025-12-23 11:14:49 +08:00
14 changed files with 32 additions and 10 deletions

View file

@ -0,0 +1,16 @@
Update all Docker service images on viridian to their latest pinned release versions.
For each service, look up the latest release version from the official sources and update the
image tag to the specific version number (not "latest").
Services to update:
- Jellyfin (jellyfin/jellyfin)
- Lidarr (ghcr.io/hotio/lidarr)
- Prowlarr (ghcr.io/hotio/prowlarr)
- qBittorrent (ghcr.io/hotio/qbittorrent)
- Radarr (ghcr.io/hotio/radarr)
- Sonarr (ghcr.io/hotio/sonarr)
- OpenGist (ghcr.io/thomiceli/opengist)
Use web search to find the latest release versions, then update the image tags in the
configuration files located in nixos/viridian/multimedia/ and nixos/viridian/services/.

View file

@ -41,8 +41,9 @@
home.file = {
".ideavimrc".source = ./ideavimrc;
# Global claude configuration
".claude/settings.json".source = ./claude-settings.json;
".claude/CLAUDE.md".source = ./CLAUDE.md;
# Claude configuration (link individual items to allow Claude Code to write state files)
".claude/CLAUDE.md".source = ./claude/CLAUDE.md;
".claude/settings.json".source = ./claude/settings.json;
".claude/commands".source = ./claude/commands;
};
}

View file

@ -39,6 +39,9 @@
sessionVariables = {
EDITOR = "nvim"; # Default text editor for CLI operations
};
sessionPath = [
"$HOME/.local/bin" # User scripts and executables
];
};
# Automatically restart systemd user services on configuration changes

View file

@ -52,6 +52,7 @@
# Dotfiles (critical user configuration)
"/btrfs-subvolumes/hm-sajenim/.ssh"
"/btrfs-subvolumes/hm-sajenim/.gnupg"
"/btrfs-subvolumes/hm-sajenim/.local/bin"
# Persistent files (actual storage location)
"/persist/etc/machine-id"

View file

@ -48,6 +48,7 @@ in {
# Dotfiles (critical user configuration)
"/btrfs-subvolumes/hm-sajenim/.ssh"
"/btrfs-subvolumes/hm-sajenim/.gnupg"
"/btrfs-subvolumes/hm-sajenim/.local/bin"
# Persistent files (actual storage location)
"/persist/etc/machine-id"

View file

@ -5,7 +5,7 @@ in {
# Volunteer-built media solution that puts you in control of your media
jellyfin = {
autoStart = true;
image = "jellyfin/jellyfin:10.10.5";
image = "jellyfin/jellyfin:10.11.5";
ports = [
"${port}:8096/tcp" # HTTP traffic
"8920:8920/tcp" # HTTPS traffic

View file

@ -5,7 +5,7 @@ in {
# # Music collection manager for Usenet and BitTorrent users
lidarr = {
autoStart = true;
image = "ghcr.io/hotio/lidarr:release-2.9.6.4552";
image = "ghcr.io/hotio/lidarr:release-3.1.0.4875";
ports = [
"${port}:8686/tcp" # WebUI
];

View file

@ -5,7 +5,7 @@ in {
# Indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps.
prowlarr = {
autoStart = true;
image = "ghcr.io/hotio/prowlarr:release-1.30.2.4939";
image = "ghcr.io/hotio/prowlarr:release-2.3.0.5236";
ports = [
"${port}:9696/tcp" # WebUI
];

View file

@ -5,7 +5,7 @@ in {
# # Open-source software alternative to µTorrent
qbittorrent = {
autoStart = true;
image = "ghcr.io/hotio/qbittorrent:release-5.0.3";
image = "ghcr.io/hotio/qbittorrent:release-5.1.4";
ports = [
"${port}:8080/tcp" # WebUI
"32372:32372/tcp" # Transport protocol

View file

@ -5,7 +5,7 @@ in {
# Movie collection manager for Usenet and BitTorrent users
radarr = {
autoStart = true;
image = "ghcr.io/hotio/radarr:release-5.18.4.9674";
image = "ghcr.io/hotio/radarr:release-6.0.4.10291";
ports = [
"${port}:7878/tcp" # WebUI
];

View file

@ -5,7 +5,7 @@ in {
# PVR for Usenet and BitTorrent users
sonarr = {
autoStart = true;
image = "ghcr.io/hotio/sonarr:release-4.0.13.2932";
image = "ghcr.io/hotio/sonarr:release-4.0.16.2944";
ports = [
"${port}:8989/tcp" # WebUI
];

View file

@ -5,7 +5,7 @@ in {
# OpenGist service configuration
virtualisation.oci-containers.containers = {
opengist = {
image = "ghcr.io/thomiceli/opengist:1.10";
image = "ghcr.io/thomiceli/opengist:1.11.1";
ports = [
"${port}:${port}"
];