Compare commits

...

6 commits

Author SHA1 Message Date
4809eb83a4
hosts: switch to flake.sh 2023-10-03 14:24:26 -04:00
0b9acde163
flake.nix: remove attic 2023-10-03 14:23:57 -04:00
fa03b49419
yuki: remove vikunja
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
2023-10-03 00:10:39 -04:00
0001fcba8f
yuki: rollback stash 2023-10-03 00:10:08 -04:00
b8783a05fe
stash: bump version
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
2023-10-02 16:32:52 -04:00
d85068b39c
atticd: commit non working storage for now
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
2023-10-02 13:37:33 -04:00
17 changed files with 52 additions and 231 deletions

View file

@ -1,68 +1,14 @@
{ {
"nodes": { "nodes": {
"attic": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1692225040,
"narHash": "sha256-jbQNvkgWGioiC6S39dZVyn6us8p/DlEvm5hQKEYkzDU=",
"owner": "zhaofengli",
"repo": "attic",
"rev": "b43d12082e34bceb26038bdad0438fd68804cfcd",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"repo": "attic",
"type": "github"
}
},
"crane": { "crane": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": "flake-compat_2",
"attic", "flake-utils": "flake-utils",
"flake-compat"
],
"flake-utils": [
"attic",
"flake-utils"
],
"nixpkgs": [
"attic",
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1677892403,
"narHash": "sha256-/Wi0L1spSWLFj+UQxN3j0mPYMoc7ZoAujpUF/juFVII=",
"owner": "ipetkov",
"repo": "crane",
"rev": "105e27adb70a9890986b6d543a67761cbc1964a2",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"crane_2": {
"inputs": {
"flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_2",
"nixpkgs": [ "nixpkgs": [
"ironbar", "ironbar",
"nixpkgs" "nixpkgs"
], ],
"rust-overlay": "rust-overlay_2" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1693439040, "lastModified": 1693439040,
@ -80,7 +26,7 @@
}, },
"deploy-rs": { "deploy-rs": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
@ -101,22 +47,6 @@
} }
}, },
"flake-compat": { "flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1668681692, "lastModified": 1668681692,
@ -132,7 +62,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_3": { "flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1673956053, "lastModified": 1673956053,
@ -167,21 +97,6 @@
} }
}, },
"flake-utils": { "flake-utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_2"
}, },
@ -199,7 +114,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_3": { "flake-utils_2": {
"inputs": { "inputs": {
"systems": "systems_3" "systems": "systems_3"
}, },
@ -288,12 +203,12 @@
}, },
"ironbar": { "ironbar": {
"inputs": { "inputs": {
"crane": "crane_2", "crane": "crane",
"naersk": "naersk", "naersk": "naersk",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"rust-overlay": "rust-overlay_3" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1695668783, "lastModified": 1695668783,
@ -437,22 +352,6 @@
} }
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": {
"lastModified": 1685004253,
"narHash": "sha256-AbVL1nN/TDicUQ5wXZ8xdLERxz/eJr7+o8lqkIOVuaE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e01645c40b92d29f3ae76344a6d654986a91a91",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": { "locked": {
"lastModified": 1694908564, "lastModified": 1694908564,
"narHash": "sha256-ducA98AuWWJu5oUElIzN24Q22WlO8bOfixGzBgzYdVc=", "narHash": "sha256-ducA98AuWWJu5oUElIzN24Q22WlO8bOfixGzBgzYdVc=",
@ -486,7 +385,6 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"attic": "attic",
"deploy-rs": "deploy-rs", "deploy-rs": "deploy-rs",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland", "hyprland": "hyprland",
@ -499,33 +397,6 @@
} }
}, },
"rust-overlay": { "rust-overlay": {
"inputs": {
"flake-utils": [
"attic",
"crane",
"flake-utils"
],
"nixpkgs": [
"attic",
"crane",
"nixpkgs"
]
},
"locked": {
"lastModified": 1675391458,
"narHash": "sha256-ukDKZw922BnK5ohL9LhwtaDAdCsJL7L6ScNEyF1lO9w=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "383a4acfd11d778d5c2efcf28376cbd845eeaedf",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
"ironbar", "ironbar",
@ -552,9 +423,9 @@
"type": "github" "type": "github"
} }
}, },
"rust-overlay_3": { "rust-overlay_2": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_2",
"nixpkgs": [ "nixpkgs": [
"ironbar", "ironbar",
"nixpkgs" "nixpkgs"
@ -579,7 +450,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-stable": "nixpkgs-stable_2" "nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1695284550, "lastModified": 1695284550,

View file

@ -25,10 +25,6 @@
url = "github:JakeStanger/ironbar"; url = "github:JakeStanger/ironbar";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
attic = {
url = "github:zhaofengli/attic";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-index-database = { nix-index-database = {
url = "github:Mic92/nix-index-database"; url = "github:Mic92/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";

View file

@ -4,7 +4,6 @@ inputs: let
hmModule = inputs.home-manager.nixosModules.home-manager; hmModule = inputs.home-manager.nixosModules.home-manager;
hyprlandModule = inputs.hyprland.homeManagerModules.default; hyprlandModule = inputs.hyprland.homeManagerModules.default;
ironbarModule = inputs.ironbar.homeManagerModules.default; ironbarModule = inputs.ironbar.homeManagerModules.default;
atticdModule = inputs.attic.nixosModules.atticd;
nix-index-Module = inputs.nix-index-database.hmModules.nix-index; nix-index-Module = inputs.nix-index-database.hmModules.nix-index;
inherit (inputs.nixpkgs.lib) nixosSystem; inherit (inputs.nixpkgs.lib) nixosSystem;
in { in {
@ -15,7 +14,6 @@ in {
./tsuki ./tsuki
sopsModule sopsModule
hmModule hmModule
atticdModule
{ {
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
@ -40,7 +38,6 @@ in {
./sakura ./sakura
sopsModule sopsModule
hmModule hmModule
atticdModule
{ {
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;

View file

@ -1,9 +1,11 @@
{config, ...}: { {config, ...}: {
sops.secrets.attic-secret = {}; sops.secrets.attic-secret = {};
sops.secrets.s3-keyid = {};
sops.secrets.s3-secret-key = {};
services.atticd = { services.atticd = {
enable = true; enable = true;
credentialsFile = "/etc/attic/atticd.env"; credentialsFile = config.sops.secrets.attic-secret.path;
settings = { settings = {
listen = "[::]:8100"; listen = "[::]:8100";
allowed-hosts = ["cache.notohh.dev"]; allowed-hosts = ["cache.notohh.dev"];
@ -19,6 +21,12 @@
max-size = 256 * 1024; # 256 KiB max-size = 256 * 1024; # 256 KiB
}; };
storage = {
type = "s3";
region = "us-east-005";
bucket = "notoh-binary-cache";
endpoint = "https://s3.us-east-005.backblazeb2.com";
};
garbage-collection = { garbage-collection = {
interval = "12 hours"; interval = "12 hours";
default-retention-period = "2 weeks"; default-retention-period = "2 weeks";

View file

@ -5,7 +5,7 @@
settings = { settings = {
global = { global = {
address = "0.0.0.0"; address = "0.0.0.0";
server_name = "matrix.notohh.dev"; server_name = "matrix.flake.sh";
allow_registration = true; allow_registration = true;
allow_federation = false; allow_federation = false;
allow_encryption = true; allow_encryption = true;

View file

@ -10,7 +10,6 @@
./dashdot.nix ./dashdot.nix
./grafana.nix ./grafana.nix
./vaultwarden.nix ./vaultwarden.nix
./atticd.nix
./conduit.nix ./conduit.nix
./cloudflareddns.nix ./cloudflareddns.nix
]; ];

View file

@ -19,7 +19,7 @@
server = { server = {
HTTP_PORT = 3200; HTTP_PORT = 3200;
DOMAIN = "git.notohh.dev"; DOMAIN = "git.notohh.dev";
ROOT_URL = "https://git.notohh.dev"; ROOT_URL = "https://git.flake.sh";
LANDING_PAGE = "/explore/repos"; LANDING_PAGE = "/explore/repos";
}; };
database = { database = {

View file

@ -3,8 +3,8 @@ _: {
enable = true; enable = true;
settings = { settings = {
server = { server = {
root_url = "https://metrics.notohh.dev"; root_url = "https://metrics.flake.sh";
domain = "metrics.notohh.dev"; domain = "metrics.flake.sh";
enforce_domain = true; enforce_domain = true;
http_addr = "0.0.0.0"; http_addr = "0.0.0.0";
http_port = 3100; http_port = 3100;

View file

@ -3,8 +3,8 @@ _: {
enable = true; enable = true;
settings = { settings = {
port = 3300; port = 3300;
domain = "scratch.notohh.dev"; domain = "scratch.flake.sh";
allowOrigin = ["scratch.notohh.dev"]; allowOrigin = ["scratch.flake.sh"];
allowAnonymous = true; allowAnonymous = true;
allowFreeURL = true; allowFreeURL = true;
allowEmailRegister = false; allowEmailRegister = false;

View file

@ -46,59 +46,52 @@
middlewares = "authelia"; middlewares = "authelia";
}; };
foundryvtt = { foundryvtt = {
rule = "Host(`foundry.notohh.dev`)"; rule = "Host(`foundry.flake.sh`)";
entrypoints = ["websecure"]; entrypoints = ["websecure"];
service = "foundryvtt"; service = "foundryvtt";
tls.domains = [{main = "*.notohh.dev";}]; tls.domains = [{main = "*.flake.sh";}];
tls.certresolver = "production"; tls.certresolver = "production";
}; };
gitea = { forgejo = {
rule = "Host(`git.notohh.dev`)"; rule = "Host(`git.flake.sh`)";
entrypoints = ["websecure"]; entrypoints = ["websecure"];
service = "gitea"; service = "forgejo";
tls.domains = [{main = "*.notohh.dev";}]; tls.domains = [{main = "*.flake.sh";}];
tls.certresolver = "production"; tls.certresolver = "production";
}; };
rustypaste = { rustypaste = {
rule = "Host(`img.notohh.dev`)"; rule = "Host(`i.flake.sh`)";
entrypoints = ["websecure"]; entrypoints = ["websecure"];
service = "rustypaste"; service = "rustypaste";
tls.domains = [{main = "*.notohh.dev";}]; tls.domains = [{main = "*.flake.sh";}];
tls.certresolver = "production"; tls.certresolver = "production";
}; };
grafana = { grafana = {
rule = "Host(`metrics.notohh.dev`)"; rule = "Host(`metrics.flake.sh`)";
entrypoints = ["websecure"]; entrypoints = ["websecure"];
service = "grafana"; service = "grafana";
tls.domains = [{main = "*.notohh.dev";}]; tls.domains = [{main = "*.flake.sh";}];
tls.certresolver = "production"; tls.certresolver = "production";
}; };
woodpecker-server = { woodpecker-server = {
rule = "Host(`ci.notohh.dev`)"; rule = "Host(`ci.flake.sh`)";
entrypoints = ["websecure"]; entrypoints = ["websecure"];
service = "woodpecker-server"; service = "woodpecker-server";
tls.domains = [{main = "*.notohh.dev";}]; tls.domains = [{main = "*.flake.sh";}];
tls.certresolver = "production";
};
atticd = {
rule = "Host(`cache.notohh.dev`)";
entrypoints = ["websecure"];
service = "atticd";
tls.domains = [{main = "*.notohh.dev";}];
tls.certresolver = "production"; tls.certresolver = "production";
}; };
hedgedoc = { hedgedoc = {
rule = "Host(`scratch.notohh.dev`)"; rule = "Host(`scratch.flake.sh`)";
entrypoints = ["websecure"]; entrypoints = ["websecure"];
service = "hedgedoc"; service = "hedgedoc";
tls.domains = [{main = "*.notohh.dev";}]; tls.domains = [{main = "*.flake.sh";}];
tls.certresolver = "production"; tls.certresolver = "production";
}; };
vaultwarden = { vaultwarden = {
rule = "Host(`vault.notohh.dev`)"; rule = "Host(`vault.flake.sh`)";
entrypoints = ["websecure"]; entrypoints = ["websecure"];
service = "vaultwarden"; service = "vaultwarden";
tls.domains = [{main = "*.notohh.dev";}]; tls.domains = [{main = "*.flake.sh";}];
tls.certresolver = "production"; tls.certresolver = "production";
}; };
}; };
@ -107,11 +100,10 @@
dashdot.loadBalancer.servers = [{url = "http://localhost:4000";}]; dashdot.loadBalancer.servers = [{url = "http://localhost:4000";}];
hugo.loadBalancer.servers = [{url = "http://localhost:1313";}]; hugo.loadBalancer.servers = [{url = "http://localhost:1313";}];
foundryvtt.loadBalancer.servers = [{url = "http://localhost:30000";}]; foundryvtt.loadBalancer.servers = [{url = "http://localhost:30000";}];
gitea.loadBalancer.servers = [{url = "http://localhost:3200";}]; forgejo.loadBalancer.servers = [{url = "http://localhost:3200";}];
rustypaste.loadBalancer.servers = [{url = "http://localhost:8000";}]; rustypaste.loadBalancer.servers = [{url = "http://localhost:8000";}];
grafana.loadBalancer.servers = [{url = "http://localhost:3100";}]; grafana.loadBalancer.servers = [{url = "http://localhost:3100";}];
woodpecker-server.loadBalancer.servers = [{url = "http://localhost:8200";}]; woodpecker-server.loadBalancer.servers = [{url = "http://localhost:8200";}];
atticd.loadBalancer.servers = [{url = "http://localhost:8100";}];
hedgedoc.loadBalancer.servers = [{url = "http://localhost:3300";}]; hedgedoc.loadBalancer.servers = [{url = "http://localhost:3300";}];
vaultwarden.loadBalancer.servers = [{url = "http://localhost:8222";}]; vaultwarden.loadBalancer.servers = [{url = "http://localhost:8222";}];
}; };

View file

@ -4,7 +4,7 @@
package = pkgs.vaultwarden-postgresql; package = pkgs.vaultwarden-postgresql;
dbBackend = "postgresql"; dbBackend = "postgresql";
config = { config = {
DOMAIN = "https://vault.notohh.dev/"; DOMAIN = "https://vault.flake.sh/";
SIGNUPS_ALLOWED = false; SIGNUPS_ALLOWED = false;
DATABASE_URL = "postgresql://vaultwarden:vaultwarden@192.168.1.211:5432/vaultwarden"; DATABASE_URL = "postgresql://vaultwarden:vaultwarden@192.168.1.211:5432/vaultwarden";
LOG_LEVEL = "Info"; LOG_LEVEL = "Info";

View file

@ -6,10 +6,10 @@
environment = { environment = {
WOODPECKER_SERVER_ADDR = ":8200"; WOODPECKER_SERVER_ADDR = ":8200";
WOODPECKER_GRPC_ADDR = ":8300"; WOODPECKER_GRPC_ADDR = ":8300";
WOODPECKER_HOST = "https://ci.notohh.dev"; WOODPECKER_HOST = "https://ci.flake.sh";
WOODPECKER_OPEN = "false"; WOODPECKER_OPEN = "false";
WOODPECKER_GITEA = "true"; WOODPECKER_GITEA = "true";
WOODPECKER_GITEA_URL = "https://git.notohh.dev"; WOODPECKER_GITEA_URL = "https://git.flake.sh";
WOODPECKER_ADMIN = "notohh"; WOODPECKER_ADMIN = "notohh";
WOODPECKER_AGENT_SECRET = config.sops.secrets.woodpecker-agent-secret.path; WOODPECKER_AGENT_SECRET = config.sops.secrets.woodpecker-agent-secret.path;
WOODPECKER_LOG_LEVEL = "debug"; WOODPECKER_LOG_LEVEL = "debug";

View file

@ -26,38 +26,30 @@
service = "api@internal"; service = "api@internal";
}; };
uptime-kuma = { uptime-kuma = {
rule = "Host(`status.notohh.dev`)"; rule = "Host(`status.flake.sh`)";
entrypoints = ["websecure"]; entrypoints = ["websecure"];
service = "uptime-kuma"; service = "uptime-kuma";
tls.domains = [{main = "*.notohh.dev";}]; tls.domains = [{main = "*.flake.sh";}];
tls.certresolver = "production"; tls.certresolver = "production";
}; };
gotify = { gotify = {
rule = "Host(`gotify.notohh.dev`)"; rule = "Host(`gotify.flake.sh`)";
entrypoints = ["websecure"]; entrypoints = ["websecure"];
service = "gotify"; service = "gotify";
tls.domains = [{main = "*.notohh.dev";}]; tls.domains = [{main = "*.flake.sh";}];
tls.certresolver = "production";
};
neko = {
rule = "Host(`neko.notohh.dev`)";
entrypoints = ["websecure"];
service = "neko";
tls.domains = [{main = "neko.notohh.dev";}];
tls.certresolver = "production"; tls.certresolver = "production";
}; };
conduit = { conduit = {
rule = "Host(`matrix.notohh.dev`)"; rule = "Host(`matrix.flake.sh`)";
entrypoints = ["websecure"]; entrypoints = ["websecure"];
service = "conduit"; service = "conduit";
tls.domains = [{main = "matrix.notohh.dev";}]; tls.domains = [{main = "*.flake.sh";}];
tls.certresolver = "production"; tls.certresolver = "production";
}; };
}; };
services = { services = {
uptime-kuma.loadBalancer.servers = [{url = "http://100.87.54.48:4000";}]; uptime-kuma.loadBalancer.servers = [{url = "http://100.87.54.48:4000";}];
gotify.loadBalancer.servers = [{url = "http://100.87.54.48:3000";}]; gotify.loadBalancer.servers = [{url = "http://100.87.54.48:3000";}];
neko.loadBalancer.servers = [{url = "http://100.110.140.130:8080";}];
conduit.loadBalancer.servers = [{url = "http://100.121.201.47:6167";}]; conduit.loadBalancer.servers = [{url = "http://100.121.201.47:6167";}];
}; };
}; };

View file

@ -94,7 +94,6 @@
qemu_kvm qemu_kvm
pinentry-gtk2 pinentry-gtk2
jdk17 jdk17
attic-client
comma comma
inputs.matugen.packages.x86_64-linux.default inputs.matugen.packages.x86_64-linux.default
]; ];

View file

@ -8,6 +8,5 @@
./dashdot.nix ./dashdot.nix
./jellyfin.nix ./jellyfin.nix
./neko.nix ./neko.nix
./vikunja.nix
]; ];
} }

View file

@ -40,11 +40,6 @@ _: {
entrypoints = ["web"]; entrypoints = ["web"];
service = "jellyseerr"; service = "jellyseerr";
}; };
vikunja-frontend = {
rule = "Host(`vikunja.home.arpa`)";
entrypoints = ["web"];
service = "vikunja-frontend";
};
}; };
services = { services = {
stash.loadBalancer.servers = [{url = "http://localhost:9999";}]; stash.loadBalancer.servers = [{url = "http://localhost:9999";}];
@ -53,7 +48,6 @@ _: {
searxng.loadBalancer.servers = [{url = "http://localhost:8100";}]; searxng.loadBalancer.servers = [{url = "http://localhost:8100";}];
jellyfin.loadBalancer.servers = [{url = "http://localhost:8096";}]; jellyfin.loadBalancer.servers = [{url = "http://localhost:8096";}];
jellyseerr.loadBalancer.servers = [{url = "http://localhost:5055";}]; jellyseerr.loadBalancer.servers = [{url = "http://localhost:5055";}];
vikunja-frontend.loadBalancer.servers = [{url = "http://localhost:6789";}];
}; };
}; };
}; };

View file

@ -1,26 +0,0 @@
{pkgs, ...}: {
networking.firewall.allowedTCPPorts = [3456 6789];
virtualisation.oci-containers.containers.vikunja = {
image = "vikunja/api";
environment = {
VIKUNJA_SERVICE_FRONTENDURL = "vikunja.home.arpa";
};
ports = [
"3456:3456"
];
volumes = [
"/home/notoh/docker/vikunja/files:/app/vikunja/files"
];
};
virtualisation.oci-containers.containers.vikunja-frontend = {
image = "vikunja/frontend";
ports = [
"6789:80"
];
environment = {
VIKUNJA_API_URL = "http://192.168.1.36:3456/api/v1";
};
};
}