From 1836d855d58439cfcfaba91058851f1c19a984c8 Mon Sep 17 00:00:00 2001 From: L-Nafaryus Date: Wed, 2 Oct 2024 22:20:12 +0500 Subject: [PATCH] catarina: radio interface --- flake.lock | 250 +++++++++++++++--- flake.nix | 4 + .../catarina/services/radio.nix | 40 ++- nixosConfigurations/default.nix | 1 + 4 files changed, 258 insertions(+), 37 deletions(-) diff --git a/flake.lock b/flake.lock index dc6ce97..f3b6e9e 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "advisory-db": { + "flake": false, + "locked": { + "lastModified": 1727353582, + "narHash": "sha256-2csMEEOZhvowVKZNBHk1kMJqk72ZMrPj9LQYCzP6EKs=", + "owner": "rustsec", + "repo": "advisory-db", + "rev": "cb905e6e405834bdff1eb1e20c9b10edb5403889", + "type": "github" + }, + "original": { + "owner": "rustsec", + "repo": "advisory-db", + "type": "github" + } + }, "ags": { "inputs": { "nixpkgs": [ @@ -8,11 +24,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1725841979, - "narHash": "sha256-SXYqzpHPuXFR6w/cUKo3VN8XRn6XA2mGbdRXs9oLk6k=", + "lastModified": 1727303518, + "narHash": "sha256-lO5JMynTxNZxg/+E4/Y9reeLGIz/M8cEue+Re4cP6qo=", "owner": "Aylur", "repo": "ags", - "rev": "aaef50bb2c80ef4b4a359329d72669a95e7c4796", + "rev": "cd543afec4d9ed708990e5ba52184716809bf248", "type": "github" }, "original": { @@ -39,11 +55,11 @@ }, "catppuccin": { "locked": { - "lastModified": 1725509983, - "narHash": "sha256-NHCgHVqumPraFJnLrkanoLDuhOoUHUvRhvp/RIHJR+A=", + "lastModified": 1726952185, + "narHash": "sha256-l/HbsQjJMT6tlf8KCooFYi3J6wjIips3n6/aWAoLY4g=", "owner": "catppuccin", "repo": "nix", - "rev": "45745fe5960acaefef2b60f3455bcac6a0ca6bc9", + "rev": "630b559cc1cb4c0bdd525af506935323e4ccd5d1", "type": "github" }, "original": { @@ -53,6 +69,21 @@ } }, "crane": { + "locked": { + "lastModified": 1727824512, + "narHash": "sha256-DvFQd58W20BEqh0BUt33eZhzPKBXGO/r9aiSFIVMaWU=", + "owner": "ipetkov", + "repo": "crane", + "rev": "a376dd1efac7bce448857c62961c6311be26cb09", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "crane_2": { "locked": { "lastModified": 1725409566, "narHash": "sha256-PrtLmqhM6UtJP7v7IGyzjBFhbG4eOAHT6LPYOFmYfbk=", @@ -67,7 +98,79 @@ "type": "github" } }, + "dream2nix": { + "inputs": { + "nixpkgs": [ + "elnafo-radio", + "nixpkgs" + ], + "purescript-overlay": "purescript-overlay", + "pyproject-nix": "pyproject-nix" + }, + "locked": { + "lastModified": 1726523340, + "narHash": "sha256-Av5mdR2lAGUVdA6DJ8Anon3/FZg3DX4gl1Ff72rCpKU=", + "owner": "nix-community", + "repo": "dream2nix", + "rev": "b76c529f377100516c40c5b6e239a4525fdcabe0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "dream2nix", + "type": "github" + } + }, + "elnafo-radio": { + "inputs": { + "advisory-db": "advisory-db", + "crane": "crane_2", + "dream2nix": "dream2nix", + "fenix": "fenix", + "nix-std": "nix-std", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1727850538, + "narHash": "sha256-nFqdD4P7aDANhEGG7pRbNVf7AYosK6XCpZhx25Nar1M=", + "ref": "refs/heads/master", + "rev": "79de647d2aa3ddfe70fa3450cc066b3ed6c717d7", + "revCount": 9, + "type": "git", + "url": "https://vcs.elnafo.ru/L-Nafaryus/elnafo-radio" + }, + "original": { + "type": "git", + "url": "https://vcs.elnafo.ru/L-Nafaryus/elnafo-radio" + } + }, "fenix": { + "inputs": { + "nixpkgs": [ + "elnafo-radio", + "nixpkgs" + ], + "rust-analyzer-src": [ + "elnafo-radio" + ] + }, + "locked": { + "lastModified": 1726986637, + "narHash": "sha256-webLScPFCax18Z2lQHhaWzqqQRvV2Y1lOADqUa7VQbU=", + "owner": "nix-community", + "repo": "fenix", + "rev": "f5a9b01cd81b46228b3737669e8275b1f2da7d35", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "fenix_2": { "inputs": { "nixpkgs": [ "nixpkgs" @@ -75,11 +178,11 @@ "rust-analyzer-src": [] }, "locked": { - "lastModified": 1726813972, - "narHash": "sha256-t6turZgoSAVgj7hn5mxzNlLOeVeZvymFo8+ymB52q34=", + "lastModified": 1727764514, + "narHash": "sha256-tvN9v5gTxLI5zOKsNvYl1aUxIitHm8Nj3vKdXNfJo50=", "owner": "nix-community", "repo": "fenix", - "rev": "251caeafc75b710282ee7e375800f75f4c8c5727", + "rev": "a9d2e5fa8d77af05240230c9569bbbddd28ccfaf", "type": "github" }, "original": { @@ -112,11 +215,11 @@ ] }, "locked": { - "lastModified": 1726153070, - "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", + "lastModified": 1727826117, + "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", + "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", "type": "github" }, "original": { @@ -130,11 +233,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -202,11 +305,11 @@ ] }, "locked": { - "lastModified": 1726825546, - "narHash": "sha256-HiBzfzgqojA9OjPB+vdi2o+gy4Zw/MEipuGopgGsZEw=", + "lastModified": 1727817100, + "narHash": "sha256-dlyV9/eiWkm/Y/t2+k4CFZ29tBvCANmJogEYaHeAOTw=", "owner": "nix-community", "repo": "home-manager", - "rev": "0b052dd8119005c6ba819db48bcc657e48f401b7", + "rev": "437ec62009fa8ceb684eb447d455ffba25911cf9", "type": "github" }, "original": { @@ -232,6 +335,21 @@ "type": "github" } }, + "nix-std": { + "locked": { + "lastModified": 1710870712, + "narHash": "sha256-e+7MJF2gsgTBuOWv4mCimSP0D9+naeFSw9a7N3yEmv4=", + "owner": "chessai", + "repo": "nix-std", + "rev": "31bbc925750cc9d8f828fe55cee1a2bd985e0c00", + "type": "github" + }, + "original": { + "owner": "chessai", + "repo": "nix-std", + "type": "github" + } + }, "nixos-mailserver": { "inputs": { "blobs": "blobs", @@ -257,11 +375,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1726755586, - "narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=", + "lastModified": 1727634051, + "narHash": "sha256-S5kVU7U82LfpEukbn/ihcyNt2+EvG7Z5unsKW9H/yFA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e", + "rev": "06cf0e1da4208d3766d898b7fdab6513366d45b9", "type": "github" }, "original": { @@ -333,11 +451,11 @@ "treefmt-nix": [] }, "locked": { - "lastModified": 1726846628, - "narHash": "sha256-0CH44sEwiljiN2q7eIFCvabyUm1WeEiF8ofP/z5ca0Q=", + "lastModified": 1727843841, + "narHash": "sha256-iMjPPKQ/04D7okDwIo8aZjTn0KSirXq0civDpSnosDQ=", "owner": "nix-community", "repo": "nixvim", - "rev": "3211ce356be612ae89a38c60799992bde8a47127", + "rev": "dfbd272170805486383433114a5ed66ec9e9f040", "type": "github" }, "original": { @@ -355,11 +473,11 @@ ] }, "locked": { - "lastModified": 1726816132, - "narHash": "sha256-AbB0lgc0IbzLIxj1O3cosiMNAVQak4KJtvq9q8MjHhs=", + "lastModified": 1727599661, + "narHash": "sha256-0R+1ih0Rfqrz/lcduvpNSnUw3uthUHiaGh0aWPyIqeQ=", "owner": "NuschtOS", "repo": "search", - "rev": "7733a39a1321057172d87e6251ded7cdeb67171e", + "rev": "c3c3928b8de7d300c34e9d90fdc19febd1a32062", "type": "github" }, "original": { @@ -409,12 +527,53 @@ "type": "github" } }, + "purescript-overlay": { + "inputs": { + "nixpkgs": [ + "elnafo-radio", + "dream2nix", + "nixpkgs" + ], + "slimlock": "slimlock" + }, + "locked": { + "lastModified": 1696022621, + "narHash": "sha256-eMjFmsj2G1E0Q5XiibUNgFjTiSz0GxIeSSzzVdoN730=", + "owner": "thomashoneyman", + "repo": "purescript-overlay", + "rev": "047c7933abd6da8aa239904422e22d190ce55ead", + "type": "github" + }, + "original": { + "owner": "thomashoneyman", + "repo": "purescript-overlay", + "type": "github" + } + }, + "pyproject-nix": { + "flake": false, + "locked": { + "lastModified": 1702448246, + "narHash": "sha256-hFg5s/hoJFv7tDpiGvEvXP0UfFvFEDgTdyHIjDVHu1I=", + "owner": "davhau", + "repo": "pyproject.nix", + "rev": "5a06a2697b228c04dd2f35659b4b659ca74f7aeb", + "type": "github" + }, + "original": { + "owner": "davhau", + "ref": "dream2nix", + "repo": "pyproject.nix", + "type": "github" + } + }, "root": { "inputs": { "ags": "ags", "catppuccin": "catppuccin", "crane": "crane", - "fenix": "fenix", + "elnafo-radio": "elnafo-radio", + "fenix": "fenix_2", "home-manager": "home-manager", "nixos-mailserver": "nixos-mailserver", "nixpkgs": "nixpkgs", @@ -446,6 +605,29 @@ "type": "github" } }, + "slimlock": { + "inputs": { + "nixpkgs": [ + "elnafo-radio", + "dream2nix", + "purescript-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688610262, + "narHash": "sha256-Wg0ViDotFWGWqKIQzyYCgayeH8s4U1OZcTiWTQYdAp4=", + "owner": "thomashoneyman", + "repo": "slimlock", + "rev": "b5c6cdcaf636ebbebd0a1f32520929394493f1a6", + "type": "github" + }, + "original": { + "owner": "thomashoneyman", + "repo": "slimlock", + "type": "github" + } + }, "sops-nix": { "inputs": { "nixpkgs": [ @@ -454,11 +636,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1726524647, - "narHash": "sha256-qis6BtOOBBEAfUl7FMHqqTwRLB61OL5OFzIsOmRz2J4=", + "lastModified": 1727734513, + "narHash": "sha256-i47LQwoGCVQq4upV2YHV0OudkauHNuFsv306ualB/Sw=", "owner": "Mic92", "repo": "sops-nix", - "rev": "e2d404a7ea599a013189aa42947f66cede0645c8", + "rev": "3198a242e547939c5e659353551b0668ec150268", "type": "github" }, "original": { @@ -526,11 +708,11 @@ }, "locked": { "dir": "nix", - "lastModified": 1726842683, - "narHash": "sha256-n0k/znwnDGF3CNB2GhX9NfGg02mhxOzRTMmWr2EUxFs=", + "lastModified": 1727585736, + "narHash": "sha256-vEkcyKdFpfWbrtZlB5DCjNCmI2GudIJuHstWo3F9gL8=", "owner": "wez", "repo": "wezterm", - "rev": "abfc0b4c3aa2d6f99c76b20c4d7bdb6d0603ac80", + "rev": "a2f2c07a29f5c98f6736cde0c86b24887f9fd48a", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 7b63be7..9e736e1 100644 --- a/flake.nix +++ b/flake.nix @@ -65,6 +65,10 @@ url = "github:wez/wezterm?dir=nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + elnafo-radio = { + url = "git+https://vcs.elnafo.ru/L-Nafaryus/elnafo-radio"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = {self, ...} @ inputs: let diff --git a/nixosConfigurations/catarina/services/radio.nix b/nixosConfigurations/catarina/services/radio.nix index 84b0f39..16b3c7c 100644 --- a/nixosConfigurations/catarina/services/radio.nix +++ b/nixosConfigurations/catarina/services/radio.nix @@ -51,7 +51,7 @@ }; }; - radio-non-stop = { + radio-non-stop-pop = { autoStart = true; privateNetwork = true; hostAddress = "10.231.136.1"; @@ -84,7 +84,7 @@ port "6661" encoder "lame" max_clients "0" - website "https://radio.elnafo.ru/non-stop" + website "https://radio.elnafo.ru/non-stop-pop" always_on "yes" tags "yes" bitrate "128" @@ -103,10 +103,44 @@ }; }; + services.elnafo-radio = { + enable = true; + base = { + title = "// Elnafo Radio //"; + meta = [ + ["author" "L-Nafaryus"] + ["discord" "https://discord.gg/ZWUChw5wzm"] + ["git" "https://vcs.elnafo.ru/L-Nafaryus/elnafo-radio"] + ]; + }; + stations = [ + { + id = "synthwave"; + name = "Synthwave"; + host = "10.231.136.2"; + port = 6600; + url = "https://radio.elnafo.ru/synthwave"; + status = "Receive"; + genre = "synthwave, dark synthwave"; + } + { + id = "non-stop-pop"; + name = "Non-Stop-Pop"; + host = "10.231.136.3"; + port = 6601; + url = "https://radio.elnafo.ru/non-stop-pop"; + status = "Online"; + location = "Los Santos"; + genre = "pop, r&b, dance music"; + } + ]; + }; + services.nginx.virtualHosts."radio.elnafo.ru" = { forceSSL = true; useACMEHost = "elnafo.ru"; + locations."/".proxyPass = "http://127.0.0.1:54605"; locations."/synthwave".proxyPass = "http://10.231.136.2:6660"; - locations."/non-stop".proxyPass = "http://10.231.136.3:6661"; + locations."/non-stop-pop".proxyPass = "http://10.231.136.3:6661"; }; } diff --git a/nixosConfigurations/default.nix b/nixosConfigurations/default.nix index 8438642..ec92b84 100644 --- a/nixosConfigurations/default.nix +++ b/nixosConfigurations/default.nix @@ -22,6 +22,7 @@ catarina = lib.nixosSystem { system = "x86_64-linux"; modules = with inputs; [ + elnafo-radio.nixosModules.elnafo-radio nixos-mailserver.nixosModules.mailserver sops-nix.nixosModules.sops oscuro.nixosModules.oscuro