massicot/miniflux: added with kanidm provision
This commit is contained in:
parent
0743f74527
commit
9ffc2ad23d
4 changed files with 55 additions and 22 deletions
24
flake.lock
24
flake.lock
|
@ -143,11 +143,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722476581,
|
"lastModified": 1722562293,
|
||||||
"narHash": "sha256-dCNcvjaOTu+cPin3VUym9pglsghWYJe5oUpKTuAgiiU=",
|
"narHash": "sha256-JLhM5xSbx5Isjyfz8+WhCfJ9hgEJ4VYRivTOANYZVWM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-vscode-extensions",
|
"repo": "nix-vscode-extensions",
|
||||||
"rev": "1fe57eaf074d28246ec310486fe3db4ae44d0451",
|
"rev": "2056dac5adce82433b1dae711868b1c22e5ed07e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -174,11 +174,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722489601,
|
"lastModified": 1722578639,
|
||||||
"narHash": "sha256-sB37J92AwEcmzg0GgxdI1TU6M+psUpbo0iYLFJBmsfo=",
|
"narHash": "sha256-yge4OI8r8JBFtoajezauguXwYJ7M+Enwb3ZGbJF4YKA=",
|
||||||
"owner": "xinyangli",
|
"owner": "xinyangli",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "eee3d54e62749dfd0f263e3903ca0ec1ebdbe72b",
|
"rev": "4c71f761584bd9f9a4c4ba090c353c7f3e65c430",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -190,11 +190,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722221733,
|
"lastModified": 1722372011,
|
||||||
"narHash": "sha256-sga9SrrPb+pQJxG1ttJfMPheZvDOxApFfwXCFO0H9xw=",
|
"narHash": "sha256-B2xRiC3NEJy/82ugtareBkRqEkPGpMyjaLxaR8LBxNs=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "12bf09802d77264e441f48e25459c10c93eada2e",
|
"rev": "cf05eeada35e122770c5c14add958790fcfcbef5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -222,11 +222,11 @@
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722485061,
|
"lastModified": 1722577920,
|
||||||
"narHash": "sha256-opkrX6noshjk2V3PKBiksA8+M6K7cu3EuiuAWL04pNs=",
|
"narHash": "sha256-+Nilyq9pr3f13pNqE3UaJ/zxB69fQ8MmkA5xu6oYtIs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "3bf06551d5922d420607091f5a3321e712ece307",
|
"rev": "a3f8a8853ee2e17c2efd5a33a5c91c1d79bc9c49",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
./networking.nix
|
./networking.nix
|
||||||
./services.nix
|
./services.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
sops = {
|
sops = {
|
||||||
defaultSopsFile = ./secrets.yaml;
|
defaultSopsFile = ./secrets.yaml;
|
||||||
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
||||||
|
@ -28,6 +28,9 @@
|
||||||
grafana_oauth_secret = {
|
grafana_oauth_secret = {
|
||||||
owner = "grafana";
|
owner = "grafana";
|
||||||
};
|
};
|
||||||
|
miniflux_oauth_secret = {
|
||||||
|
owner = "miniflux";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -42,7 +45,7 @@
|
||||||
fileSystems."/mnt/storage" = {
|
fileSystems."/mnt/storage" = {
|
||||||
device = "//u380335-sub1.your-storagebox.de/u380335-sub1";
|
device = "//u380335-sub1.your-storagebox.de/u380335-sub1";
|
||||||
fsType = "cifs";
|
fsType = "cifs";
|
||||||
options = ["credentials=${config.sops.secrets.storage_box_mount.path}"];
|
options = [ "credentials=${config.sops.secrets.storage_box_mount.path}" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
@ -51,7 +54,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
system.stateVersion = "22.11";
|
system.stateVersion = "22.11";
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "massicot";
|
hostName = "massicot";
|
||||||
};
|
};
|
||||||
|
@ -67,9 +70,9 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
security.sudo = {
|
security.sudo = {
|
||||||
execWheelOnly = true;
|
execWheelOnly = true;
|
||||||
wheelNeedsPassword = false;
|
wheelNeedsPassword = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -83,6 +86,6 @@
|
||||||
};
|
};
|
||||||
services.fail2ban.enable = true;
|
services.fail2ban.enable = true;
|
||||||
programs.mosh.enable = true;
|
programs.mosh.enable = true;
|
||||||
|
|
||||||
systemd.services.sshd.wantedBy = pkgs.lib.mkForce [ "multi-user.target" ];
|
systemd.services.sshd.wantedBy = pkgs.lib.mkForce [ "multi-user.target" ];
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,13 +32,16 @@
|
||||||
grafana-users = {
|
grafana-users = {
|
||||||
members = [ "xin" ];
|
members = [ "xin" ];
|
||||||
};
|
};
|
||||||
|
miniflux-users = {
|
||||||
|
members = [ "xin" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
persons = {
|
persons = {
|
||||||
xin = {
|
xin = {
|
||||||
displayName = "Xinyang Li";
|
displayName = "Xinyang Li";
|
||||||
mailAddresses = [ "lixinyang411@gmail.com" ];
|
mailAddresses = [ "lixinyang411@gmail.com" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
zhuo = {
|
zhuo = {
|
||||||
displayName = "Zhuo";
|
displayName = "Zhuo";
|
||||||
mailAddresses = [ "13681104320@163.com" ];
|
mailAddresses = [ "13681104320@163.com" ];
|
||||||
|
@ -92,6 +95,13 @@
|
||||||
immich-users = [ "openid" "email" "profile" ];
|
immich-users = [ "openid" "email" "profile" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
miniflux = {
|
||||||
|
displayName = "Miniflux";
|
||||||
|
originUrl = "https://rss.xinyang.life/";
|
||||||
|
scopeMaps = {
|
||||||
|
miniflux-users = [ "openid" "email" "profile" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
grafana = {
|
grafana = {
|
||||||
displayName = "Grafana";
|
displayName = "Grafana";
|
||||||
originUrl = "https://grafana.xinyang.life/";
|
originUrl = "https://grafana.xinyang.life/";
|
||||||
|
@ -110,4 +120,4 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
kanidm_listen_port = 5324;
|
kanidm_listen_port = 5324;
|
||||||
in
|
in
|
||||||
|
@ -85,6 +85,21 @@ in
|
||||||
};
|
};
|
||||||
provision = import ./kanidm-provision.nix;
|
provision = import ./kanidm-provision.nix;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.miniflux = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
LISTEN_ADDR = "127.0.0.1:58173";
|
||||||
|
OAUTH2_PROVIDER = "oidc";
|
||||||
|
OAUTH2_CLIEND_ID = "miniflux";
|
||||||
|
OAUTH2_REDIRECT_URL = "https://rss.xinyang.life/oauth2/oidc/callback";
|
||||||
|
OAUTH2_OIDC_DISCOVERY_ENDPOINT = "https://auth.xinyang.life/oauth2/openid/miniflux";
|
||||||
|
OAUTH2_USER_CREATION = 1;
|
||||||
|
CREATE_ADMIN = lib.mkForce "";
|
||||||
|
};
|
||||||
|
adminCredentialsFile = config.sops.secrets.miniflux_oauth_secret;
|
||||||
|
};
|
||||||
|
|
||||||
services.matrix-conduit = {
|
services.matrix-conduit = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = inputs.conduit.packages.${pkgs.system}.default;
|
# package = inputs.conduit.packages.${pkgs.system}.default;
|
||||||
|
@ -238,6 +253,11 @@ in
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
virtualHosts."https://rss.xinyang.life".extraConfig = ''
|
||||||
|
reverse_proxy ${config.services.miniflux.config.LISTEN_ADDR}
|
||||||
|
'';
|
||||||
|
|
||||||
virtualHosts."https://ntfy.xinyang.life".extraConfig = ''
|
virtualHosts."https://ntfy.xinyang.life".extraConfig = ''
|
||||||
reverse_proxy unix/${config.services.ntfy-sh.settings.listen-unix}
|
reverse_proxy unix/${config.services.ntfy-sh.settings.listen-unix}
|
||||||
@httpget {
|
@httpget {
|
||||||
|
|
Loading…
Reference in a new issue