diff --git a/flake.lock b/flake.lock index eb48470..215aaa0 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,60 @@ { "nodes": { + "blobs": { + "flake": false, + "locked": { + "lastModified": 1604995301, + "narHash": "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=", + "owner": "simple-nixos-mailserver", + "repo": "blobs", + "rev": "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265", + "type": "gitlab" + }, + "original": { + "owner": "simple-nixos-mailserver", + "repo": "blobs", + "type": "gitlab" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1668681692, + "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "009399224d5e398d03b22badca40a37ac85412a1", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "mailserver": { + "inputs": { + "blobs": "blobs", + "flake-compat": "flake-compat", + "nixpkgs": "nixpkgs_2", + "nixpkgs-22_11": "nixpkgs-22_11", + "nixpkgs-23_05": "nixpkgs-23_05", + "utils": "utils" + }, + "locked": { + "lastModified": 1695910380, + "narHash": "sha256-CyzeiXQGm8ceEOSK1dffBCfO7JNp8XhQeNkUiJ5HxgY=", + "owner": "simple-nixos-mailserver", + "repo": "nixos-mailserver", + "rev": "84783b661ecf33927c534b6476beb74ea3308968", + "type": "gitlab" + }, + "original": { + "owner": "simple-nixos-mailserver", + "repo": "nixos-mailserver", + "type": "gitlab" + } + }, "nixpkgs": { "locked": { "lastModified": 1686476475, @@ -15,9 +70,55 @@ "type": "github" } }, + "nixpkgs-22_11": { + "locked": { + "lastModified": 1669558522, + "narHash": "sha256-yqxn+wOiPqe6cxzOo4leeJOp1bXE/fjPEi/3F/bBHv8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ce5fe99df1f15a09a91a86be9738d68fadfbad82", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-22.11", + "type": "indirect" + } + }, + "nixpkgs-23_05": { + "locked": { + "lastModified": 1684782344, + "narHash": "sha256-SHN8hPYYSX0thDrMLMWPWYulK3YFgASOrCsIL3AJ78g=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8966c43feba2c701ed624302b6a935f97bcbdf88", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-23.05", + "type": "indirect" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1670751203, + "narHash": "sha256-XdoH1v3shKDGlrwjgrNX/EN8s3c+kQV7xY6cLCE8vcI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "64e0bf055f9d25928c31fb12924e59ff8ce71e60", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, "root": { "inputs": { - "selfprivacy-nixos-config": "selfprivacy-nixos-config" + "selfprivacy-nixos-config": "selfprivacy-nixos-config", + "sp-modules": "sp-modules" } }, "selfprivacy-graphql-api": { @@ -47,18 +148,48 @@ "selfprivacy-graphql-api": "selfprivacy-graphql-api" }, "locked": { - "lastModified": 1699261443, - "narHash": "sha256-mK1L4vrQshtICda1Ub+DyiHp9P/Zxtbx3H/BmKVe6y0=", + "lastModified": 1699585538, + "narHash": "sha256-cXvJ3TqpNY+uxs1npza1+dMT4TFWG11y7AVUczWzgck=", "ref": "flakes", - "rev": "b4b37f42f2e3dcea50382fdff70228e33af90db7", - "revCount": 123, + "rev": "6c849e262838257afb20f258c3a66b0fc94e17b0", + "revCount": 125, "type": "git", - "url": "https://git.selfprivacy.org/SelfPrivacy/selfprivacy-nixos-config.git" + "url": "file:///data/selfprivacy/selfprivacy-nixos-config" }, "original": { "type": "git", "url": "https://git.selfprivacy.org/SelfPrivacy/selfprivacy-nixos-config.git" } + }, + "sp-modules": { + "inputs": { + "mailserver": "mailserver" + }, + "locked": { + "lastModified": 1, + "narHash": "sha256-1F21hNl40rklsXxDcFZXUGvY5aVLUqtc6QTsAZnHDsQ=", + "path": "./sp-modules", + "type": "path" + }, + "original": { + "path": "./sp-modules", + "type": "path" + } + }, + "utils": { + "locked": { + "lastModified": 1605370193, + "narHash": "sha256-YyMTf3URDL/otKdKgtoMChu4vfVL3vCMkRqpGifhUn0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5021eac20303a61fafe17224c087f5519baed54d", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index a2b37b1..f9a6aaa 100644 --- a/flake.nix +++ b/flake.nix @@ -1,14 +1,15 @@ { description = "SelfPrivacy NixOS configuration local flake"; - inputs.selfprivacy-nixos-config.url = "git+https://git.selfprivacy.org/SelfPrivacy/selfprivacy-nixos-config.git"; + inputs.selfprivacy-nixos-config.url = git+https://git.selfprivacy.org/SelfPrivacy/selfprivacy-nixos-config.git; + inputs.sp-modules.url = path:./sp-modules; - outputs = { self, selfprivacy-nixos-config }: { - # TODO embed self revision, maybe pass self as an argument + outputs = { self, selfprivacy-nixos-config, sp-modules }: { nixosConfigurations = selfprivacy-nixos-config.outputs.nixosConfigurations-fun { - userdata = builtins.fromJSON (builtins.readFile ./userdata/userdata.json); hardware-configuration = ./hardware-configuration.nix; + userdata = builtins.fromJSON (builtins.readFile ./userdata.json); + top-level-flake = self; }; }; } diff --git a/sp-modules/flake.nix b/sp-modules/flake.nix new file mode 100644 index 0000000..16d7b5a --- /dev/null +++ b/sp-modules/flake.nix @@ -0,0 +1,7 @@ +{ + description = "SelfPrivacy NixOS PoC modules/extensions/bundles/packages/etc"; + + inputs.mailserver.url = gitlab:simple-nixos-mailserver/nixos-mailserver; + + outputs = inputs: inputs; +} diff --git a/userdata/userdata.json b/userdata.json similarity index 100% rename from userdata/userdata.json rename to userdata.json diff --git a/userdata/schema.json b/userdata/schema.json deleted file mode 100644 index 778f5e0..0000000 --- a/userdata/schema.json +++ /dev/null @@ -1,190 +0,0 @@ -{ - "$schema": "http://json-schema.org/schema#", - "$id": "https://git.selfprivacy.org/inex/selfprivacy-nixos-config/raw/branch/master/userdata/schema.json", - "type": "object", - "properties": { - "autoUpgrade": { - "type": "object", - "properties": { - "enable": { - "type": "boolean" - }, - "allowReboot": { - "type": "boolean" - } - } - }, - "hostname": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "username": { - "type": "string" - }, - "hashedMasterPassword": { - "type": "string" - }, - "sshKeys": { - "type": "array", - "items": { - "type": "string" - } - }, - "timezone": { - "type": "string" - }, - "api": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "enableSwagger": { - "type": "boolean" - }, - "skippedMigrations": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "backblaze": { - "type": "object", - "properties": { - "bucket": { - "type": "string" - }, - "accountId": { - "type": "string" - }, - "accountKey": { - "type": "string" - } - }, - "required": ["bucket", "accountId", "accountKey"] - }, - "cloudflare": { - "type": "object", - "properties": { - "apiKey": { - "type": "string" - } - }, - "required": ["apiKey"] - }, - "databasePassword": { - "type": "string" - }, - "bitwarden": { - "type": "object", - "properties": { - "enable": { - "type": "boolean" - } - } - }, - "gitea": { - "type": "object", - "properties": { - "enable": { - "type": "boolean" - } - } - }, - "nextcloud": { - "type": "object", - "properties": { - "enable": { - "type": "boolean" - }, - "databasePassword": { - "type": "string" - }, - "adminPassword": { - "type": "string" - } - }, - "required": ["databasePassword", "adminPassword"] - }, - "pleroma": { - "type": "object", - "properties": { - "enable": { - "type": "boolean" - } - } - }, - "jitsi": { - "type": "object", - "properties": { - "enable": { - "type": "boolean" - } - } - }, - "ocserv": { - "type": "object", - "properties": { - "enable": { - "type": "boolean" - } - } - }, - "resticPassword": { - "type": "string" - }, - "ssh": { - "type": "object", - "properties": { - "enable": { - "type": "boolean" - }, - "rootKeys": { - "type": "array", - "items": { - "type": "string" - } - }, - "passwordAuthentication": { - "type": "boolean" - } - } - }, - "users": { - "type": "array", - "items": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "hashedPassword": { - "type": "string" - }, - "sshKeys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": ["username", "hashedPassword"] - } - } - }, - "required": [ - "hostname", - "domain", - "username", - "hashedMasterPassword", - "backblaze", - "cloudflare", - "databasePassword", - "nextcloud", - "resticPassword" - ] -} \ No newline at end of file diff --git a/userdata/tokens.json b/userdata/tokens.json deleted file mode 100644 index 914086b..0000000 --- a/userdata/tokens.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "tokens": [ - { - "token": "UKyDoDP3ynlZ9pYBydckZi7RFFk0SV768ZpQ2ZpQ5eMOb1zBYTKjrhfB6nvY70Ca", - "name": "primary_token", - "date": "2023-06-06 16:51:19.527893" - } - ] -} \ No newline at end of file diff --git a/userdata/tokens_schema.json b/userdata/tokens_schema.json deleted file mode 100644 index 2e85065..0000000 --- a/userdata/tokens_schema.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "$schema": "http://json-schema.org/schema#", - "$id": "https://git.selfprivacy.org/inex/selfprivacy-nixos-config/raw/branch/master/userdata/tokens_schema.json", - "type": "object", - "properties": { - "tokens": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "name": { - "type": "string" - }, - "date": { - "type": "string" - } - }, - "required": [ - "token", - "name", - "date" - ] - } - }, - "recovery_token": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "date": { - "type": "string" - }, - "expiration": { - "type": "string" - }, - "uses_left": { - "type": "integer" - } - }, - "required": [ - "token", - "date" - ] - }, - "new_device": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "date": { - "type": "string" - }, - "expiration": { - "type": "string" - } - }, - "required": [ - "token", - "date", - "expiration" - ] - } - }, - "required": [ - "tokens" - ] -} \ No newline at end of file