Personal-use NixOS configuration
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Prepare for Pydio Cells and OmniPoly

encode42 010a9a52 1ccd4615

+201 -69
+51 -30
flake.lock
··· 54 54 "type": "github" 55 55 } 56 56 }, 57 + "encode42-packages": { 58 + "inputs": { 59 + "nixpkgs": [ 60 + "nixpkgs" 61 + ] 62 + }, 63 + "locked": { 64 + "lastModified": 1757660530, 65 + "narHash": "sha256-ttKeYhhkR7bCItv1pEmKbb299iSTKfn0JiAQDQLs+mc=", 66 + "owner": "encode42", 67 + "repo": "nixos-packages", 68 + "rev": "376c25c04e1879903d15f0a439ff3477b03bc852", 69 + "type": "github" 70 + }, 71 + "original": { 72 + "owner": "encode42", 73 + "repo": "nixos-packages", 74 + "type": "github" 75 + } 76 + }, 57 77 "firefox-addons": { 58 78 "inputs": { 59 79 "nixpkgs": [ ··· 62 82 }, 63 83 "locked": { 64 84 "dir": "pkgs/firefox-addons", 65 - "lastModified": 1757131407, 66 - "narHash": "sha256-AlCnmivsXeZAiDz0b0n/HsYx6ccowNATAilNxLMFgeM=", 85 + "lastModified": 1757649814, 86 + "narHash": "sha256-VjtA+fqkraKHbGzjKJBPfDj+SXysXiR4SrghTr10HoY=", 67 87 "owner": "rycee", 68 88 "repo": "nur-expressions", 69 - "rev": "102a040fa2e745daf670819aac53d1f6f73635af", 89 + "rev": "789920825fc982a93a2bf91a714367fa8f7ea0a6", 70 90 "type": "gitlab" 71 91 }, 72 92 "original": { ··· 313 333 "xwayland-satellite-unstable": "xwayland-satellite-unstable" 314 334 }, 315 335 "locked": { 316 - "lastModified": 1757071535, 317 - "narHash": "sha256-I3ppQKxd2oxQfwMCW04TSWnIwp5an5kTMY+tx0W8jaA=", 336 + "lastModified": 1757622886, 337 + "narHash": "sha256-TfA395JLtF8cZkGFUOIeKLxsW3cTZuIdWSCx2lRPQrI=", 318 338 "owner": "sodiboo", 319 339 "repo": "niri-flake", 320 - "rev": "efa08fc58d7da5be64cfebc52b7dc44bf8d19ba9", 340 + "rev": "3b206f829194f7e19b2ff1cf4193c6404e2692f7", 321 341 "type": "github" 322 342 }, 323 343 "original": { ··· 346 366 "niri-unstable": { 347 367 "flake": false, 348 368 "locked": { 349 - "lastModified": 1756926064, 350 - "narHash": "sha256-5/1vyFRLvJWxhBgpPaV2orC0pjSgIny6JM6+joLyZok=", 369 + "lastModified": 1757358784, 370 + "narHash": "sha256-UNeUJW3c10z0aMJ87QKS85C/JgK9ng6pdRS0EwY6OLg=", 351 371 "owner": "YaLTeR", 352 372 "repo": "niri", 353 - "rev": "c69464c1288789020d9a086f86c970a7dc49b8c7", 373 + "rev": "bdee1a657699a77bc4cdb050f7355f37f64c45a6", 354 374 "type": "github" 355 375 }, 356 376 "original": { ··· 368 388 "systems": "systems_2" 369 389 }, 370 390 "locked": { 371 - "lastModified": 1756535359, 372 - "narHash": "sha256-XNhW99b7aG+HpT2pIokbU68k911Ok/qUKCaWAB2UUfY=", 391 + "lastModified": 1757321985, 392 + "narHash": "sha256-rUeWawQCAcvlYdLUQVfRZa/034/t9QgMFz7MAZaU2dI=", 373 393 "owner": "theCapypara", 374 394 "repo": "nix-jetbrains-plugins", 375 - "rev": "ef476a789cadeac91dec6e7965d873c0d9905ba6", 395 + "rev": "39cf59f134054d4384b86513e2113799c25c334c", 376 396 "type": "github" 377 397 }, 378 398 "original": { ··· 390 410 ] 391 411 }, 392 412 "locked": { 393 - "lastModified": 1757121435, 394 - "narHash": "sha256-PmhZWQh/RBlqCfIJPRePD++nAXkByixlnUNwtIFTFNA=", 413 + "lastModified": 1757639838, 414 + "narHash": "sha256-TgCwkiL6zYSxtUB0tEewHKjlBzOeklZMEbpVFL3swfI=", 395 415 "owner": "kaylorben", 396 416 "repo": "nixcord", 397 - "rev": "0d467edfdb65341a5dff9d3e0419cd3ddc3c0c58", 417 + "rev": "e7d4120a3e7c5126587f23380c21e252d1a26d1e", 398 418 "type": "github" 399 419 }, 400 420 "original": { ··· 468 488 }, 469 489 "nixpkgs-stable_2": { 470 490 "locked": { 471 - "lastModified": 1757020766, 472 - "narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=", 491 + "lastModified": 1757545623, 492 + "narHash": "sha256-mCxPABZ6jRjUQx3bPP4vjA68ETbPLNz9V2pk9tO7pRQ=", 473 493 "owner": "NixOS", 474 494 "repo": "nixpkgs", 475 - "rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a", 495 + "rev": "8cd5ce828d5d1d16feff37340171a98fc3bf6526", 476 496 "type": "github" 477 497 }, 478 498 "original": { ··· 484 504 }, 485 505 "nixpkgs-unstable": { 486 506 "locked": { 487 - "lastModified": 1756787288, 488 - "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", 507 + "lastModified": 1757487488, 508 + "narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=", 489 509 "owner": "NixOS", 490 510 "repo": "nixpkgs", 491 - "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", 511 + "rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0", 492 512 "type": "github" 493 513 }, 494 514 "original": { ··· 500 520 }, 501 521 "nixpkgs_2": { 502 522 "locked": { 503 - "lastModified": 1756787288, 504 - "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", 523 + "lastModified": 1757487488, 524 + "narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=", 505 525 "owner": "NixOS", 506 526 "repo": "nixpkgs", 507 - "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", 527 + "rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0", 508 528 "type": "github" 509 529 }, 510 530 "original": { ··· 516 536 }, 517 537 "nixpkgs_3": { 518 538 "locked": { 519 - "lastModified": 1757020766, 520 - "narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=", 539 + "lastModified": 1757545623, 540 + "narHash": "sha256-mCxPABZ6jRjUQx3bPP4vjA68ETbPLNz9V2pk9tO7pRQ=", 521 541 "owner": "NixOS", 522 542 "repo": "nixpkgs", 523 - "rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a", 543 + "rev": "8cd5ce828d5d1d16feff37340171a98fc3bf6526", 524 544 "type": "github" 525 545 }, 526 546 "original": { ··· 561 581 "inputs": { 562 582 "disko": "disko", 563 583 "emby-flake": "emby-flake", 584 + "encode42-packages": "encode42-packages", 564 585 "firefox-addons": "firefox-addons", 565 586 "home-manager": "home-manager", 566 587 "lanzaboote": "lanzaboote", ··· 644 665 "xwayland-satellite-unstable": { 645 666 "flake": false, 646 667 "locked": { 647 - "lastModified": 1756869116, 648 - "narHash": "sha256-SGcqX3amLH4xiA+dwF2Fu2mt1O8zHc60v0+NEZGDJhw=", 668 + "lastModified": 1757179758, 669 + "narHash": "sha256-TIvyWzRt1miQj6Cf5Wy8Qz43XIZX7c4vTVwRLAT5S4Y=", 649 670 "owner": "Supreeeme", 650 671 "repo": "xwayland-satellite", 651 - "rev": "41e865c8d35468c67b991ef5a245a98b3e44108c", 672 + "rev": "970728d0d9d1eada342bb8860af214b601139e58", 652 673 "type": "github" 653 674 }, 654 675 "original": {
+7
flake.nix
··· 61 61 emby-flake = { 62 62 url = "github:tofu-salad/emby-server-flake"; 63 63 }; 64 + 65 + # My packages 66 + encode42-packages = { 67 + url = "github:encode42/nixos-packages"; 68 + 69 + inputs.nixpkgs.follows = "nixpkgs"; 70 + }; 64 71 }; 65 72 66 73 outputs = args: import ./outputs.nix args;
+32
hosts/index/config/groupware/cells.nix
··· 1 + { flakeRoot, ... }: 2 + 3 + let 4 + cellsModule = import (flakeRoot + /packages/server/groupware/cells.nix) { 5 + hosts = [ 6 + { 7 + name = "cells.lan"; 8 + ssl = "internal"; 9 + } 10 + { 11 + name = "drive.encrypted.group"; 12 + ssl = "cloudflare"; 13 + } 14 + ]; 15 + }; 16 + 17 + cellsHome = "/mnt/apps/pydio"; 18 + in 19 + { 20 + imports = [ 21 + cellsModule 22 + ]; 23 + 24 + services.cells = { 25 + environment = { 26 + HOME = cellsHome; 27 + 28 + CELLS_WORKING_DIR = cellsHome; 29 + CELLS_CONFIG = "file://${cellsHome}/pydio.json"; 30 + }; 31 + }; 32 + }
+25
hosts/index/config/language/omnipoly.nix
··· 1 + { config, flakeRoot, ... }: 2 + 3 + let 4 + omnipolyModule = import (flakeRoot + /packages/server/language/omnipoly.nix) { 5 + hosts = [ 6 + { 7 + name = "omnipoly.lan"; 8 + ssl = "internal"; 9 + } 10 + { 11 + name = "language.encrypted.group"; 12 + ssl = "cloudflare"; 13 + } 14 + ]; 15 + }; 16 + in 17 + { 18 + imports = [ 19 + omnipolyModule 20 + ]; 21 + 22 + services.omnipoly = { 23 + port = 6000; 24 + }; 25 + }
+3
hosts/index/default.nix
··· 25 25 ./config/databases/mysql.nix 26 26 ./config/databases/postgresql.nix 27 27 28 + ./config/groupware/cells.nix 28 29 ./config/groupware/maddy.nix 29 30 30 31 #./config/media/audiobookshelf.nix 31 32 #./config/media/emby.nix 32 33 ./config/media/navidrome.nix 34 + 35 + ./config/language/omnipoly.nix 33 36 34 37 #./config/torrenting/rtorrent.nix 35 38 #./config/torrenting/soulseek.nix
+6
lib/mkSystem.nix
··· 23 23 config.allowUnfree = true; 24 24 }; 25 25 26 + pkgs-personal = import inputs.encode42-packages { 27 + inherit system; 28 + }; 29 + 26 30 flakeLib = import ./default.nix { 27 31 inherit pkgs; 28 32 ··· 42 46 networking.hostName = hostName; 43 47 } 44 48 ] 49 + ++ builtins.attrValues inputs.encode42-packages.nixosModules 45 50 ++ inputs.nixpkgs.lib.optional isLaptop ../hardware/laptop.nix 46 51 ++ extraModules; 47 52 ··· 51 56 flakeLib 52 57 pkgs 53 58 pkgs-unstable 59 + pkgs-personal 54 60 isLaptop 55 61 hostName 56 62 ;
+24
packages/server/groupware/cells.nix
··· 1 + { 2 + hosts ? [ ] 3 + }: 4 + 5 + { config, flakeLib, ... }: 6 + 7 + { 8 + imports = [ 9 + ./collabora.nix 10 + ]; 11 + 12 + services.cells = { 13 + enable = true; 14 + }; 15 + 16 + services.caddy.virtualHosts = flakeLib.mkProxies hosts '' 17 + reverse_proxy :${toString config.services.cells.port} { 18 + transport http { 19 + tls 20 + tls_insecure_skip_verify 21 + } 22 + } 23 + ''; 24 + }
+24 -22
packages/server/groupware/collabora.nix
··· 10 10 services.collabora-online = { 11 11 enable = true; 12 12 13 - languagetool = { 14 - enabled = true; 13 + settings = { 14 + languagetool = { 15 + enabled = true; 15 16 16 - base_url = "http://127.0.0.1:${config.services.languagetool.port}/v2"; 17 - }; 17 + base_url = "http://127.0.0.1:${toString config.services.languagetool.port}/v2"; 18 + }; 18 19 19 - fonts_missing = { 20 - handling = "report"; 21 - }; 20 + fonts_missing = { 21 + handling = "report"; 22 + }; 22 23 23 - per_document = { 24 - idlesave_duration_secs = 15; 25 - autosave_duration_secs = 60; 26 - always_save_on_exit = true; 24 + per_document = { 25 + idlesave_duration_secs = 15; 26 + autosave_duration_secs = 60; 27 + always_save_on_exit = true; 27 28 28 - redlining_as_comments = true; 29 + redlining_as_comments = true; 29 30 30 - max_concurrency = 6; 31 - }; 31 + max_concurrency = 6; 32 + }; 32 33 33 - admin_console = { 34 - enable = false; 35 - }; 34 + admin_console = { 35 + enable = false; 36 + }; 36 37 37 - ssl = { 38 - enable = false; 39 - }; 38 + ssl = { 39 + enable = false; 40 + }; 40 41 41 - wasm = { 42 - enable = true; 42 + wasm = { 43 + enable = true; 44 + }; 43 45 }; 44 46 }; 45 47 }
+12 -17
packages/server/language/libretranslate.nix
··· 1 - { pkgs, ... }: 1 + { 2 + hosts ? [ ], 3 + }: 4 + 5 + { config, flakeLib, ... }: 6 + 7 + # TODO: Look into sockets 2 8 3 9 { 4 - systemd.services.libretranslate = { 5 - description = "LibreTranslate service"; 6 - after = [ "network.target" ]; 7 - wantedBy = [ "multi-user.target" ]; 10 + services.libretranslate = { 11 + enable = true; 8 12 9 13 environment = { 10 - HOME = "/var/lib/libretranslate"; 11 - 12 14 LT_DISABLE_FILES_TRANSLATION = "true"; 13 15 LT_CHAR_LIMIT = "380"; 14 16 15 17 LT_THREADS = "8"; 16 18 }; 17 - 18 - serviceConfig = { 19 - ExecStart = "${pkgs.libretranslate}/bin/libretranslate"; 20 - DynamicUser = true; 21 - WorkingDirectory = "/var/lib/libretranslate"; 22 - StateDirectory = "libretranslate"; 23 - }; 24 19 }; 25 20 26 - environment.systemPackages = with pkgs; [ 27 - libretranslate 28 - ]; 21 + services.caddy.virtualHosts = flakeLib.mkProxies hosts '' 22 + reverse_proxy ${config.services.libretranslate.port} 23 + ''; 29 24 }
+17
packages/server/language/omnipoly.nix
··· 1 + { 2 + hosts ? [ ], 3 + }: 4 + 5 + { config, flakeLib, ... }: 6 + 7 + # TODO: Look into sockets 8 + 9 + { 10 + services.omnipoly = { 11 + enable = true; 12 + }; 13 + 14 + services.caddy.virtualHosts = flakeLib.mkProxies hosts '' 15 + reverse_proxy ${toString config.services.omnipoly.port} 16 + ''; 17 + }