This commit is contained in:
Vivian 2023-11-10 23:41:30 +01:00
parent 2713f04a9e
commit 99c5b9d802
3 changed files with 114 additions and 113 deletions

View file

@ -5,8 +5,7 @@ let
dnd-5e-latex-template = { pkgs = [ pkgs.v.dnd-5e-latex-template ]; }; dnd-5e-latex-template = { pkgs = [ pkgs.v.dnd-5e-latex-template ]; };
}; };
my-python-packages = ps: with ps; [ pandas requests numpy ]; my-python-packages = ps: with ps; [ pandas requests numpy ];
in in {
{
home.packages = with pkgs; [ home.packages = with pkgs; [
(python3.withPackages my-python-packages) (python3.withPackages my-python-packages)
btop btop
@ -44,9 +43,11 @@ in
# Enable my own hm modules # Enable my own hm modules
themes.v.catppuccin.enable = true; themes.v.catppuccin.enable = true;
programs = { programs = {
v.vscode.enable = true; v = {
v.nvim.enable = true; vscode.enable = true;
v.rust.enable = true; nvim.enable = true;
rust.enable = true;
};
riff = { riff = {
enable = true; enable = true;
@ -72,26 +73,23 @@ in
thunderbird = { thunderbird = {
enable = true; enable = true;
profiles.default = { profiles.default = { isDefault = true; };
isDefault = true;
};
}; };
}; };
# Syncthing # Syncthing
services.syncthing.enable = true; services.syncthing.enable = true;
xdg.userDirs = xdg.userDirs = let home = config.home.homeDirectory;
let home = config.home.homeDirectory; in {
in { enable = true;
enable = true; createDirectories = true;
createDirectories = true; desktop = "${home}/.desktop";
desktop = "${home}/.desktop"; documents = "${home}/cloud/Documents";
documents = "${home}/cloud/Documents"; download = "${home}/dl";
download = "${home}/dl"; music = "${home}/cloud/Music";
music = "${home}/cloud/Music"; pictures = "${home}/cloud/Pictures";
pictures = "${home}/cloud/Pictures"; publicShare = "${home}/.publicShare";
publicShare = "${home}/.publicShare"; templates = "${home}/.templates";
templates = "${home}/.templates"; videos = "${home}/cloud/Videos";
videos = "${home}/cloud/Videos"; };
};
} }

View file

@ -4,18 +4,20 @@ let cfg = config.programs.v.rust;
in { in {
options.programs.v.rust = { enable = mkEnableOption "rust"; }; options.programs.v.rust = { enable = mkEnableOption "rust"; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
home.packages = with pkgs; [ rustup ]; home = {
packages = with pkgs; [ rustup ];
home.file = { file = {
".cargo/config.toml".text = '' ".cargo/config.toml".text = ''
[registries.crates-io] [registries.crates-io]
protocol = "sparse" protocol = "sparse"
[build] [build]
rustc-wrapper = "${pkgs.sccache}/bin/sccache" rustc-wrapper = "${pkgs.sccache}/bin/sccache"
''; '';
};
sessionPath = [ "$HOME/.cargo/bin" ];
}; };
home.sessionPath = [ "$HOME/.cargo/bin" ];
}; };
} }

View file

@ -9,8 +9,7 @@ let
db_name = "dex"; db_name = "dex";
inherit (config.meta.exposes.dex) port; inherit (config.meta.exposes.dex) port;
metricsPort = 5558; metricsPort = 5558;
in in {
{
imports = [ ]; imports = [ ];
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
@ -23,91 +22,93 @@ in
networking.firewall.allowedTCPPorts = [ port metricsPort ]; networking.firewall.allowedTCPPorts = [ port metricsPort ];
services.postgresql = {
enable = true;
package = pkgs.postgresql_15;
ensureDatabases = [ db_name ];
ensureUsers = [{
name = db_user;
ensurePermissions = {
"DATABASE ${db_name}" = "ALL PRIVILEGES";
"schema public" = "ALL";
};
}];
};
vault-secrets.secrets.dex = { }; vault-secrets.secrets.dex = { };
services = {
services.dex = { postgresql = {
enable = true; enable = true;
settings = { package = pkgs.postgresql_15;
issuer = "https://dex.0x76.dev"; ensureDatabases = [ db_name ];
storage = { ensureUsers = [{
type = "postgres"; name = db_user;
config = { ensurePermissions = {
host = "/var/run/postgresql"; "DATABASE ${db_name}" = "ALL PRIVILEGES";
user = db_user; "schema public" = "ALL";
database = db_name;
};
};
web.http = "0.0.0.0:${toString port}";
telemetry.http = "0.0.0.0:${toString metricsPort}";
connectors = [{
type = "gitea";
id = "gitea";
name = "Gitea";
config = {
clientID = "$GITEA_CLIENT_ID";
clientSecret = "$GITEA_CLIENT_SECRET";
redirectURI = "https://dex.0x76.dev/callback";
baseURL = "https://git.0x76.dev";
}; };
}]; }];
staticClients = [
{
id = "outline";
name = "Outline";
redirectURIs = [ "https://outline.0x76.dev/auth/oidc.callback" ];
secretEnv = "OUTLINE_CLIENT_SECRET";
}
{
id = "grafana";
name = "Grafana";
redirectURIs = [ "https://grafana.0x76.dev/login/generic_oauth" ];
secretEnv = "GRAFANA_CLIENT_SECRET";
}
{
id = "hedgedoc";
name = "Hedgedoc";
redirectURIs = [ "https://md.0x76.dev/auth/oauth2/callback" ];
secretEnv = "HEDGEDOC_CLIENT_SECRET";
}
{
id = "flux";
name = "Weave Gitops Flux Dashboard";
redirectURIs = [ "https://flux.0x76.dev/oauth2/callback" ];
secretEnv = "FLUX_CLIENT_SECRET";
}
{
id = "oauth2-proxy";
name = "OAuth2 Proxy";
redirectURIs = [ "https://o2p.0x76.dev/oauth2/callback" ];
secretEnv = "O2P_CLIENT_SECRET";
}
];
}; };
environmentFile = "${vs.dex}/environment"; dex = {
}; enable = true;
settings = {
issuer = "https://dex.0x76.dev";
storage = {
type = "postgres";
config = {
host = "/var/run/postgresql";
user = db_user;
database = db_name;
};
};
web.http = "0.0.0.0:${toString port}";
telemetry.http = "0.0.0.0:${toString metricsPort}";
services.oauth2_proxy = { connectors = [{
enable = true; type = "gitea";
provider = "oidc"; id = "gitea";
redirectURL = "https://o2p.0x76.dev/oauth2/callback"; name = "Gitea";
cookie.secure = false; config = {
httpAddress = "0.0.0.0:4180"; clientID = "$GITEA_CLIENT_ID";
keyFile = ""; clientSecret = "$GITEA_CLIENT_SECRET";
redirectURI = "https://dex.0x76.dev/callback";
baseURL = "https://git.0x76.dev";
};
}];
staticClients = [
{
id = "outline";
name = "Outline";
redirectURIs = [ "https://outline.0x76.dev/auth/oidc.callback" ];
secretEnv = "OUTLINE_CLIENT_SECRET";
}
{
id = "grafana";
name = "Grafana";
redirectURIs = [ "https://grafana.0x76.dev/login/generic_oauth" ];
secretEnv = "GRAFANA_CLIENT_SECRET";
}
{
id = "hedgedoc";
name = "Hedgedoc";
redirectURIs = [ "https://md.0x76.dev/auth/oauth2/callback" ];
secretEnv = "HEDGEDOC_CLIENT_SECRET";
}
{
id = "flux";
name = "Weave Gitops Flux Dashboard";
redirectURIs = [ "https://flux.0x76.dev/oauth2/callback" ];
secretEnv = "FLUX_CLIENT_SECRET";
}
{
id = "oauth2-proxy";
name = "OAuth2 Proxy";
redirectURIs = [ "https://o2p.0x76.dev/oauth2/callback" ];
secretEnv = "O2P_CLIENT_SECRET";
}
];
};
environmentFile = "${vs.dex}/environment";
};
oauth2_proxy = {
enable = true;
provider = "oidc";
redirectURL = "https://o2p.0x76.dev/oauth2/callback";
cookie.secure = false;
httpAddress = "0.0.0.0:4180";
keyFile = "";
};
}; };
} }