all repos

dotfiles @ f09a3c7c0fdbbda341a9ef4c88c6bbb9d4d33cae

i use rach linux btw
3 files changed, 98 insertions(+), 54 deletions(-)
nix: mugit as flake
Author: Oleksandr Smirnov olexsmir@gmail.com
Committed at: 2026-02-06 20:56:37 +0200
Parent: f383433
M nix/flake.lock
···
                100
                100
                         "systems": "systems_2"

              
                101
                101
                       },

              
                102
                102
                       "locked": {

              
                
                103
                +        "lastModified": 1731533236,

              
                
                104
                +        "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",

              
                
                105
                +        "owner": "numtide",

              
                
                106
                +        "repo": "flake-utils",

              
                
                107
                +        "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",

              
                
                108
                +        "type": "github"

              
                
                109
                +      },

              
                
                110
                +      "original": {

              
                
                111
                +        "owner": "numtide",

              
                
                112
                +        "repo": "flake-utils",

              
                
                113
                +        "type": "github"

              
                
                114
                +      }

              
                
                115
                +    },

              
                
                116
                +    "flake-utils_2": {

              
                
                117
                +      "inputs": {

              
                
                118
                +        "systems": "systems_3"

              
                
                119
                +      },

              
                
                120
                +      "locked": {

              
                103
                121
                         "lastModified": 1694529238,

              
                104
                122
                         "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",

              
                105
                123
                         "owner": "numtide",

              ···
                115
                133
                     },

              
                116
                134
                     "gomod2nix": {

              
                117
                135
                       "inputs": {

              
                118
                
                -        "flake-utils": "flake-utils",

              
                
                136
                +        "flake-utils": "flake-utils_2",

              
                119
                137
                         "nixpkgs": [

              
                120
                138
                           "tangled",

              
                121
                139
                           "nixpkgs"

              ···
                235
                253
                         "url": "https://github.com/lucide-icons/lucide/releases/download/0.536.0/lucide-icons-0.536.0.zip"

              
                236
                254
                       }

              
                237
                255
                     },

              
                
                256
                +    "mugit": {

              
                
                257
                +      "inputs": {

              
                
                258
                +        "flake-utils": "flake-utils",

              
                
                259
                +        "nixpkgs": [

              
                
                260
                +          "nixpkgs"

              
                
                261
                +        ]

              
                
                262
                +      },

              
                
                263
                +      "locked": {

              
                
                264
                +        "lastModified": 1770404159,

              
                
                265
                +        "narHash": "sha256-jeHLWDhT8GAgmdTLyveDwgwQM8W5VDRSQo78eCp5N/Q=",

              
                
                266
                +        "owner": "olexsmir",

              
                
                267
                +        "repo": "mugit",

              
                
                268
                +        "rev": "e6fe8220d1822f3b98bb22da5ef766ed759309d0",

              
                
                269
                +        "type": "github"

              
                
                270
                +      },

              
                
                271
                +      "original": {

              
                
                272
                +        "owner": "olexsmir",

              
                
                273
                +        "repo": "mugit",

              
                
                274
                +        "type": "github"

              
                
                275
                +      }

              
                
                276
                +    },

              
                238
                277
                     "nixpkgs": {

              
                239
                278
                       "locked": {

              
                240
                279
                         "lastModified": 1768323494,

              ···
                255
                294
                       "inputs": {

              
                256
                295
                         "agenix": "agenix",

              
                257
                296
                         "disko": "disko",

              
                
                297
                +        "mugit": "mugit",

              
                258
                298
                         "nixpkgs": "nixpkgs",

              
                259
                299
                         "tangled": "tangled"

              
                260
                300
                       }

              ···
                288
                328
                       }

              
                289
                329
                     },

              
                290
                330
                     "systems_2": {

              
                
                331
                +      "locked": {

              
                
                332
                +        "lastModified": 1681028828,

              
                
                333
                +        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",

              
                
                334
                +        "owner": "nix-systems",

              
                
                335
                +        "repo": "default",

              
                
                336
                +        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",

              
                
                337
                +        "type": "github"

              
                
                338
                +      },

              
                
                339
                +      "original": {

              
                
                340
                +        "owner": "nix-systems",

              
                
                341
                +        "repo": "default",

              
                
                342
                +        "type": "github"

              
                
                343
                +      }

              
                
                344
                +    },

              
                
                345
                +    "systems_3": {

              
                291
                346
                       "locked": {

              
                292
                347
                         "lastModified": 1681028828,

              
                293
                348
                         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",

              
M nix/flake.nix
···
                14
                14
                       url = "git+https://tangled.org/@tangled.org/core?ref=refs/tags/v1.11.0-alpha";

              
                15
                15
                       inputs.nixpkgs.follows = "nixpkgs";

              
                16
                16
                     };

              
                
                17
                +    mugit = {

              
                
                18
                +      url = "github:olexsmir/mugit";

              
                
                19
                +      inputs.nixpkgs.follows = "nixpkgs";

              
                
                20
                +    };

              
                17
                21
                   };

              
                18
                22
                 

              
                19
                23
                   outputs =

              ···
                22
                26
                       agenix,

              
                23
                27
                       disko,

              
                24
                28
                       tangled,

              
                
                29
                +      mugit,

              
                25
                30
                       ...

              
                26
                31
                     }:

              
                27
                32
                     {

              ···
                33
                38
                           disko.nixosModules.disko

              
                34
                39
                           tangled.nixosModules.knot

              
                35
                40
                           tangled.nixosModules.spindle

              
                
                41
                +          mugit.nixosModules.default

              
                36
                42
                         ];

              
                37
                43
                       };

              
                38
                44
                     };

              
