From 1795ddbbe908360d051289e450eb2cf054b44dfc Mon Sep 17 00:00:00 2001 From: stuebinm Date: Thu, 12 Oct 2023 01:02:42 +0200 Subject: playing around with radicle.xyz this packages the heartwood cli tools, the radicle web interface, and runs a small example deployment on chaski. TODO: decide if i want to keep this thing, then add declarative config of the web interface, `rad auth`, and the radicle node to a NixOS module; the current state is kinda suboptimal to deploy. --- chaski/services/radicle.nix | 68 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 chaski/services/radicle.nix (limited to 'chaski/services') diff --git a/chaski/services/radicle.nix b/chaski/services/radicle.nix new file mode 100644 index 0000000..f02a934 --- /dev/null +++ b/chaski/services/radicle.nix @@ -0,0 +1,68 @@ +{ config, lib, pkgs, ... }: + +{ + services.nginx.virtualHosts."node.radicle.stuebinm.eu" = { + enableACME = true; + forceSSL = true; + locations."/".proxyPass = "http://localhost:4444"; + }; + + services.nginx.virtualHosts."radicle.stuebinm.eu" = { + enableACME = true; + forceSSL = true; + locations."/nodes".tryFiles = "/index.html =404"; + root = pkgs.radicle-interface.override { + config = { + nodes = { + defaultHttpdPort = 443; + defaultLocalHttpdPort = 8080; + defaultHttpdScheme = "https"; + defaultNodePort = 8776; + pinned = [ { + baseUrl = { + hostname = "node.radicle.stuebinm.eu"; + port = 443; + scheme = "https"; + }; + } ]; + }; + reactions = ["👍" "👎" "😄" "🎉" "🙁" "🚀" "👀"]; + projects.pinned = [ { + name = "radicle-interface"; + id = "rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5"; + baseUrl = { + hostname = "seed.radicle.xyz"; + port = 443; + scheme = "https"; + }; + } ]; + }; + }; + }; + + systemd.services.radicle-httpd = { + enable = true; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "simple"; + Restart = "always"; + MemoryMax = "1G"; + User = "radicle"; + Group = "radicle"; + }; + environment.RAD_HOME = "/var/lib/radicle"; + path = [ pkgs.heartwood pkgs.gitMinimal ]; + script = '' + cd /var/lib/radicle + radicle-httpd --listen 0.0.0.0:4444; + ''; + }; + + users.users.radicle = { + group = "radicle"; + isSystemUser = true; + }; + users.groups.radicle = {}; + + environment.systemPackages = [ pkgs.heartwood ]; +} -- cgit v1.2.3