Merge pull request 'ClanModule: init Admin module' (#1978) from hsjobeki/clan-core:hsjobeki-main into main
This commit is contained in:
4
clanModules/admin/README.md
Normal file
4
clanModules/admin/README.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
description = "Convenient Administration for the Clan App"
|
||||||
|
categories = ["administration"]
|
||||||
|
---
|
||||||
17
clanModules/admin/default.nix
Normal file
17
clanModules/admin/default.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
{
|
||||||
|
options.clan.admin = {
|
||||||
|
allowedKeys = lib.mkOption {
|
||||||
|
default = [ ];
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
description = "The allowed public keys for ssh access to the admin user";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
imports = [
|
||||||
|
../sshd
|
||||||
|
../root-password
|
||||||
|
];
|
||||||
|
config = {
|
||||||
|
users.users.root.openssh.authorizedKeys.keys = config.clan.admin.allowedKeys;
|
||||||
|
};
|
||||||
|
}
|
||||||
1
clanModules/admin/roles/default.nix
Normal file
1
clanModules/admin/roles/default.nix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{ }
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
flake.clanModules = {
|
flake.clanModules = {
|
||||||
|
admin = ./admin;
|
||||||
borgbackup = ./borgbackup;
|
borgbackup = ./borgbackup;
|
||||||
borgbackup-static = ./borgbackup-static;
|
borgbackup-static = ./borgbackup-static;
|
||||||
deltachat = ./deltachat;
|
deltachat = ./deltachat;
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ nav:
|
|||||||
- Reference:
|
- Reference:
|
||||||
- reference/index.md
|
- reference/index.md
|
||||||
- Clan Modules:
|
- Clan Modules:
|
||||||
|
- reference/clanModules/admin.md
|
||||||
- reference/clanModules/borgbackup-static.md
|
- reference/clanModules/borgbackup-static.md
|
||||||
- reference/clanModules/borgbackup.md
|
- reference/clanModules/borgbackup.md
|
||||||
- reference/clanModules/deltachat.md
|
- reference/clanModules/deltachat.md
|
||||||
|
|||||||
@@ -30,6 +30,45 @@ class Meta:
|
|||||||
icon: None | str = field(default = None)
|
icon: None | str = field(default = None)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class AdminConfig:
|
||||||
|
allowedKeys: list[str] = field(default_factory = list)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ServiceAdminMachine:
|
||||||
|
config: AdminConfig = field(default_factory = AdminConfig)
|
||||||
|
imports: list[str] = field(default_factory = list)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ServiceMeta:
|
||||||
|
name: str
|
||||||
|
description: None | str = field(default = None)
|
||||||
|
icon: None | str = field(default = None)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ServiceAdminRoleDefault:
|
||||||
|
config: AdminConfig = field(default_factory = AdminConfig)
|
||||||
|
imports: list[str] = field(default_factory = list)
|
||||||
|
machines: list[str] = field(default_factory = list)
|
||||||
|
tags: list[str] = field(default_factory = list)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ServiceAdminRole:
|
||||||
|
default: ServiceAdminRoleDefault
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ServiceAdmin:
|
||||||
|
meta: ServiceMeta
|
||||||
|
roles: ServiceAdminRole
|
||||||
|
config: AdminConfig = field(default_factory = AdminConfig)
|
||||||
|
machines: dict[str, ServiceAdminMachine] = field(default_factory = dict)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class BorgbackupConfigDestination:
|
class BorgbackupConfigDestination:
|
||||||
name: str
|
name: str
|
||||||
@@ -48,13 +87,6 @@ class ServiceBorgbackupMachine:
|
|||||||
imports: list[str] = field(default_factory = list)
|
imports: list[str] = field(default_factory = list)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class ServiceMeta:
|
|
||||||
name: str
|
|
||||||
description: None | str = field(default = None)
|
|
||||||
icon: None | str = field(default = None)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ServiceBorgbackupRoleClient:
|
class ServiceBorgbackupRoleClient:
|
||||||
config: BorgbackupConfig = field(default_factory = BorgbackupConfig)
|
config: BorgbackupConfig = field(default_factory = BorgbackupConfig)
|
||||||
@@ -151,6 +183,7 @@ class ServiceSingleDisk:
|
|||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Service:
|
class Service:
|
||||||
|
admin: dict[str, ServiceAdmin] = field(default_factory = dict)
|
||||||
borgbackup: dict[str, ServiceBorgbackup] = field(default_factory = dict)
|
borgbackup: dict[str, ServiceBorgbackup] = field(default_factory = dict)
|
||||||
packages: dict[str, ServicePackage] = field(default_factory = dict)
|
packages: dict[str, ServicePackage] = field(default_factory = dict)
|
||||||
single_disk: dict[str, ServiceSingleDisk] = field(default_factory = dict, metadata = {"alias": "single-disk"})
|
single_disk: dict[str, ServiceSingleDisk] = field(default_factory = dict, metadata = {"alias": "single-disk"})
|
||||||
|
|||||||
Reference in New Issue
Block a user