noisebridge-wiki/flake.nix
Jet 8cfede9f57
Some checks failed
CI / check (push) Has been cancelled
CI / deploy (push) Has been cancelled
feat: init
2026-03-17 04:07:44 -07:00

110 lines
3.2 KiB
Nix

{
description = "Noisebridge Wiki Standalone NixOS Infrastructure";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
};
deploy-rs = {
url = "github:serokell/deploy-rs";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, agenix, deploy-rs, ... }:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in
{
overlays.default = import ./overlays/caddy.nix;
nixosConfigurations.wiki = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = { inherit agenix; };
modules = [
{ nixpkgs.overlays = [ self.overlays.default ]; }
agenix.nixosModules.default
./hosts/wiki
./modules/common.nix
./modules/tailscale.nix
./modules/security.nix
./modules/users.nix
./modules/tor.nix
./modules/mediawiki-base.nix
./modules/wiki-primary/mediawiki.nix
./modules/wiki-primary/mysql.nix
./modules/wiki-primary/caddy.nix
./modules/wiki-primary/prometheus.nix
./modules/wiki-primary/alerting.nix
./modules/wiki-primary/grafana.nix
./modules/wiki-primary/backup.nix
./modules/wiki-primary/postfix.nix
];
};
nixosConfigurations.wiki-replica = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = { inherit agenix; };
modules = [
{ nixpkgs.overlays = [ self.overlays.default ]; }
agenix.nixosModules.default
./hosts/wiki-replica
./modules/common.nix
./modules/tailscale.nix
./modules/security.nix
./modules/users.nix
./modules/tor.nix
./modules/mediawiki-base.nix
./modules/wiki-replica/mediawiki.nix
./modules/wiki-replica/mysql.nix
./modules/wiki-replica/caddy.nix
];
};
deploy.nodes = {
wiki = {
hostname = "wiki"; # Tailscale hostname
profiles.system = {
user = "root";
sshUser = "root";
path = deploy-rs.lib.${system}.activate.nixos
self.nixosConfigurations.wiki;
};
};
wiki-replica = {
hostname = "wiki-replica"; # Tailscale hostname
profiles.system = {
user = "root";
sshUser = "root";
path = deploy-rs.lib.${system}.activate.nixos
self.nixosConfigurations.wiki-replica;
};
};
};
checks = builtins.mapAttrs
(system: deployLib: deployLib.deployChecks self.deploy)
deploy-rs.lib;
apps.${system}.deploy = {
type = "app";
program = "${deploy-rs.packages.${system}.default}/bin/deploy";
};
devShells.${system}.default = pkgs.mkShell {
packages = with pkgs; [
deploy-rs.packages.${system}.default
agenix.packages.${system}.default
mariadb.client
rclone
curl
jq
hey
mydumper
];
};
};
}