summaryrefslogtreecommitdiff
path: root/chaski
diff options
context:
space:
mode:
Diffstat (limited to 'chaski')
-rw-r--r--chaski/services/radicle.nix68
1 files changed, 68 insertions, 0 deletions
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 ];
+}