M nix/modules/mugit.nix
···
                1
                
                -{ pkgs, ... }:

              
                2
                
                -let

              
                3
                
                -  configFile = "/var/lib/mugit/config.yaml";

              
                4
                
                -  mugitSrc = builtins.fetchGit {

              
                5
                
                -    url = "https://github.com/olexsmir/mugit.git";

              
                6
                
                -    ref = "main";

              
                7
                
                -  };

              
                8
                
                -  buildScript = pkgs.writeShellScript "build-mugit" ''

              
                9
                
                -    set -e

              
                10
                
                -

              
                11
                
                -    BUILD_DIR="/tmp/mugit-build-$$"

              
                12
                
                -

              
                13
                
                -    export GOCACHE="$BUILD_DIR/.cache"

              
                14
                
                -    export GOPATH="$BUILD_DIR/.go"

              
                15
                
                -    export HOME="$BUILD_DIR"

              
                16
                
                -

              
                17
                
                -    mkdir -p "$BUILD_DIR"

              
                18
                
                -

              
                19
                
                -    cp -r ${mugitSrc}/* "$BUILD_DIR/"

              
                20
                
                -    chmod -R u+w "$BUILD_DIR"

              
                21
                
                -

              
                22
                
                -    cd "$BUILD_DIR"

              
                23
                
                -    ${pkgs.go}/bin/go build -o /var/lib/mugit/mugit .

              
                24
                
                -    chmod -R u+w "$BUILD_DIR" 2>/dev/null || true

              
                25
                
                -    rm -rf "$BUILD_DIR"

              
                26
                
                -  '';

              
                27
                
                -in

              
                
                1
                +{ ... }:

              
                28
                2
                 {

              
                29
                3
                   services.caddy.virtualHosts."git.olexsmir.xyz".extraConfig = ''

              
                30
                4
                     reverse_proxy localhost:8008

              
                31
                5
                   '';

              
                32
                6
                 

              
                33
                
                -  systemd.tmpfiles.rules = [ "d /var/lib/mugit 0755 git git -" ];

              
                34
                
                -

              
                35
                
                -  systemd.services.mugit = {

              
                36
                
                -    wantedBy = [ "multi-user.target" ];

              
                37
                
                -    after = [ "network-online.target" ];

              
                38
                
                -    wants = [ "network-online.target" ];

              
                39
                
                -    path = [

              
                40
                
                -      pkgs.git

              
                41
                
                -      pkgs.go

              
                42
                
                -      pkgs.gcc

              
                43
                
                -    ];

              
                44
                
                -    serviceConfig = {

              
                45
                
                -      Type = "simple";

              
                46
                
                -      User = "git";

              
                47
                
                -      WorkingDirectory = "/var/lib/mugit";

              
                48
                
                -      Restart = "on-failure";

              
                49
                
                -      RestartSec = 2;

              
                50
                
                -      ExecStartPre = "${buildScript}";

              
                51
                
                -      ExecStart = "/var/lib/mugit/mugit --config ${configFile} serve";

              
                52
                
                -      ReadOnlyPaths = [ configFile ];

              
                53
                
                -      NoNewPrivileges = true;

              
                54
                
                -      ReadWritePaths = [ "/var/lib/mugit" ];

              
                55
                
                -      AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];

              
                56
                
                -      CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];

              
                57
                
                -      TimeoutStartSec = "5min";

              
                58
                
                -      ProtectHome = true;

              
                
                7
                +  services.mugit = {

              
                
                8
                +    enable = true;

              
                
                9
                +    openFirewall = true;

              
                
                10
                +    config = {

              
                
                11
                +      server.port = 8008;

              
                
                12
                +      meta = {

              
                
                13
                +        description = "hey kid, come get your free software";

              
                
                14
                +        title = "git.olexsmir.xyz";

              
                
                15
                +        host = "git.olexsmir.xyz";

              
                
                16
                +      };

              
                
                17
                +      ssh = {

              
                
                18
                +        enable = true;

              
                
                19
                +        port = 22;

              
                
                20
                +        host_key = "/var/lib/mugit/mugit-key";

              
                
                21
                +        keys = [

              
                
                22
                +          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPLLJdkVYKZgsayw+sHanKPKZbI0RMS2CakqBCEi5Trz"

              
                
                23
                +          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMPQ0Qz0DFB+rGrD8ScUqbUTZ1/O8FHrOBF5bIAGQgMj"

              
                
                24
                +        ];

              
                
                25
                +      };

              
                
                26
                +      repo = {

              
                
                27
                +        dir = "/var/lib/mugit/";

              
                
                28
                +        readmes = [

              
                
                29
                +          "README.md"

              
                
                30
                +          "readme"

              
                
                31
                +          "readme.txt"

              
                
                32
                +        ];

              
                
                33
                +        masters = [

              
                
                34
                +          "master"

              
                
                35
                +          "main"

              
                
                36
                +        ];

              
                
                37
                +      };

              
                
                38
                +      mirror = {

              
                
                39
                +        enable = true;

              
                
                40
                +        interval = "8h";

              
                
                41
                +      };

              
                59
                42
                     };

              
                60
                43
                   };

              
                61
                44
                 }