initial
commit
c0f1ed2d7e
|
@ -0,0 +1 @@
|
||||||
|
/result
|
|
@ -0,0 +1,66 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1686476475,
|
||||||
|
"narHash": "sha256-W9yUePvCSDghn+YUXewuodyPxt+kJl/a7zdY4Q6r4MU=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "eef86b8a942913a828b9ef13722835f359deef29",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"selfprivacy-nixos-config": "selfprivacy-nixos-config"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"selfprivacy-graphql-api": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"selfprivacy-nixos-config",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1699259966,
|
||||||
|
"narHash": "sha256-NMZ1NZ/3I4d9AvegG95sSaV2Hv4A6WEfJ5UCpsFr+Zk=",
|
||||||
|
"ref": "flake",
|
||||||
|
"rev": "b6e84f2596b78da497f63179d72c903bb9b92d4e",
|
||||||
|
"revCount": 942,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"selfprivacy-nixos-config": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"selfprivacy-graphql-api": "selfprivacy-graphql-api"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1699261443,
|
||||||
|
"narHash": "sha256-mK1L4vrQshtICda1Ub+DyiHp9P/Zxtbx3H/BmKVe6y0=",
|
||||||
|
"ref": "flakes",
|
||||||
|
"rev": "b4b37f42f2e3dcea50382fdff70228e33af90db7",
|
||||||
|
"revCount": 123,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.selfprivacy.org/SelfPrivacy/selfprivacy-nixos-config.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.selfprivacy.org/SelfPrivacy/selfprivacy-nixos-config.git"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
description = "SelfPrivacy NixOS configuration local flake";
|
||||||
|
|
||||||
|
inputs.selfprivacy-nixos-config.url = "git+https://git.selfprivacy.org/SelfPrivacy/selfprivacy-nixos-config.git";
|
||||||
|
|
||||||
|
outputs = { self, selfprivacy-nixos-config }:
|
||||||
|
let
|
||||||
|
userdata = builtins.fromJSON (builtins.readFile ./userdata/userdata.json);
|
||||||
|
hardware-configuration = ./hardware-configuration.nix;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# TODO embed self revision, maybe pass self as an argument
|
||||||
|
nixosConfigurations =
|
||||||
|
selfprivacy-nixos-config.outputs.nixosConfigurations-fun {
|
||||||
|
inherit hardware-configuration userdata;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{ modulesPath, lib, ... }:
|
||||||
|
{
|
||||||
|
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
|
||||||
|
boot.loader.grub.device = "/dev/sda";
|
||||||
|
boot.initrd.kernelModules = [ "nvme" ];
|
||||||
|
fileSystems."/" = { device = "/dev/sda1"; fsType = "ext4"; };
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
}
|
|
@ -0,0 +1,190 @@
|
||||||
|
{
|
||||||
|
"$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"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"tokens": [
|
||||||
|
{
|
||||||
|
"token": "UKyDoDP3ynlZ9pYBydckZi7RFFk0SV768ZpQ2ZpQ5eMOb1zBYTKjrhfB6nvY70Ca",
|
||||||
|
"name": "primary_token",
|
||||||
|
"date": "2023-06-06 16:51:19.527893"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
{
|
||||||
|
"$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"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
{
|
||||||
|
"api": {
|
||||||
|
"token": "UKyDoDP3ynlZ9pYBydckZi7RFFk0SV768ZpQ2ZpQ5eMOb1zBYTKjrhfB6nvY70Ca",
|
||||||
|
"skippedMigrations": [
|
||||||
|
"migrate_to_selfprivacy_channel",
|
||||||
|
"mount_volume"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"backup": {
|
||||||
|
"provider": "BACKBLAZE",
|
||||||
|
"accountId": "",
|
||||||
|
"accountKey": "",
|
||||||
|
"bucket": ""
|
||||||
|
},
|
||||||
|
"bitwarden": {
|
||||||
|
"enable": true,
|
||||||
|
"location": "sdb"
|
||||||
|
},
|
||||||
|
"dns": {
|
||||||
|
"provider": "CLOUDFLARE",
|
||||||
|
"apiKey": "xJD80-k8QyWw7_yWBQXjSGLWeLhedan0mHqJNzMB",
|
||||||
|
"useStagingACME": false
|
||||||
|
},
|
||||||
|
"server": {
|
||||||
|
"provider": "HETZNER"
|
||||||
|
},
|
||||||
|
"databasePassword": "e5LTh9xt2UtaY0BXGzNpqFbnTfs1PS0W6eDnLgnE",
|
||||||
|
"domain": "meow-corp.xyz",
|
||||||
|
"hashedMasterPassword": "$6$WrO.K8riC8c/uuJ$9l/5aP4HY4q3g0.QBAWAnL37f7JUsA0nhBHQpyem1fLnnOijDoQbgKmC0W5Nzajdtw5IVuQT5FnLJyQPZAfrw/",
|
||||||
|
"hostname": "meow-corp",
|
||||||
|
"nextcloud": {
|
||||||
|
"enable": true,
|
||||||
|
"adminPassword": "tMzoy1yEaBPcgVheoXUj11S5dVlC5I4TSFxr0pCHoeMvOV2YICYqFqFJne2SgbOFr6QxZTw6QGdYmCLW",
|
||||||
|
"databasePassword": "tMzoy1yEaBPcgVheoXUj11S5dVlC5I4TSFxr0pCHoeMvOV2YICYqFqFJne2SgbOFr6QxZTw6QGdYmCLW",
|
||||||
|
"location": "sdb"
|
||||||
|
},
|
||||||
|
"gitea": {
|
||||||
|
"enable": true,
|
||||||
|
"location": "sdb"
|
||||||
|
},
|
||||||
|
"jitsi": {
|
||||||
|
"enable": true
|
||||||
|
},
|
||||||
|
"ocserv": {
|
||||||
|
"enable": false
|
||||||
|
},
|
||||||
|
"pleroma": {
|
||||||
|
"enable": false,
|
||||||
|
"location": "sdb"
|
||||||
|
},
|
||||||
|
"timezone": "Europe/Uzhgorod",
|
||||||
|
"resticPassword": "tMzoy1yEaBPcgVheoXUj11S5dVlC5I4TSFxr0pCHoeMvOV2YICYqFqFJne2SgbOFr6QxZTw6QGdYmCLW",
|
||||||
|
"username": "admin",
|
||||||
|
"volumes": [
|
||||||
|
{
|
||||||
|
"device": "/dev/sdb",
|
||||||
|
"mountPoint": "/volumes/sdb",
|
||||||
|
"fsType": "ext4"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"useBinds": true,
|
||||||
|
"ssh": {
|
||||||
|
"rootKeys": [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMBb3yVhYF4slhf1iQCiGLOVcbGKP/MmkQiEMl2un+4K alex@240g7"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sshKeys": [],
|
||||||
|
"users": []
|
||||||
|
}
|
Loading…
Reference in New Issue