deadnix, cleanup
This commit is contained in:
parent
f7f371f106
commit
9034ae5060
@ -118,7 +118,6 @@
|
|||||||
"rustic-rs-0.7.0.patch"
|
"rustic-rs-0.7.0.patch"
|
||||||
"vaultwarden.patch"
|
"vaultwarden.patch"
|
||||||
"vscode-1.86.0.patch"
|
"vscode-1.86.0.patch"
|
||||||
"webhooks.patch"
|
|
||||||
];
|
];
|
||||||
sharedOverlays = [ flake-utils-plus.overlay inputs.sops-nix.overlays.default ];
|
sharedOverlays = [ flake-utils-plus.overlay inputs.sops-nix.overlays.default ];
|
||||||
channelsConfig = {
|
channelsConfig = {
|
||||||
@ -141,7 +140,6 @@
|
|||||||
modules = __attrValues self.customModules ++ [
|
modules = __attrValues self.customModules ++ [
|
||||||
(import (./machines + "/${name}"))
|
(import (./machines + "/${name}"))
|
||||||
{ device = name; mainuser = "ataraxia"; }
|
{ device = name; mainuser = "ataraxia"; }
|
||||||
inputs.vscode-server.nixosModule
|
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
];
|
];
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
@ -152,7 +150,6 @@
|
|||||||
modules = __attrValues self.customModules ++ [
|
modules = __attrValues self.customModules ++ [
|
||||||
(import (./machines/Home-Hypervisor))
|
(import (./machines/Home-Hypervisor))
|
||||||
{ device = "Home-Hypervisor"; mainuser = "ataraxia"; }
|
{ device = "Home-Hypervisor"; mainuser = "ataraxia"; }
|
||||||
inputs.vscode-server.nixosModule
|
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
];
|
];
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
zfs_arc_max = toString (6 * 1024 * 1024 * 1024);
|
zfs_arc_max = toString (6 * 1024 * 1024 * 1024);
|
||||||
in {
|
in {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
zfs_arc_max = toString (2 * 1024 * 1024 * 1024);
|
zfs_arc_max = toString (2 * 1024 * 1024 * 1024);
|
||||||
in {
|
in {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ inputs, config, lib, pkgs, ... }: {
|
{ inputs, config, pkgs, ... }: {
|
||||||
imports = with inputs.self; [
|
imports = with inputs.self; [
|
||||||
./boot.nix
|
./boot.nix
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ lib, ... }: {
|
{ ... }: {
|
||||||
autoinstall."Home-Hypervisor" = {
|
autoinstall."Home-Hypervisor" = {
|
||||||
debug = false;
|
debug = false;
|
||||||
mainuser = "ataraxia";
|
mainuser = "ataraxia";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ modulesPath, inputs, lib, pkgs, config, options, ... }:
|
{ inputs, lib, pkgs, config, ... }:
|
||||||
let persistRoot = config.autoinstall.persist.persistRoot or "/persist";
|
let persistRoot = config.autoinstall.persist.persistRoot or "/persist";
|
||||||
in {
|
in {
|
||||||
imports = with inputs.self; [
|
imports = with inputs.self; [
|
||||||
@ -40,12 +40,11 @@ in {
|
|||||||
customProfiles.yandex-db
|
customProfiles.yandex-db
|
||||||
|
|
||||||
(import customProfiles.blocky {
|
(import customProfiles.blocky {
|
||||||
inherit config pkgs;
|
|
||||||
inherit (import ./dns-mapping.nix) dnsmasq-list;
|
inherit (import ./dns-mapping.nix) dnsmasq-list;
|
||||||
})
|
})
|
||||||
|
|
||||||
(import customProfiles.headscale {
|
(import customProfiles.headscale {
|
||||||
inherit config pkgs lib inputs;
|
inherit config lib inputs;
|
||||||
inherit (import ./dns-mapping.nix) headscale-list;
|
inherit (import ./dns-mapping.nix) headscale-list;
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, ... }: {
|
{ ... }: {
|
||||||
boot.initrd = rec {
|
boot.initrd = rec {
|
||||||
luks.devices = {
|
luks.devices = {
|
||||||
"crypt-nas" = {
|
"crypt-nas" = {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, inputs, ... }:
|
{ config, lib, inputs, ... }:
|
||||||
let
|
let
|
||||||
bridge = (import ../hardware/networks.nix).interfaces.main';
|
bridge = (import ../hardware/networks.nix).interfaces.main';
|
||||||
external-ip = "83.138.55.118";
|
external-ip = "83.138.55.118";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, ... }:
|
||||||
let
|
let
|
||||||
bridgeName = (import ../hardware/networks.nix).interfaces.main'.bridgeName;
|
bridgeName = (import ../hardware/networks.nix).interfaces.main'.bridgeName;
|
||||||
tailscalePort = config.services.tailscale.port;
|
tailscalePort = config.services.tailscale.port;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ pkgs, ... }:
|
||||||
let
|
let
|
||||||
inherit (import ../hardware/networks.nix) interfaces;
|
inherit (import ../hardware/networks.nix) interfaces;
|
||||||
bridgeName = interfaces.main'.bridgeName;
|
bridgeName = interfaces.main'.bridgeName;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
inherit (import ../hardware/networks.nix) interfaces wireguardPort wireguardPeers;
|
inherit (import ../hardware/networks.nix) interfaces wireguardPort wireguardPeers;
|
||||||
wireguardIFName = interfaces.wireguard0.ifname;
|
wireguardIFName = interfaces.wireguard0.ifname;
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
{ pkgs, config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
with config.deviceSpecific;
|
with config.deviceSpecific;
|
||||||
{
|
{
|
||||||
options = with lib;
|
options = with lib;
|
||||||
with types; {
|
with types; {
|
||||||
defaultApplications = mkOption {
|
defaultApplications = mkOption {
|
||||||
type = attrsOf (submodule ({ name, ... }: {
|
type = attrsOf (submodule ({ ... }: {
|
||||||
options = {
|
options = {
|
||||||
cmd = mkOption { type = path; };
|
cmd = mkOption { type = path; };
|
||||||
desktop = mkOption { type = str; };
|
desktop = mkOption { type = str; };
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
with lib;
|
with lib;
|
||||||
with types; {
|
with types; {
|
||||||
options = {
|
options = {
|
||||||
|
@ -5,7 +5,7 @@ with lib;
|
|||||||
description = mdDoc ''
|
description = mdDoc ''
|
||||||
Request headscale auth key.
|
Request headscale auth key.
|
||||||
'';
|
'';
|
||||||
type = types.attrsOf (types.submodule ({ cfg, name, ... }: {
|
type = types.attrsOf (types.submodule ({ ... }: {
|
||||||
options = {
|
options = {
|
||||||
autoStart = mkOption {
|
autoStart = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
@ -44,7 +44,7 @@ let
|
|||||||
default = "virtiofs";
|
default = "virtiofs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
guestsOptions = { name, ... }: {
|
guestsOptions = { ... }: {
|
||||||
options = rec {
|
options = rec {
|
||||||
xmlFile = mkOption {
|
xmlFile = mkOption {
|
||||||
type = with types; nullOr path;
|
type = with types; nullOr path;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, inputs, ... }:
|
{ config, lib, inputs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.persist;
|
cfg = config.persist;
|
||||||
|
|
||||||
@ -23,110 +23,22 @@ let
|
|||||||
in {
|
in {
|
||||||
options = let
|
options = let
|
||||||
inherit (lib) mkOption mkEnableOption;
|
inherit (lib) mkOption mkEnableOption;
|
||||||
inherit (lib.types) listOf path str either submodule enum;
|
inherit (lib.types) listOf path str;
|
||||||
|
|
||||||
# defaultPerms = {
|
|
||||||
# mode = "0755";
|
|
||||||
# user = "root";
|
|
||||||
# group = "root";
|
|
||||||
# };
|
|
||||||
# dirPermsOpts = { user, group, mode }: {
|
|
||||||
# user = mkOption {
|
|
||||||
# type = str;
|
|
||||||
# default = user;
|
|
||||||
# };
|
|
||||||
# group = mkOption {
|
|
||||||
# type = str;
|
|
||||||
# default = group;
|
|
||||||
# };
|
|
||||||
# mode = mkOption {
|
|
||||||
# type = str;
|
|
||||||
# default = mode;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# fileOpts = perms: {
|
|
||||||
# options = {
|
|
||||||
# file = mkOption {
|
|
||||||
# type = str;
|
|
||||||
# };
|
|
||||||
# parentDirectory = dirPermsOpts perms;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# dirOpts = perms: {
|
|
||||||
# options = {
|
|
||||||
# directory = mkOption {
|
|
||||||
# type = str;
|
|
||||||
# };
|
|
||||||
# } // (dirPermsOpts perms);
|
|
||||||
# };
|
|
||||||
# userDefaultPerms = {
|
|
||||||
# inherit (defaultPerms) mode;
|
|
||||||
# user = config.mainuser;
|
|
||||||
# group = config.users.${userDefaultPerms.user}.group;
|
|
||||||
# };
|
|
||||||
# rootFile = submodule [
|
|
||||||
# (fileOpts defaultPerms)
|
|
||||||
# ];
|
|
||||||
# rootDir = submodule [
|
|
||||||
# (dirOpts defaultPerms)
|
|
||||||
# ];
|
|
||||||
# userFile = submodule [
|
|
||||||
# (fileOpts userDefaultPerms)
|
|
||||||
# ];
|
|
||||||
# userDir = submodule [
|
|
||||||
# (dirOpts userDefaultPerms)
|
|
||||||
# ];
|
|
||||||
|
|
||||||
common = {
|
common = {
|
||||||
directories = mkOption {
|
directories = mkOption {
|
||||||
# type = listOf (either str (submodule {
|
|
||||||
# options = {
|
|
||||||
# directory = mkOption {
|
|
||||||
# type = str;
|
|
||||||
# default = null;
|
|
||||||
# };
|
|
||||||
# user = mkOption {
|
|
||||||
# type = str;
|
|
||||||
# default = "root";
|
|
||||||
# };
|
|
||||||
# group = mkOption {
|
|
||||||
# type = str;
|
|
||||||
# default = "root";
|
|
||||||
# };
|
|
||||||
# mode = mkOption {
|
|
||||||
# type = str;
|
|
||||||
# default = "0755";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# }));
|
|
||||||
# type = listOf (either str rootDir);
|
|
||||||
type = listOf str;
|
type = listOf str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
};
|
};
|
||||||
files = mkOption {
|
files = mkOption {
|
||||||
# type = listOf (either str rootFile);
|
|
||||||
type = listOf str;
|
type = listOf str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
};
|
};
|
||||||
homeFiles = mkOption {
|
homeFiles = mkOption {
|
||||||
# type = listOf (either str userFile);
|
|
||||||
type = listOf str;
|
type = listOf str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
};
|
};
|
||||||
homeDirectories = mkOption {
|
homeDirectories = mkOption {
|
||||||
# type = listOf (either str (submodule {
|
|
||||||
# options = {
|
|
||||||
# directory = mkOption {
|
|
||||||
# type = str;
|
|
||||||
# default = null;
|
|
||||||
# };
|
|
||||||
# method = mkOption {
|
|
||||||
# type = enum [ "bindfs" "symlink" ];
|
|
||||||
# default = "bindfs";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# }));
|
|
||||||
# type = listOf (either str userDir);
|
|
||||||
type = listOf str;
|
type = listOf str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
};
|
};
|
||||||
@ -186,23 +98,6 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# fileSystems."/" = lib.mkIf (config.deviceSpecific.devInfo.fileSystem != "zfs") {
|
|
||||||
# device = "none";
|
|
||||||
# options = [ "defaults" "size=2G" "mode=755" ];
|
|
||||||
# fsType = "tmpfs";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# boot.initrd = lib.mkIf (config.deviceSpecific.devInfo.fileSystem != "zfs") {
|
|
||||||
# postMountCommands =
|
|
||||||
# assert config.fileSystems
|
|
||||||
# ? ${cfg.persistRoot}
|
|
||||||
# && config.fileSystems.${cfg.persistRoot}.neededForBoot; ''
|
|
||||||
# mkdir -p /mnt-root/nix
|
|
||||||
# mount --bind /mnt-root${cfg.persistRoot}/nix /mnt-root/nix
|
|
||||||
# chmod 755 /mnt-root
|
|
||||||
# '';
|
|
||||||
# };
|
|
||||||
|
|
||||||
systemd.services.persist-cache-cleanup = lib.mkIf cfg.cache.clean.enable {
|
systemd.services.persist-cache-cleanup = lib.mkIf cfg.cache.clean.enable {
|
||||||
description = "Cleaning up cache files and directories";
|
description = "Cleaning up cache files and directories";
|
||||||
script = ''
|
script = ''
|
||||||
|
@ -5,7 +5,7 @@ with lib;
|
|||||||
description = mdDoc ''
|
description = mdDoc ''
|
||||||
Periodic backups of postgresql database to create with Rustic.
|
Periodic backups of postgresql database to create with Rustic.
|
||||||
'';
|
'';
|
||||||
type = types.attrsOf (types.submodule ({ config, name, ... }: {
|
type = types.attrsOf (types.submodule ({ name, ... }: {
|
||||||
options = {
|
options = {
|
||||||
dbName = mkOption {
|
dbName = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
@ -7,7 +7,7 @@ in {
|
|||||||
description = mdDoc ''
|
description = mdDoc ''
|
||||||
Sync buckets beetween two storages.
|
Sync buckets beetween two storages.
|
||||||
'';
|
'';
|
||||||
type = types.attrsOf (types.submodule ({ config, name, ... }: {
|
type = types.attrsOf (types.submodule ({ ... }: {
|
||||||
options = {
|
options = {
|
||||||
rcloneConfigFile = mkOption {
|
rcloneConfigFile = mkOption {
|
||||||
type = with types; nullOr path;
|
type = with types; nullOr path;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, ... }:
|
||||||
with lib;
|
with lib;
|
||||||
let cfg = config.programs.steam;
|
let cfg = config.programs.steam;
|
||||||
in {
|
in {
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ lib, ... }: {
|
||||||
with lib;
|
|
||||||
with types; {
|
|
||||||
options = {
|
options = {
|
||||||
mainuser = mkOption { type = str; };
|
mainuser = lib.mkOption { type = lib.types.str; };
|
||||||
};
|
};
|
||||||
}
|
}
|
@ -1,314 +0,0 @@
|
|||||||
diff --git a/pkgs/by-name/au/authentik/ldap.nix b/pkgs/by-name/au/authentik/ldap.nix
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..7945c3021dfd
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/pkgs/by-name/au/authentik/ldap.nix
|
|
||||||
@@ -0,0 +1,18 @@
|
|
||||||
+{ lib, buildGoModule, authentik }:
|
|
||||||
+
|
|
||||||
+buildGoModule {
|
|
||||||
+ pname = "authentik-ldap-outpost";
|
|
||||||
+ inherit (authentik) version src;
|
|
||||||
+
|
|
||||||
+ vendorHash = "sha256-8F9emmQmbe7R+xtGrjV5ht0adGasU6WAvLa8Wxr+j8M=";
|
|
||||||
+
|
|
||||||
+ CGO_ENABLED = 0;
|
|
||||||
+
|
|
||||||
+ subPackages = [ "cmd/ldap" ];
|
|
||||||
+
|
|
||||||
+ meta = authentik.meta // {
|
|
||||||
+ description = "The authentik ldap outpost. Needed for the extendal ldap API.";
|
|
||||||
+ homepage = "https://goauthentik.io/docs/providers/ldap/";
|
|
||||||
+ mainProgram = "ldap";
|
|
||||||
+ };
|
|
||||||
+}
|
|
||||||
diff --git a/pkgs/by-name/au/authentik/outposts.nix b/pkgs/by-name/au/authentik/outposts.nix
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..05649628b3e8
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/pkgs/by-name/au/authentik/outposts.nix
|
|
||||||
@@ -0,0 +1,5 @@
|
|
||||||
+{ callPackage }:
|
|
||||||
+
|
|
||||||
+{
|
|
||||||
+ ldap = callPackage ./ldap.nix { };
|
|
||||||
+}
|
|
||||||
diff --git a/pkgs/by-name/au/authentik/package.nix b/pkgs/by-name/au/authentik/package.nix
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..8fca47e7ec28
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/pkgs/by-name/au/authentik/package.nix
|
|
||||||
@@ -0,0 +1,248 @@
|
|
||||||
+{ lib
|
|
||||||
+, stdenvNoCC
|
|
||||||
+, fetchFromGitHub
|
|
||||||
+, buildNpmPackage
|
|
||||||
+, buildGoModule
|
|
||||||
+, runCommand
|
|
||||||
+, openapi-generator-cli
|
|
||||||
+, nodejs
|
|
||||||
+, python3
|
|
||||||
+, codespell
|
|
||||||
+, makeWrapper }:
|
|
||||||
+
|
|
||||||
+let
|
|
||||||
+ version = "2023.10.6";
|
|
||||||
+
|
|
||||||
+ src = fetchFromGitHub {
|
|
||||||
+ owner = "goauthentik";
|
|
||||||
+ repo = "authentik";
|
|
||||||
+ rev = "version/${version}";
|
|
||||||
+ hash = "sha256-N6FeNUlenbBQPAAUSqC+2GWFfte3G+Zfu5KGVJOqNZQ=";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ website = buildNpmPackage {
|
|
||||||
+ pname = "authentik-website";
|
|
||||||
+ inherit version src;
|
|
||||||
+ npmDepsHash = "sha256-4dgFxEvMnp+35nSQNsEchtN1qoS5X2KzEbLPvMnyR+k=";
|
|
||||||
+
|
|
||||||
+ NODE_ENV = "production";
|
|
||||||
+ NODE_OPTIONS = "--openssl-legacy-provider";
|
|
||||||
+
|
|
||||||
+ postPatch = ''
|
|
||||||
+ cd website
|
|
||||||
+ '';
|
|
||||||
+
|
|
||||||
+ installPhase = ''
|
|
||||||
+ cp -r help $out
|
|
||||||
+ '';
|
|
||||||
+
|
|
||||||
+ npmInstallFlags = [ "--include=dev" ];
|
|
||||||
+ npmBuildScript = "build-docs-only";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ clientapi = stdenvNoCC.mkDerivation {
|
|
||||||
+ pname = "authentik-client-api";
|
|
||||||
+ inherit version src;
|
|
||||||
+
|
|
||||||
+ postPatch = ''
|
|
||||||
+ rm Makefile
|
|
||||||
+
|
|
||||||
+ substituteInPlace ./scripts/api-ts-config.yaml \
|
|
||||||
+ --replace '/local' "$(pwd)/"
|
|
||||||
+ '';
|
|
||||||
+
|
|
||||||
+ nativeBuildInputs = [ openapi-generator-cli ];
|
|
||||||
+ buildPhase = ''
|
|
||||||
+ runHook preBuild
|
|
||||||
+ openapi-generator-cli generate -i ./schema.yml \
|
|
||||||
+ -g typescript-fetch -o $out \
|
|
||||||
+ -c ./scripts/api-ts-config.yaml \
|
|
||||||
+ --additional-properties=npmVersion=${nodejs.pkgs.npm.version} \
|
|
||||||
+ --git-repo-id authentik --git-user-id goauthentik
|
|
||||||
+ runHook postBuild
|
|
||||||
+ '';
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ webui = buildNpmPackage {
|
|
||||||
+ pname = "authentik-webui";
|
|
||||||
+ inherit version;
|
|
||||||
+
|
|
||||||
+ src = runCommand "authentik-webui-source" {} ''
|
|
||||||
+ mkdir -p $out/web/node_modules/@goauthentik/
|
|
||||||
+ cp -r ${src}/web $out/
|
|
||||||
+ ln -s ${src}/website $out/
|
|
||||||
+ ln -s ${clientapi} $out/web/node_modules/@goauthentik/api
|
|
||||||
+ '';
|
|
||||||
+ npmDepsHash = "sha256-5aCKlArtoEijGqeYiY3zoV0Qo7/Xt5hSXbmy2uYZpok=";
|
|
||||||
+
|
|
||||||
+ postPatch = ''
|
|
||||||
+ cd web
|
|
||||||
+ '';
|
|
||||||
+
|
|
||||||
+ installPhase = ''
|
|
||||||
+ runHook preInstall
|
|
||||||
+ mkdir $out
|
|
||||||
+ cp -r dist $out/dist
|
|
||||||
+ cp -r authentik $out/authentik
|
|
||||||
+ runHook postInstall
|
|
||||||
+ '';
|
|
||||||
+
|
|
||||||
+ NODE_ENV = "production";
|
|
||||||
+ NODE_OPTIONS = "--openssl-legacy-provider";
|
|
||||||
+
|
|
||||||
+ npmInstallFlags = [ "--include=dev" ];
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ python = python3.override {
|
|
||||||
+ self = python;
|
|
||||||
+ packageOverrides = final: prev: {
|
|
||||||
+ authentik-django = prev.buildPythonPackage {
|
|
||||||
+ pname = "authentik-django";
|
|
||||||
+ inherit version src;
|
|
||||||
+ pyproject = true;
|
|
||||||
+
|
|
||||||
+ postPatch = ''
|
|
||||||
+ substituteInPlace authentik/root/settings.py \
|
|
||||||
+ --replace 'Path(__file__).absolute().parent.parent.parent' "\"$out\""
|
|
||||||
+ substituteInPlace authentik/lib/default.yml \
|
|
||||||
+ --replace '/blueprints' "$out/blueprints"
|
|
||||||
+ sed -i '/dumb-init/d' pyproject.toml
|
|
||||||
+ sed -i '/djangorestframework-guardian/d' pyproject.toml
|
|
||||||
+ '';
|
|
||||||
+
|
|
||||||
+ nativeBuildInputs = [ prev.poetry-core ];
|
|
||||||
+ propagatedBuildInputs = with prev; [
|
|
||||||
+ argon2-cffi
|
|
||||||
+ celery
|
|
||||||
+ channels
|
|
||||||
+ channels-redis
|
|
||||||
+ colorama
|
|
||||||
+ dacite
|
|
||||||
+ daphne
|
|
||||||
+ deepmerge
|
|
||||||
+ defusedxml
|
|
||||||
+ django
|
|
||||||
+ django-filter
|
|
||||||
+ django-guardian
|
|
||||||
+ django-model-utils
|
|
||||||
+ django-prometheus
|
|
||||||
+ django-redis
|
|
||||||
+ djangorestframework
|
|
||||||
+ djangorestframework-guardian2
|
|
||||||
+ docker
|
|
||||||
+ drf-spectacular
|
|
||||||
+ duo-client
|
|
||||||
+ facebook-sdk
|
|
||||||
+ flower
|
|
||||||
+ geoip2
|
|
||||||
+ gunicorn
|
|
||||||
+ httptools
|
|
||||||
+ kubernetes
|
|
||||||
+ ldap3
|
|
||||||
+ lxml
|
|
||||||
+ opencontainers
|
|
||||||
+ packaging
|
|
||||||
+ paramiko
|
|
||||||
+ psycopg
|
|
||||||
+ pycryptodome
|
|
||||||
+ pydantic
|
|
||||||
+ pydantic-scim
|
|
||||||
+ pyjwt
|
|
||||||
+ pyyaml
|
|
||||||
+ requests-oauthlib
|
|
||||||
+ sentry-sdk
|
|
||||||
+ structlog
|
|
||||||
+ swagger-spec-validator
|
|
||||||
+ twilio
|
|
||||||
+ twisted
|
|
||||||
+ ua-parser
|
|
||||||
+ urllib3
|
|
||||||
+ uvicorn
|
|
||||||
+ uvloop
|
|
||||||
+ watchdog
|
|
||||||
+ webauthn
|
|
||||||
+ websockets
|
|
||||||
+ wsproto
|
|
||||||
+ xmlsec
|
|
||||||
+ zxcvbn
|
|
||||||
+ jsonpatch
|
|
||||||
+ ] ++ [
|
|
||||||
+ codespell
|
|
||||||
+ ];
|
|
||||||
+
|
|
||||||
+ postInstall = ''
|
|
||||||
+ mkdir -p $out/web $out/website
|
|
||||||
+ cp -r lifecycle manage.py $out/${prev.python.sitePackages}/
|
|
||||||
+ cp -r blueprints $out/
|
|
||||||
+ cp -r ${webui}/dist ${webui}/authentik $out/web/
|
|
||||||
+ cp -r ${website} $out/website/help
|
|
||||||
+ ln -s $out/${prev.python.sitePackages}/lifecycle $out/lifecycle
|
|
||||||
+ '';
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ inherit (python.pkgs) authentik-django;
|
|
||||||
+
|
|
||||||
+ proxy = buildGoModule {
|
|
||||||
+ pname = "authentik-proxy";
|
|
||||||
+ inherit version src;
|
|
||||||
+
|
|
||||||
+ postPatch = ''
|
|
||||||
+ substituteInPlace internal/gounicorn/gounicorn.go \
|
|
||||||
+ --replace './lifecycle' "${authentik-django}/lifecycle"
|
|
||||||
+ substituteInPlace web/static.go \
|
|
||||||
+ --replace './web' "${authentik-django}/web"
|
|
||||||
+ substituteInPlace internal/web/static.go \
|
|
||||||
+ --replace './web' "${authentik-django}/web"
|
|
||||||
+ '';
|
|
||||||
+
|
|
||||||
+ CGO_ENABLED = 0;
|
|
||||||
+
|
|
||||||
+ vendorHash = "sha256-8F9emmQmbe7R+xtGrjV5ht0adGasU6WAvLa8Wxr+j8M=";
|
|
||||||
+
|
|
||||||
+ postInstall = ''
|
|
||||||
+ mv $out/bin/server $out/bin/authentik
|
|
||||||
+ '';
|
|
||||||
+
|
|
||||||
+ subPackages = [ "cmd/server" ];
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+in stdenvNoCC.mkDerivation {
|
|
||||||
+ pname = "authentik";
|
|
||||||
+ inherit src version;
|
|
||||||
+
|
|
||||||
+ postPatch = ''
|
|
||||||
+ rm Makefile
|
|
||||||
+ patchShebangs lifecycle/ak
|
|
||||||
+
|
|
||||||
+ # This causes issues in systemd services
|
|
||||||
+ substituteInPlace lifecycle/ak \
|
|
||||||
+ --replace 'printf' '>&2 printf' \
|
|
||||||
+ --replace '> /dev/stderr' ""
|
|
||||||
+ '';
|
|
||||||
+
|
|
||||||
+ installPhase = ''
|
|
||||||
+ runHook preInstall
|
|
||||||
+ mkdir -p $out/bin
|
|
||||||
+ cp -r lifecycle/ak $out/bin/
|
|
||||||
+
|
|
||||||
+ wrapProgram $out/bin/ak \
|
|
||||||
+ --prefix PATH : ${lib.makeBinPath [ (python.withPackages (ps: [ps.authentik-django])) proxy ]} \
|
|
||||||
+ --set TMPDIR /dev/shm \
|
|
||||||
+ --set PYTHONDONTWRITEBYTECODE 1 \
|
|
||||||
+ --set PYTHONUNBUFFERED 1
|
|
||||||
+ runHook postInstall
|
|
||||||
+ '';
|
|
||||||
+
|
|
||||||
+ nativeBuildInputs = [ makeWrapper ];
|
|
||||||
+
|
|
||||||
+ meta = with lib; {
|
|
||||||
+ description = "The authentication glue you need";
|
|
||||||
+ changelog = "https://github.com/goauthentik/authentik/releases/tag/version%2F${version}";
|
|
||||||
+ homepage = "https://goauthentik.io/";
|
|
||||||
+ license = licenses.mit;
|
|
||||||
+ maintainers = with maintainers; [ jvanbruegge ];
|
|
||||||
+ mainProgram = "ak";
|
|
||||||
+ };
|
|
||||||
+}
|
|
||||||
diff --git a/pkgs/tools/networking/openapi-generator-cli/default.nix b/pkgs/tools/networking/openapi-generator-cli/default.nix
|
|
||||||
index 2edba9a26eb6..fed141f9c1e1 100644
|
|
||||||
--- a/pkgs/tools/networking/openapi-generator-cli/default.nix
|
|
||||||
+++ b/pkgs/tools/networking/openapi-generator-cli/default.nix
|
|
||||||
@@ -33,6 +33,7 @@ let this = stdenv.mkDerivation rec {
|
|
||||||
homepage = "https://github.com/OpenAPITools/openapi-generator";
|
|
||||||
changelog = "https://github.com/OpenAPITools/openapi-generator/releases/tag/v${version}";
|
|
||||||
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
|
||||||
+ mainProgram = "openapi-generator-cli";
|
|
||||||
license = licenses.asl20;
|
|
||||||
maintainers = with maintainers; [ shou ];
|
|
||||||
};
|
|
||||||
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
|
|
||||||
index e0ca2d741d53..20687cbb509a 100644
|
|
||||||
--- a/pkgs/top-level/all-packages.nix
|
|
||||||
+++ b/pkgs/top-level/all-packages.nix
|
|
||||||
@@ -3374,6 +3374,8 @@ with pkgs;
|
|
||||||
|
|
||||||
authelia = callPackage ../servers/authelia { };
|
|
||||||
|
|
||||||
+ authentik-outposts = recurseIntoAttrs (callPackages ../by-name/au/authentik/outposts.nix { });
|
|
||||||
+
|
|
||||||
autoflake = with python3.pkgs; toPythonApplication autoflake;
|
|
||||||
|
|
||||||
autospotting = callPackage ../applications/misc/autospotting { };
|
|
@ -1,13 +0,0 @@
|
|||||||
diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix
|
|
||||||
index 4ff941251c99..32c9d8ae046c 100644
|
|
||||||
--- a/nixos/modules/services/security/tor.nix
|
|
||||||
+++ b/nixos/modules/services/security/tor.nix
|
|
||||||
@@ -854,7 +854,7 @@ in
|
|
||||||
BridgeRelay = true;
|
|
||||||
ExtORPort.port = mkDefault "auto";
|
|
||||||
ServerTransportPlugin.transports = mkDefault ["obfs4"];
|
|
||||||
- ServerTransportPlugin.exec = mkDefault "${pkgs.obfs4}/bin/obfs4proxy managed";
|
|
||||||
+ ServerTransportPlugin.exec = mkDefault "${lib.getExe pkgs.obfs4} managed";
|
|
||||||
} // optionalAttrs (cfg.relay.role == "private-bridge") {
|
|
||||||
ExtraInfoStatistics = false;
|
|
||||||
PublishServerDescriptor = false;
|
|
@ -1,28 +0,0 @@
|
|||||||
diff --git a/nixos/modules/services/networking/webhook.nix b/nixos/modules/services/networking/webhook.nix
|
|
||||||
index 2a78491941c..9e3c816021f 100644
|
|
||||||
--- a/nixos/modules/services/networking/webhook.nix
|
|
||||||
+++ b/nixos/modules/services/networking/webhook.nix
|
|
||||||
@@ -158,6 +158,11 @@ in {
|
|
||||||
default = {};
|
|
||||||
description = mdDoc "Extra environment variables passed to webhook.";
|
|
||||||
};
|
|
||||||
+ environmentFiles = mkOption {
|
|
||||||
+ type = types.listOf types.str;
|
|
||||||
+ default = [];
|
|
||||||
+ description = mdDoc "Extra environment variables from files passed to webhook.";
|
|
||||||
+ };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -201,7 +206,11 @@ in {
|
|
||||||
++ optional cfg.enableTemplates "-template"
|
|
||||||
++ optional cfg.verbose "-verbose"
|
|
||||||
++ cfg.extraArgs;
|
|
||||||
+ envFiles = concatMapStringsSep "\n" (envFile: "source " + envFile) cfg.environmentFiles;
|
|
||||||
in ''
|
|
||||||
+ set -a
|
|
||||||
+ ${envFiles}
|
|
||||||
+ set +a
|
|
||||||
${cfg.package}/bin/webhook ${escapeShellArgs args}
|
|
||||||
'';
|
|
||||||
serviceConfig = {
|
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
defaultApplications = {
|
defaultApplications = {
|
||||||
fm = {
|
fm = {
|
||||||
cmd = "${pkgs.pcmanfm}/bin/pcmanfm";
|
cmd = "${pkgs.pcmanfm}/bin/pcmanfm";
|
||||||
@ -50,7 +50,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
defaultApplications =
|
defaultApplications =
|
||||||
with config.defaultApplications;
|
with config.defaultApplications;
|
||||||
builtins.mapAttrs (name: value:
|
builtins.mapAttrs (_name: value:
|
||||||
if value ? desktop then [ "${value.desktop}.desktop" ] else value) {
|
if value ? desktop then [ "${value.desktop}.desktop" ] else value) {
|
||||||
"text/html" = browser;
|
"text/html" = browser;
|
||||||
"inode/directory" = fm;
|
"inode/directory" = fm;
|
||||||
|
@ -1,83 +0,0 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
|
||||||
let
|
|
||||||
thm = config.lib.base16.theme;
|
|
||||||
in
|
|
||||||
with config.deviceSpecific;
|
|
||||||
{
|
|
||||||
# defaultApplications.term = lib.mkIf (isDesktop) {
|
|
||||||
# cmd = "${pkgs.alacritty}/bin/alacritty";
|
|
||||||
# desktop = "alacritty";
|
|
||||||
# };
|
|
||||||
home-manager.users.${config.mainuser} = {
|
|
||||||
programs.alacritty = {
|
|
||||||
# enable = isDesktop;
|
|
||||||
enable = false;
|
|
||||||
settings = {
|
|
||||||
font = {
|
|
||||||
normal = {
|
|
||||||
family = "${thm.fonts.mono.family}";
|
|
||||||
style = "Regular";
|
|
||||||
};
|
|
||||||
bold = {
|
|
||||||
family = "${thm.fonts.mono.family}";
|
|
||||||
style = "Bold";
|
|
||||||
};
|
|
||||||
italic = {
|
|
||||||
family = "${thm.fonts.mono.family}";
|
|
||||||
style = "Italic";
|
|
||||||
};
|
|
||||||
bold_italic = {
|
|
||||||
family = "${thm.fonts.mono.family}";
|
|
||||||
style = "Bold Italic";
|
|
||||||
};
|
|
||||||
size = thm.fontSizes.small.int;
|
|
||||||
};
|
|
||||||
|
|
||||||
window.padding = {
|
|
||||||
x = 2;
|
|
||||||
y = 2;
|
|
||||||
};
|
|
||||||
|
|
||||||
shell.program = "${pkgs.zsh}/bin/zsh";
|
|
||||||
|
|
||||||
cursor.style = "Beam";
|
|
||||||
|
|
||||||
colors = {
|
|
||||||
primary = {
|
|
||||||
background = "#${thm.base00-hex}";
|
|
||||||
foreground = "#${thm.base05-hex}";
|
|
||||||
};
|
|
||||||
cursor = {
|
|
||||||
text = "#${thm.base02-hex}";
|
|
||||||
cursor = "#${thm.base00-hex}";
|
|
||||||
};
|
|
||||||
normal = {
|
|
||||||
black = "#${thm.base00-hex}";
|
|
||||||
red = "#${thm.base08-hex}";
|
|
||||||
green = "#${thm.base0B-hex}";
|
|
||||||
yellow = "#${thm.base0A-hex}";
|
|
||||||
blue = "#${thm.base0D-hex}";
|
|
||||||
magenta = "#${thm.base0E-hex}";
|
|
||||||
cyan = "#${thm.base0C-hex}";
|
|
||||||
white = "#${thm.base05-hex}";
|
|
||||||
};
|
|
||||||
bright = {
|
|
||||||
black = "#${thm.base03-hex}";
|
|
||||||
red = "#${thm.base09-hex}";
|
|
||||||
green = "#${thm.base01-hex}";
|
|
||||||
yellow = "#${thm.base02-hex}";
|
|
||||||
blue = "#${thm.base04-hex}";
|
|
||||||
magenta = "#${thm.base06-hex}";
|
|
||||||
cyan = "#${thm.base0F-hex}";
|
|
||||||
white = "#${thm.base07-hex}";
|
|
||||||
};
|
|
||||||
draw_bold_text_with_bright_colors = "false";
|
|
||||||
};
|
|
||||||
|
|
||||||
env = {
|
|
||||||
WINIT_X11_SCALE_FACTOR = "1.0";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,14 +1,7 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
home-manager.users.${config.mainuser} = {
|
home-manager.users.${config.mainuser} = {
|
||||||
home.packages = [
|
home.packages = [ pkgs.cassowary-py ];
|
||||||
pkgs.cassowary-py
|
|
||||||
];
|
|
||||||
|
|
||||||
# xdg.configFile."casualrdh/config.json".text = toJson ''
|
|
||||||
# '';
|
|
||||||
# xdg.desktopEntries
|
|
||||||
};
|
};
|
||||||
|
|
||||||
persist.state.homeDirectories = [
|
persist.state.homeDirectories = [
|
||||||
".config/casualrdh"
|
".config/casualrdh"
|
||||||
];
|
];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
home-manager.users.${config.mainuser}.home.packages = [
|
home-manager.users.${config.mainuser}.home.packages = [
|
||||||
pkgs.element-desktop
|
pkgs.element-desktop
|
||||||
];
|
];
|
||||||
|
@ -1,67 +1,8 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
|
|
||||||
home-manager.users.${config.mainuser} = {
|
home-manager.users.${config.mainuser} = {
|
||||||
home.packages = [
|
home.packages = [ pkgs.gnome.geary ];
|
||||||
# pkgs.himalaya
|
|
||||||
pkgs.gnome.geary
|
|
||||||
];
|
|
||||||
|
|
||||||
# xdg.configFile."himalaya/config.toml".text = ''
|
|
||||||
# downloads-dir = "/home/${config.mainuser}/Downloads/mail"
|
|
||||||
# name = "Dmitriy Kholkin"
|
|
||||||
# signature = "Regards,"
|
|
||||||
# # email-reading-verify-cmd
|
|
||||||
# # email-reading-decrypt-cmd
|
|
||||||
# # email-writing-sign-cmd
|
|
||||||
# # email-writing-encrypt-cmd
|
|
||||||
# # notify-cmd
|
|
||||||
# # notify-query
|
|
||||||
# # sync
|
|
||||||
|
|
||||||
# [ataraxiadev]
|
|
||||||
# default = true
|
|
||||||
# email = "ataraxiadev@ataraxiadev.com"
|
|
||||||
|
|
||||||
# backend = "imap"
|
|
||||||
# imap-host = "mail.ataraxiadev.com"
|
|
||||||
# imap-port = 993
|
|
||||||
# imap-login = "ataraxiadev@ataraxiadev.com"
|
|
||||||
# imap-passwd-cmd = "${pkgs.pass}/bin/pass show email/ataraxiadev@ataraxiadev.com"
|
|
||||||
# imap-ssl = true
|
|
||||||
# imap-starttls = false
|
|
||||||
# imap-insecure = false
|
|
||||||
|
|
||||||
# sender = "smtp"
|
|
||||||
# smtp-host = "mail.ataraxiadev.com"
|
|
||||||
# smtp-port = 465
|
|
||||||
# smtp-login = "ataraxiadev@ataraxiadev.com"
|
|
||||||
# smtp-passwd-cmd = "${pkgs.pass}/bin/pass show email/ataraxiadev@ataraxiadev.com"
|
|
||||||
# smtp-ssl = true
|
|
||||||
# smtp-starttls = false
|
|
||||||
# smtp-insecure = false
|
|
||||||
# '';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# systemd.user.services.himalaya-notify = {
|
|
||||||
# description = "Himalaya new messages notifier";
|
|
||||||
# after = [ "network.target" ];
|
|
||||||
# wantedBy = [ "default.target" ];
|
|
||||||
|
|
||||||
# script = "himalaya notify";
|
|
||||||
# environment = {
|
|
||||||
# PASSWORD_STORE_DIR = config.secretsConfig.password-store;
|
|
||||||
# GNUPGHOME = config.secretsConfig.gnupgHome;
|
|
||||||
# };
|
|
||||||
# # script = "echo $(pass show email/ataraxiadev@ataraxiadev.com) || echo lol";
|
|
||||||
# path = with pkgs; [ himalaya libnotify pass gnupg ];
|
|
||||||
# serviceConfig = {
|
|
||||||
# Restart = lib.mkForce "no";
|
|
||||||
# # Restart = "always";
|
|
||||||
# RestartSec = 10;
|
|
||||||
# # Type = "oneshot";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
defaultApplications.mail = {
|
defaultApplications.mail = {
|
||||||
cmd = "${pkgs.gnome.geary}/bin/geary";
|
cmd = "${pkgs.gnome.geary}/bin/geary";
|
||||||
desktop = "geary";
|
desktop = "geary";
|
||||||
@ -72,7 +13,6 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
persist.state.homeDirectories = [
|
persist.state.homeDirectories = [
|
||||||
".config/himalaya"
|
|
||||||
".config/geary"
|
".config/geary"
|
||||||
".local/share/geary"
|
".local/share/geary"
|
||||||
];
|
];
|
||||||
|
@ -3,8 +3,7 @@ with lib;
|
|||||||
let
|
let
|
||||||
thm = config.lib.base16.theme;
|
thm = config.lib.base16.theme;
|
||||||
fonts = config.lib.base16.theme.fonts;
|
fonts = config.lib.base16.theme.fonts;
|
||||||
profileName = config.mainuser;
|
homeDir = config.home-manager.users.${config.mainuser}.home.homeDirectory;
|
||||||
homeDir = config.home-manager.users.${profileName}.home.homeDirectory;
|
|
||||||
mkUserJs = { prefs ? {}, extraPrefs ? "" }: ''
|
mkUserJs = { prefs ? {}, extraPrefs ? "" }: ''
|
||||||
${extraPrefs}
|
${extraPrefs}
|
||||||
|
|
||||||
@ -12,10 +11,8 @@ let
|
|||||||
user_pref("${name}", ${builtins.toJSON value});
|
user_pref("${name}", ${builtins.toJSON value});
|
||||||
'') prefs)}
|
'') prefs)}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
||||||
in {
|
in {
|
||||||
services.dbus.packages = [ pkgs.firefox-wayland ];
|
services.dbus.packages = [ pkgs.firefox ];
|
||||||
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
MOZ_USE_XINPUT2 = "1";
|
MOZ_USE_XINPUT2 = "1";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ inputs, config, lib, pkgs, ... }: {
|
{ inputs, lib, ... }: {
|
||||||
imports = [ inputs.aagl.nixosModules.default ];
|
imports = [ inputs.aagl.nixosModules.default ];
|
||||||
|
|
||||||
nix.settings = inputs.aagl.nixConfig;
|
nix.settings = inputs.aagl.nixConfig;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs, ... }: {
|
||||||
programs.steam.enable = true;
|
programs.steam.enable = true;
|
||||||
programs.steam.extraCompatPackages = [
|
programs.steam.extraCompatPackages = [
|
||||||
pkgs.proton-ge
|
pkgs.proton-ge
|
||||||
@ -6,29 +6,13 @@
|
|||||||
programs.gamescope.enable = true;
|
programs.gamescope.enable = true;
|
||||||
programs.gamescope.capSysNice = false;
|
programs.gamescope.capSysNice = false;
|
||||||
|
|
||||||
# startupApplications = [ "steam" ];
|
startupApplications = [ "${pkgs.steam}/bin/steam" ];
|
||||||
startupApplications = let
|
|
||||||
gs = pkgs.writeShellScriptBin "gamescope-steam" ''
|
|
||||||
gamescope --steam --borderless -- steam
|
|
||||||
'';
|
|
||||||
in [
|
|
||||||
# "${gs}/bin/gamescope-steam"
|
|
||||||
"${pkgs.steam}/bin/steam"
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.user.services.x11-ownership = {
|
|
||||||
script = ''
|
|
||||||
doas chown ${config.mainuser} /tmp/.X11-unix
|
|
||||||
'';
|
|
||||||
after = [ "hyprland-session.target" ];
|
|
||||||
wantedBy = [ "hyprland-session.target" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
persist.state.homeDirectories = [
|
persist.state.homeDirectories = [
|
||||||
".local/share/Steam"
|
".local/share/Steam"
|
||||||
".steam"
|
".steam"
|
||||||
] ++ [
|
] ++ [
|
||||||
# Games configs
|
# Native games config
|
||||||
".config/WarThunder"
|
".config/WarThunder"
|
||||||
".local/share/BeamNG.drive"
|
".local/share/BeamNG.drive"
|
||||||
];
|
];
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs, config, ... }: {
|
||||||
home-manager.users.${config.mainuser}.home.packages = [
|
home-manager.users.${config.mainuser}.home.packages = [
|
||||||
# pkgs.lutris
|
|
||||||
pkgs.bottles
|
pkgs.bottles
|
||||||
pkgs.osu-lazer-bin
|
pkgs.osu-lazer-bin
|
||||||
pkgs.realrtcw
|
pkgs.realrtcw
|
||||||
];
|
];
|
||||||
persist.state.homeDirectories = [
|
persist.state.homeDirectories = [
|
||||||
# ".config/lutris"
|
|
||||||
# ".local/share/lutris"
|
|
||||||
".local/share/bottles"
|
".local/share/bottles"
|
||||||
".local/share/osu"
|
".local/share/osu"
|
||||||
];
|
];
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, config, ... }:
|
||||||
let
|
let
|
||||||
thm = config.lib.base16.theme;
|
thm = config.lib.base16.theme;
|
||||||
in with config.deviceSpecific;
|
in
|
||||||
{
|
{
|
||||||
defaultApplications.term = {
|
defaultApplications.term = {
|
||||||
cmd = "${pkgs.kitty}/bin/kitty";
|
cmd = "${pkgs.kitty}/bin/kitty";
|
||||||
@ -11,8 +11,6 @@ in with config.deviceSpecific;
|
|||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font.name = "${thm.fonts.mono.family} ${thm.fontSizes.small.str}";
|
font.name = "${thm.fonts.mono.family} ${thm.fontSizes.small.str}";
|
||||||
# keybindings = ''
|
|
||||||
# '';
|
|
||||||
settings = {
|
settings = {
|
||||||
foreground = "#${thm.base05-hex}";
|
foreground = "#${thm.base05-hex}";
|
||||||
background = "#${thm.base00-hex}";
|
background = "#${thm.base00-hex}";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
home-manager.users.${config.mainuser} = {
|
home-manager.users.${config.mainuser} = {
|
||||||
programs.mpv = {
|
programs.mpv = {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
home-manager.users.${config.mainuser} = {
|
home-manager.users.${config.mainuser} = {
|
||||||
home.packages = [ pkgs.nicotine-plus ];
|
home.packages = [ pkgs.nicotine-plus ];
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
home-manager.users.${config.mainuser} = {
|
home-manager.users.${config.mainuser} = {
|
||||||
programs.nnn = {
|
programs.nnn = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, config, lib, inputs, ... }:
|
{ pkgs, config, lib, ... }:
|
||||||
with config.deviceSpecific; {
|
with config.deviceSpecific; {
|
||||||
programs.adb.enable = true;
|
programs.adb.enable = true;
|
||||||
|
|
||||||
@ -8,6 +8,8 @@ with config.deviceSpecific; {
|
|||||||
bat
|
bat
|
||||||
comma
|
comma
|
||||||
curl
|
curl
|
||||||
|
curlie
|
||||||
|
duf
|
||||||
eza
|
eza
|
||||||
fd
|
fd
|
||||||
glib.out
|
glib.out
|
||||||
@ -16,8 +18,10 @@ with config.deviceSpecific; {
|
|||||||
lm_sensors
|
lm_sensors
|
||||||
lnav
|
lnav
|
||||||
nix-prefetch-git
|
nix-prefetch-git
|
||||||
|
nix-prefetch-github
|
||||||
p7zip
|
p7zip
|
||||||
pciutils
|
pciutils
|
||||||
|
rclone
|
||||||
ripgrep
|
ripgrep
|
||||||
ripgrep-all
|
ripgrep-all
|
||||||
sd
|
sd
|
||||||
@ -26,7 +30,6 @@ with config.deviceSpecific; {
|
|||||||
unrar
|
unrar
|
||||||
unzip
|
unzip
|
||||||
usbutils
|
usbutils
|
||||||
wget
|
|
||||||
zip
|
zip
|
||||||
# --- tui ---
|
# --- tui ---
|
||||||
bottom
|
bottom
|
||||||
@ -34,47 +37,37 @@ with config.deviceSpecific; {
|
|||||||
ncdu
|
ncdu
|
||||||
procs
|
procs
|
||||||
# --- gui ---
|
# --- gui ---
|
||||||
deadbeef
|
|
||||||
feh
|
feh
|
||||||
qimgv
|
qimgv
|
||||||
xarchiver
|
xarchiver
|
||||||
zathura
|
zathura
|
||||||
xdg-utils
|
xdg-utils
|
||||||
# --- awesome-shell ---
|
|
||||||
# curlie
|
|
||||||
# duf
|
|
||||||
# zsh-z
|
|
||||||
] ++ lib.optionals (!(isVM || isISO)) [
|
] ++ lib.optionals (!(isVM || isISO)) [
|
||||||
a2ln
|
|
||||||
# audacity
|
|
||||||
cachix
|
cachix
|
||||||
ffmpeg.bin
|
ffmpeg.bin
|
||||||
monero-gui
|
monero-gui
|
||||||
nodePackages.peerflix
|
|
||||||
nix-tree
|
nix-tree
|
||||||
yt-dlp
|
yt-dlp
|
||||||
# ---- gui ----
|
# ---- gui ----
|
||||||
bitwarden
|
bitwarden
|
||||||
# foliate
|
|
||||||
jellyfin-media-player
|
|
||||||
jellyfin-mpv-shim
|
jellyfin-mpv-shim
|
||||||
joplin-desktop
|
|
||||||
# libreoffice
|
# libreoffice
|
||||||
obs-studio
|
obs-studio
|
||||||
obs-studio-plugins.obs-vkcapture
|
obs-studio-plugins.obs-vkcapture
|
||||||
obsidian
|
obsidian
|
||||||
|
onlyoffice-bin_7_5
|
||||||
pinta
|
pinta
|
||||||
qbittorrent
|
qbittorrent
|
||||||
sonixd
|
sonixd
|
||||||
tdesktop
|
tdesktop
|
||||||
tidal-dl
|
tidal-dl
|
||||||
|
tor-browser-bundle-bin
|
||||||
ungoogled-chromium
|
ungoogled-chromium
|
||||||
webcord-vencord
|
webcord-vencord
|
||||||
youtube-to-mpv
|
youtube-to-mpv
|
||||||
] ++ lib.optionals isGaming [
|
] ++ lib.optionals isGaming [
|
||||||
ceserver
|
ceserver
|
||||||
gamescope
|
gamescope
|
||||||
moonlight-qt
|
|
||||||
protonhax
|
protonhax
|
||||||
protontricks
|
protontricks
|
||||||
vkBasalt
|
vkBasalt
|
||||||
@ -86,24 +79,24 @@ with config.deviceSpecific; {
|
|||||||
persist.state.homeDirectories = [
|
persist.state.homeDirectories = [
|
||||||
".config/Bitwarden"
|
".config/Bitwarden"
|
||||||
".config/chromium"
|
".config/chromium"
|
||||||
".config/deadbeef"
|
|
||||||
".config/jellyfin-mpv-shim"
|
".config/jellyfin-mpv-shim"
|
||||||
".config/jellyfin.org"
|
|
||||||
".config/joplin-desktop"
|
|
||||||
".config/kdeconnect"
|
|
||||||
".config/libreoffice"
|
".config/libreoffice"
|
||||||
|
".config/monero-project"
|
||||||
".config/obs-studio"
|
".config/obs-studio"
|
||||||
".config/obsidian"
|
".config/obsidian"
|
||||||
".config/pcmanfm"
|
".config/pcmanfm"
|
||||||
# ".config/Pinta"
|
".config/Pinta"
|
||||||
".config/qBittorrent"
|
".config/qBittorrent"
|
||||||
# ".config/qimgv"
|
".config/qimgv"
|
||||||
|
".config/rclone"
|
||||||
".config/Sonixd"
|
".config/Sonixd"
|
||||||
# ".config/xarchiver"
|
".config/WebCord"
|
||||||
".local/share/jellyfinmediaplayer"
|
".config/xarchiver"
|
||||||
".local/share/TelegramDesktop"
|
".local/share/TelegramDesktop"
|
||||||
|
".local/share/tor-browser"
|
||||||
".android"
|
".android"
|
||||||
".anydesk"
|
".anydesk"
|
||||||
|
".bitmonero"
|
||||||
".monero"
|
".monero"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
|
||||||
home-manager.users.${config.mainuser}.home.packages = [
|
|
||||||
pkgs.rclone
|
|
||||||
];
|
|
||||||
|
|
||||||
persist.state.homeDirectories = [
|
|
||||||
".config/rclone"
|
|
||||||
];
|
|
||||||
}
|
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, config, lib, ... }:
|
{ pkgs, config, ... }:
|
||||||
let
|
let
|
||||||
thm = config.lib.base16.theme;
|
thm = config.lib.base16.theme;
|
||||||
themeFile = config.lib.base16.templateFile { name = "rofi"; };
|
themeFile = config.lib.base16.templateFile { name = "rofi"; };
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{ config, lib, pkgs, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
home-manager.users.${config.mainuser}.home.packages = with pkgs; [
|
home-manager.users.${config.mainuser}.home.packages = with pkgs; [
|
||||||
spotifywm
|
spotifywm
|
||||||
];
|
];
|
||||||
|
|
||||||
startupApplications = [
|
startupApplications = [
|
||||||
"${pkgs.spotifywm}/bin/spotify"
|
"${pkgs.spotifywm}/bin/spotify"
|
||||||
];
|
];
|
||||||
|
|
||||||
persist.state.homeDirectories = [
|
persist.state.homeDirectories = [
|
||||||
".config/spotify"
|
".config/spotify"
|
||||||
];
|
];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
boot.kernelModules = [ "uinput" ];
|
boot.kernelModules = [ "uinput" ];
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
@ -23,12 +23,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
allowedTCPPorts = [
|
allowedTCPPorts = [ 47984 47989 47990 48010 ];
|
||||||
47984 47989 47990 48010
|
allowedUDPPorts = [ 47998 47999 48000 48002 48010 ];
|
||||||
];
|
|
||||||
allowedUDPPorts = [
|
|
||||||
47998 47999 48000 48002 48010
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
persist.state.homeDirectories = [ ".config/sunshine" ];
|
persist.state.homeDirectories = [ ".config/sunshine" ];
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
|
||||||
let
|
|
||||||
tor-browser = pkgs.writeShellScriptBin "tor-browser" ''
|
|
||||||
mullvad-exclude ${pkgs.tor-browser-bundle-bin}/bin/tor-browser
|
|
||||||
'';
|
|
||||||
in {
|
|
||||||
home-manager.users.${config.mainuser}.home.packages = if config.deviceSpecific.vpn.mullvad.enable then [
|
|
||||||
tor-browser
|
|
||||||
] else [
|
|
||||||
pkgs.tor-browser-bundle-bin
|
|
||||||
];
|
|
||||||
|
|
||||||
persist.state.homeDirectories = [ ".local/share/tor-browser" ];
|
|
||||||
}
|
|
@ -177,24 +177,5 @@ in
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file.".cache/wal/colors".text = ''
|
|
||||||
#${thm.base00-hex}
|
|
||||||
#${thm.base08-hex}
|
|
||||||
#${thm.base0B-hex}
|
|
||||||
#${thm.base0A-hex}
|
|
||||||
#${thm.base0D-hex}
|
|
||||||
#${thm.base0E-hex}
|
|
||||||
#${thm.base0C-hex}
|
|
||||||
#${thm.base05-hex}
|
|
||||||
#${thm.base03-hex}
|
|
||||||
#${thm.base08-hex}
|
|
||||||
#${thm.base0B-hex}
|
|
||||||
#${thm.base0A-hex}
|
|
||||||
#${thm.base0D-hex}
|
|
||||||
#${thm.base0E-hex}
|
|
||||||
#${thm.base0C-hex}
|
|
||||||
#${thm.base07-hex}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, lib, ... }:
|
||||||
let
|
let
|
||||||
home = config.home-manager.users.${config.mainuser};
|
home = config.home-manager.users.${config.mainuser};
|
||||||
zathura-pkg = home.programs.zathura.package;
|
zathura-pkg = home.programs.zathura.package;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, lib, ... }: {
|
||||||
config = lib.mkIf (!config.deviceSpecific.isServer) {
|
config = lib.mkIf (!config.deviceSpecific.isServer) {
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
hardware.bluetooth = {
|
hardware.bluetooth = {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ modulesPath, config, pkgs, lib, ... }: {
|
{ modulesPath, config, lib, ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/profiles/hardened.nix")
|
(modulesPath + "/profiles/hardened.nix")
|
||||||
];
|
];
|
||||||
@ -91,7 +91,7 @@
|
|||||||
|
|
||||||
# dhcpcd broken with scudo or graphene malloc
|
# dhcpcd broken with scudo or graphene malloc
|
||||||
nixpkgs.overlays = lib.optionals (config.environment.memoryAllocator.provider != "libc") [
|
nixpkgs.overlays = lib.optionals (config.environment.memoryAllocator.provider != "libc") [
|
||||||
(final: prev: {
|
(_final: prev: {
|
||||||
dhcpcd = prev.dhcpcd.override { enablePrivSep = false; };
|
dhcpcd = prev.dhcpcd.override { enablePrivSep = false; };
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, config, lib, ... }:
|
{ pkgs, config, ... }:
|
||||||
with config.deviceSpecific; {
|
with config.deviceSpecific; {
|
||||||
|
|
||||||
hardware.cpu.${devInfo.cpu.vendor}.updateMicrocode = true;
|
hardware.cpu.${devInfo.cpu.vendor}.updateMicrocode = true;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
networking = {
|
networking = {
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, inputs, ... }: {
|
{ config, lib, inputs, ... }: {
|
||||||
nix = {
|
nix = {
|
||||||
nixPath = lib.mkForce [ "self=/etc/self/compat" "nixpkgs=/etc/nixpkgs" ];
|
nixPath = lib.mkForce [ "self=/etc/self/compat" "nixpkgs=/etc/nixpkgs" ];
|
||||||
|
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
From 012a913fbc861029a0f4b100cfd57d3b505a455f Mon Sep 17 00:00:00 2001
|
|
||||||
From: ForeverNooob <106961997+ForeverNooob@users.noreply.github.com>
|
|
||||||
Date: Sun, 30 Oct 2022 08:13:19 +0000
|
|
||||||
Subject: [PATCH] Add doas support to the installation script.
|
|
||||||
|
|
||||||
Previously the install errored out and told you to manually add `/nix/` and set the perms if you had `doas` installed instead of `sudo`. Well, not any more!
|
|
||||||
---
|
|
||||||
scripts/install-nix-from-closure.sh | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/scripts/install-nix-from-closure.sh b/scripts/install-nix-from-closure.sh
|
|
||||||
index d4eed2efe80..d8931e97015 100644
|
|
||||||
--- a/scripts/install-nix-from-closure.sh
|
|
||||||
+++ b/scripts/install-nix-from-closure.sh
|
|
||||||
@@ -137,7 +137,7 @@ echo "performing a single-user installation of Nix..." >&2
|
|
||||||
if ! [ -e "$dest" ]; then
|
|
||||||
cmd="mkdir -m 0755 $dest && chown $USER $dest"
|
|
||||||
echo "directory $dest does not exist; creating it by running '$cmd' using sudo" >&2
|
|
||||||
- if ! sudo sh -c "$cmd"; then
|
|
||||||
+ if ! (sudo sh -c "$cmd" || doas sh -c "$cmd") ; then
|
|
||||||
echo "$0: please manually run '$cmd' as root to create $dest" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
environment.systemPackages = [ pkgs.pass-secret-service ];
|
environment.systemPackages = [ pkgs.pass-secret-service ];
|
||||||
services.dbus.packages = [ pkgs.pass-secret-service ];
|
services.dbus.packages = [ pkgs.pass-secret-service ];
|
||||||
xdg.portal.extraPortals = [ pkgs.pass-secret-service ];
|
xdg.portal.extraPortals = [ pkgs.pass-secret-service ];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
security.apparmor.enable = true;
|
security.apparmor.enable = true;
|
||||||
programs.firejail.enable = true;
|
programs.firejail.enable = true;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, lib, ... }: {
|
||||||
# FIXME: completely remove sudo
|
# FIXME: completely remove sudo
|
||||||
security.sudo = {
|
security.sudo = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, ... }: {
|
{ ... }: {
|
||||||
security.acme = {
|
security.acme = {
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
# defaults.server = "https://acme-staging-v02.api.letsencrypt.org/directory"; # staging
|
# defaults.server = "https://acme-staging-v02.api.letsencrypt.org/directory"; # staging
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, inputs, ... }: {
|
{ config, lib, inputs, ... }: {
|
||||||
imports = [ inputs.attic.nixosModules.atticd ];
|
imports = [ inputs.attic.nixosModules.atticd ];
|
||||||
sops.secrets.atticd.sopsFile = inputs.self.secretsDir + /home-hypervisor/atticd.yaml;
|
sops.secrets.atticd.sopsFile = inputs.self.secretsDir + /home-hypervisor/atticd.yaml;
|
||||||
sops.secrets.atticd.restartUnits = [ "atticd.service" ];
|
sops.secrets.atticd.restartUnits = [ "atticd.service" ];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, ... }: {
|
{ ... }: {
|
||||||
virtualisation.oci-containers.containers.battery-historian = {
|
virtualisation.oci-containers.containers.battery-historian = {
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
ports = [ "0.0.0.0:9999:9999" ];
|
ports = [ "0.0.0.0:9999:9999" ];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, dnsmasq-list ? [], ... }:
|
{ dnsmasq-list ? [], ... }:
|
||||||
let
|
let
|
||||||
nodeAddress = "192.168.0.5";
|
nodeAddress = "192.168.0.5";
|
||||||
upstream-dns = "100.64.0.1";
|
upstream-dns = "100.64.0.1";
|
||||||
@ -17,7 +17,7 @@ in {
|
|||||||
localAddress = "${nodeAddress}/24";
|
localAddress = "${nodeAddress}/24";
|
||||||
tmpfs = [ "/" ];
|
tmpfs = [ "/" ];
|
||||||
bindMounts."/tmp/blocky-authkey".hostPath = "/tmp/blocky-authkey";
|
bindMounts."/tmp/blocky-authkey".hostPath = "/tmp/blocky-authkey";
|
||||||
config = { config, pkgs, lib, ... }:
|
config = { config, lib, ... }:
|
||||||
let
|
let
|
||||||
grafanaPort = config.services.grafana.settings.server.http_port;
|
grafanaPort = config.services.grafana.settings.server.http_port;
|
||||||
blockyPort = config.services.blocky.settings.ports.dns;
|
blockyPort = config.services.blocky.settings.ports.dns;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, ... }: {
|
||||||
services.openssh.settings.LogLevel = "VERBOSE";
|
services.openssh.settings.LogLevel = "VERBOSE";
|
||||||
|
|
||||||
services.fail2ban = {
|
services.fail2ban = {
|
||||||
|
@ -17,8 +17,6 @@ let
|
|||||||
in {
|
in {
|
||||||
sops.secrets.gitea = gitea-secret;
|
sops.secrets.gitea = gitea-secret;
|
||||||
sops.secrets.gitea-mailer = gitea-secret;
|
sops.secrets.gitea-mailer = gitea-secret;
|
||||||
# sops.secrets.gitea-secretkey = gitea-secret;
|
|
||||||
# sops.secrets.gitea-internaltoken = gitea-secret;
|
|
||||||
sops.secrets.gitea-runner-hypervisor = runner-secret [ "gitea-runner-hypervisor.service" ];
|
sops.secrets.gitea-runner-hypervisor = runner-secret [ "gitea-runner-hypervisor.service" ];
|
||||||
|
|
||||||
persist.state.directories = [
|
persist.state.directories = [
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, inputs, headscale-list ? {}, ... }:
|
{ config, lib, inputs, headscale-list ? {}, ... }:
|
||||||
let
|
let
|
||||||
domain = "wg.ataraxiadev.com";
|
domain = "wg.ataraxiadev.com";
|
||||||
in {
|
in {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, ... }: let
|
{ ... }: let
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
in {
|
in {
|
||||||
virtualisation.oci-containers.containers.inpx-web = {
|
virtualisation.oci-containers.containers.inpx-web = {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, ... }: {
|
{ ... }: {
|
||||||
virtualisation.oci-containers.containers.it-tools = {
|
virtualisation.oci-containers.containers.it-tools = {
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
image = "docker.io/corentinth/it-tools:latest";
|
image = "docker.io/corentinth/it-tools:latest";
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
{ config, lib, pkgs, inputs, ... }:
|
|
||||||
let
|
|
||||||
joplin-data = "/srv/joplin/data";
|
|
||||||
joplin-db-data = "/srv/joplin/postgres";
|
|
||||||
joplin-uid = "1001";
|
|
||||||
backend = config.virtualisation.oci-containers.backend;
|
|
||||||
pod-name = "joplin-pod";
|
|
||||||
open-ports = [ "127.0.0.1:22300:22300/tcp" ];
|
|
||||||
in {
|
|
||||||
sops.secrets.joplin-env.sopsFile = inputs.self.secretsDir + /home-hypervisor/joplin.yaml;
|
|
||||||
sops.secrets.joplin-db-env.sopsFile = inputs.self.secretsDir + /home-hypervisor/joplin.yaml;
|
|
||||||
sops.secrets.joplin-env.restartUnits = [ "${backend}-joplin.service" ];
|
|
||||||
sops.secrets.joplin-db-env.restartUnits = [ "${backend}-joplin-db.service" ];
|
|
||||||
|
|
||||||
# FIXMEL mailer
|
|
||||||
virtualisation.oci-containers.containers = {
|
|
||||||
joplin = {
|
|
||||||
autoStart = true;
|
|
||||||
dependsOn = [ "joplin-db" ];
|
|
||||||
environment = { MAX_TIME_DRIFT = "0"; };
|
|
||||||
environmentFiles = [ config.sops.secrets.joplin-env.path ];
|
|
||||||
extraOptions = [ "--pod=${pod-name}" ];
|
|
||||||
image = "docker.io/ataraxiadev/joplin-server:2.9.17";
|
|
||||||
volumes = [
|
|
||||||
"${joplin-data}:/home/joplin/data"
|
|
||||||
"/etc/localtime:/etc/localtime:ro"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
joplin-db = {
|
|
||||||
autoStart = true;
|
|
||||||
environmentFiles = [ config.sops.secrets.joplin-db-env.path ];
|
|
||||||
extraOptions = [ "--pod=${pod-name}" ];
|
|
||||||
image = "docker.io/postgres:13";
|
|
||||||
volumes = [ "${joplin-db-data}:/var/lib/postgresql/data" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
|
||||||
"d ${joplin-data} 0755 ${joplin-uid} ${joplin-uid} -"
|
|
||||||
"d ${joplin-db-data} 0700 dhcpcd dhcpcd -"
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.services."podman-create-${pod-name}" = let
|
|
||||||
portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports;
|
|
||||||
start = pkgs.writeShellScript "create-pod-${pod-name}" ''
|
|
||||||
podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping}
|
|
||||||
'';
|
|
||||||
stop = "podman pod rm -i -f ${pod-name}";
|
|
||||||
in rec {
|
|
||||||
path = [ pkgs.coreutils config.virtualisation.podman.package ];
|
|
||||||
before = [ "${backend}-joplin.service" "${backend}-joplin-db.service" ];
|
|
||||||
requiredBy = before;
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
RemainAfterExit = "yes";
|
|
||||||
ExecStart = start;
|
|
||||||
ExecStop = stop;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,6 +1,5 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let
|
let
|
||||||
backend = config.virtualisation.oci-containers.backend;
|
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
caddyconf = pkgs.writeText "Caddyfile" ''
|
caddyconf = pkgs.writeText "Caddyfile" ''
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ ... }:
|
||||||
let
|
let
|
||||||
backend = config.virtualisation.oci-containers.backend;
|
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
in {
|
in {
|
||||||
virtualisation.oci-containers.containers.jackett = {
|
virtualisation.oci-containers.containers.jackett = {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, ... }:
|
||||||
let
|
let
|
||||||
backend = config.virtualisation.oci-containers.backend;
|
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
renderGid = toString config.users.groups.render.gid;
|
renderGid = toString config.users.groups.render.gid;
|
||||||
videoGid = toString config.users.groups.video.gid;
|
videoGid = toString config.users.groups.video.gid;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ ... }:
|
||||||
let
|
let
|
||||||
backend = config.virtualisation.oci-containers.backend;
|
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
in {
|
in {
|
||||||
virtualisation.oci-containers.containers.lidarr = {
|
virtualisation.oci-containers.containers.lidarr = {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ ... }:
|
||||||
let
|
let
|
||||||
backend = config.virtualisation.oci-containers.backend;
|
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
in {
|
in {
|
||||||
virtualisation.oci-containers.containers.medusa = {
|
virtualisation.oci-containers.containers.medusa = {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ ... }:
|
||||||
let
|
let
|
||||||
backend = config.virtualisation.oci-containers.backend;
|
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
in {
|
in {
|
||||||
virtualisation.oci-containers.containers.qbittorrent = {
|
virtualisation.oci-containers.containers.qbittorrent = {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ ... }:
|
||||||
let
|
let
|
||||||
backend = config.virtualisation.oci-containers.backend;
|
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
in {
|
in {
|
||||||
virtualisation.oci-containers.containers.radarr = {
|
virtualisation.oci-containers.containers.radarr = {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ ... }:
|
||||||
let
|
let
|
||||||
backend = config.virtualisation.oci-containers.backend;
|
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
in {
|
in {
|
||||||
virtualisation.oci-containers.containers.recyclarr = {
|
virtualisation.oci-containers.containers.recyclarr = {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ ... }:
|
||||||
let
|
let
|
||||||
backend = config.virtualisation.oci-containers.backend;
|
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
in {
|
in {
|
||||||
virtualisation.oci-containers.containers.sonarr = {
|
virtualisation.oci-containers.containers.sonarr = {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, inputs, ... }:
|
{ config, pkgs, inputs, ... }:
|
||||||
let
|
let
|
||||||
authentik = { proxyPass ? null, proxyWebsockets ? false, root ? {}, rootExtraConfig ? "", locations ? {}, extraConfig ? "", ... }: {
|
authentik = { proxyPass ? null, proxyWebsockets ? false, root ? {}, rootExtraConfig ? "", locations ? {}, extraConfig ? "", ... }: {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ ... }:
|
||||||
let
|
let
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
in {
|
in {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, ... }: let
|
{ ... }: let
|
||||||
nas-path = "/media/nas/media-stack";
|
nas-path = "/media/nas/media-stack";
|
||||||
in {
|
in {
|
||||||
virtualisation.oci-containers.containers.spdf = {
|
virtualisation.oci-containers.containers.spdf = {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ ... }: {
|
||||||
containers.tinyproxy = {
|
containers.tinyproxy = {
|
||||||
extraFlags = [ "-U" ];
|
extraFlags = [ "-U" ];
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
@ -6,8 +6,7 @@
|
|||||||
privateNetwork = true;
|
privateNetwork = true;
|
||||||
hostBridge = "br0";
|
hostBridge = "br0";
|
||||||
localAddress = "192.168.0.6/24";
|
localAddress = "192.168.0.6/24";
|
||||||
# tmpfs = [ "/" ]; # not working with unprivilliged container
|
config = { ... }: {
|
||||||
config = { config, pkgs, ... }: {
|
|
||||||
services.privoxy = {
|
services.privoxy = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
@ -22,7 +21,6 @@
|
|||||||
defaultGateway = "192.168.0.1";
|
defaultGateway = "192.168.0.1";
|
||||||
hostName = "tinyproxy-node";
|
hostName = "tinyproxy-node";
|
||||||
nameservers = [ "192.168.0.1" ];
|
nameservers = [ "192.168.0.1" ];
|
||||||
# enableIPv6 = false;
|
|
||||||
useHostResolvConf = false;
|
useHostResolvConf = false;
|
||||||
firewall = {
|
firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
extendedLogging = true;
|
extendedLogging = true;
|
||||||
invitationsAllowed = false;
|
invitationsAllowed = false;
|
||||||
useSyslog = true;
|
useSyslog = true;
|
||||||
# logFile = "/var/log/vaultwarden.log";
|
|
||||||
logLevel = "warn";
|
logLevel = "warn";
|
||||||
rocketAddress = "127.0.0.1";
|
rocketAddress = "127.0.0.1";
|
||||||
rocketPort = 8812;
|
rocketPort = 8812;
|
||||||
@ -29,7 +28,6 @@
|
|||||||
websocketEnabled = true;
|
websocketEnabled = true;
|
||||||
websocketPort = 3012;
|
websocketPort = 3012;
|
||||||
webVaultEnabled = true;
|
webVaultEnabled = true;
|
||||||
# rocketWorkers = 10;
|
|
||||||
dataDir = "/var/lib/bitwarden_rs";
|
dataDir = "/var/lib/bitwarden_rs";
|
||||||
};
|
};
|
||||||
environmentFile = config.sops.secrets.vaultwarden.path;
|
environmentFile = config.sops.secrets.vaultwarden.path;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, inputs, ... }: {
|
||||||
|
imports = [ inputs.vscode-server.nixosModule ];
|
||||||
services.vscode-server = {
|
services.vscode-server = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nodejsPackage = pkgs.nodejs_18;
|
nodejsPackage = pkgs.nodejs_18;
|
||||||
|
@ -23,14 +23,12 @@ in {
|
|||||||
home = "/var/lib/webhook";
|
home = "/var/lib/webhook";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.services.webhook.serviceConfig.EnvironmentFile = config.sops.secrets.webhook-blog.path;
|
||||||
services.webhook = {
|
services.webhook = {
|
||||||
enable = true;
|
enable = true;
|
||||||
port = 9510;
|
port = 9510;
|
||||||
group = "webhook";
|
group = "webhook";
|
||||||
user = "webhook";
|
user = "webhook";
|
||||||
environmentFiles = [
|
|
||||||
config.sops.secrets.webhook-blog.path
|
|
||||||
];
|
|
||||||
hooksTemplated = {
|
hooksTemplated = {
|
||||||
publish-ataraxiadev-blog = ''
|
publish-ataraxiadev-blog = ''
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ ... }: {
|
||||||
services.kiwix-serve = {
|
services.kiwix-serve = {
|
||||||
enable = true;
|
enable = true;
|
||||||
port = 8190;
|
port = 8190;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ config, lib, pkgs, inputs, ... }: {
|
{ pkgs, ... }: {
|
||||||
|
|
||||||
config.themes.base16 = with config.deviceSpecific.devInfo; {
|
config.themes.base16 = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# customScheme = {
|
# customScheme = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
let
|
let
|
||||||
isTailscale = config.deviceSpecific.vpn.tailscale.enable;
|
isTailscale = config.deviceSpecific.vpn.tailscale.enable;
|
||||||
wg = config.deviceSpecific.vpn.wireguard;
|
wg = config.deviceSpecific.vpn.wireguard;
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, ... }:
|
||||||
let
|
let
|
||||||
homeDir = config.home-manager.users.${config.mainuser}.home.homeDirectory;
|
homeDir = config.home-manager.users.${config.mainuser}.home.homeDirectory;
|
||||||
in {
|
in {
|
||||||
# TODO: enable websocket (--rpc-certificate)
|
# TODO: enable websocket (--rpc-certificate)
|
||||||
services.aria2 = {
|
home-manager.users.${config.mainuser} = {
|
||||||
enable = true;
|
programs.aria2 = {
|
||||||
downloadDir = "/media/aria2";
|
enable = true;
|
||||||
rpcListenPort = 6800;
|
settings = {
|
||||||
# FIXME: I can expose this, since i listen rpc only on localhost
|
dir = "${homeDir}/Downloads/aria2";
|
||||||
# but in future it's better to implement read key from secrets before start daemon
|
listen-port = "6881-6999";
|
||||||
rpcSecret = "secret";
|
rpc-listen-port = 6800;
|
||||||
# listenPortRange = {};
|
};
|
||||||
openPorts = false;
|
};
|
||||||
};
|
};
|
||||||
# networking.firewall.allowedTCPPorts = [ config.services.aria2.rpcListenPort ];
|
|
||||||
persist.state.directories = [ "/media/aria2" ];
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
let
|
let
|
||||||
thm = config.lib.base16.theme;
|
thm = config.lib.base16.theme;
|
||||||
in {
|
in {
|
||||||
|
@ -3,7 +3,7 @@ let
|
|||||||
thm = config.lib.base16.theme;
|
thm = config.lib.base16.theme;
|
||||||
in {
|
in {
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(self: super: {
|
(_self: _super: {
|
||||||
generated-gtk-theme =
|
generated-gtk-theme =
|
||||||
pkgs.callPackage "${inputs.rycee}/pkgs/materia-theme" {
|
pkgs.callPackage "${inputs.rycee}/pkgs/materia-theme" {
|
||||||
configBase16 = {
|
configBase16 = {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
programs.light.enable = config.deviceSpecific.isLaptop;
|
programs.light.enable = config.deviceSpecific.isLaptop;
|
||||||
services.actkbd = {
|
services.actkbd = {
|
||||||
enable = config.deviceSpecific.isLaptop;
|
enable = config.deviceSpecific.isLaptop;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, config, lib, ... }:
|
{ config, ... }:
|
||||||
let
|
let
|
||||||
en = "en_US.UTF-8";
|
en = "en_US.UTF-8";
|
||||||
ru = "ru_RU.UTF-8";
|
ru = "ru_RU.UTF-8";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
with config.deviceSpecific; {
|
with config.deviceSpecific; {
|
||||||
|
|
||||||
environment.sessionVariables =
|
environment.sessionVariables =
|
||||||
@ -16,7 +16,7 @@ with config.deviceSpecific; {
|
|||||||
services.upower.enable = isLaptop;
|
services.upower.enable = isLaptop;
|
||||||
xdg.portal.enable = true;
|
xdg.portal.enable = true;
|
||||||
xdg.portal.config.common.default = "*";
|
xdg.portal.config.common.default = "*";
|
||||||
xdg.portal.xdgOpenUsePortal = true;
|
# xdg.portal.xdgOpenUsePortal = true;
|
||||||
|
|
||||||
home-manager.users.${config.mainuser} = {
|
home-manager.users.${config.mainuser} = {
|
||||||
news.display = "silent";
|
news.display = "silent";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
{ config, ... }:
|
||||||
with config.deviceSpecific; {
|
with config.deviceSpecific; {
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, inputs, ... }:
|
{ config, pkgs, ... }:
|
||||||
with config.deviceSpecific; {
|
with config.deviceSpecific; {
|
||||||
home-manager.users.${config.mainuser}.programs.waybar = {
|
home-manager.users.${config.mainuser}.programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, lib, ... }:
|
||||||
let
|
let
|
||||||
dirsToClean = [
|
dirsToClean = [
|
||||||
"Downloads"
|
"Downloads"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, config, inputs, ... }: {
|
{ pkgs, config, ... }: {
|
||||||
|
|
||||||
environment.pathsToLink = [ "/share/zsh" ];
|
environment.pathsToLink = [ "/share/zsh" ];
|
||||||
environment.sessionVariables.SHELL = "${pkgs.zsh}/bin/zsh";
|
environment.sessionVariables.SHELL = "${pkgs.zsh}/bin/zsh";
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
themes
|
themes
|
||||||
virtualisation
|
virtualisation
|
||||||
|
|
||||||
alacritty
|
|
||||||
corectrl
|
corectrl
|
||||||
element
|
element
|
||||||
email
|
email
|
||||||
@ -19,11 +18,9 @@
|
|||||||
mangohud
|
mangohud
|
||||||
mpv
|
mpv
|
||||||
packages
|
packages
|
||||||
rclone
|
|
||||||
rofi
|
rofi
|
||||||
spotify
|
spotify
|
||||||
steam
|
steam
|
||||||
tor-browser
|
|
||||||
vscode
|
vscode
|
||||||
waydroid
|
waydroid
|
||||||
zathura
|
zathura
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ inputs, pkgs, ... }: {
|
{ inputs, ... }: {
|
||||||
imports = with inputs.self.customProfiles; [
|
imports = with inputs.self.customProfiles; [
|
||||||
inputs.home-manager.nixosModules.home-manager {
|
inputs.home-manager.nixosModules.home-manager {
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
SUDO_USERNAME=ENC[AES256_GCM,data:4QMSmmaPB10=,iv:KveMQ+EdfltGzQRRA+cm1MaRlsLypOhlWHdCumHLQS4=,tag:v30WjSutCxO9LDv3wFZHMA==,type:str]
|
|
||||||
SUDO_PASSWORD=ENC[AES256_GCM,data:IPJGUQiB6jMObUsUdw==,iv:N9cw9aGkmgIYmmrNkQYQ5PFdrmYKC8Tdgr4yb/96U5A=,tag:/yYIC/rKCttSgBBGvjCe2A==,type:str]
|
|
||||||
TELEGRAM_API_TOKEN=ENC[AES256_GCM,data:8PySjalQnpADCd+3Yt+Iax3DdGq6sxR0PHntgAzKpI+iXsB8TsMqsm6ElORoOw==,iv:y7tmr1jIs/JtMnBcEkGiCxrKkPcgUt6RBSq4GiKXNZ8=,tag:TcdxtPkO4Pvfcku72XCFIg==,type:str]
|
|
||||||
TELEGRAM_ADMIN_ID=ENC[AES256_GCM,data:nH/VUQNoRqwj,iv:AdBRZqyBVeze8SGn0pmxaBB8CWyo3D1TTaVx7NsEPHI=,tag:MyJwnQhuBCQ7XMS74TevRg==,type:str]
|
|
||||||
SQLALCHEMY_DATABASE_URL=ENC[AES256_GCM,data:bQJGB/c/pTuAPev2zxcLu1cNg2TmlHH9iY2kQH4qfqRwh/Fcjg==,iv:CeQZ8qcNLiVgtGI/4Egod6VaXamCfAKHi4jrgzXKl9Q=,tag:VX0J3r6RjnS5utJ/UDK1hQ==,type:str]
|
|
||||||
XRAY_JSON=ENC[AES256_GCM,data:28Wkv4CG4hpG9h51d2ge3AUO2MdVuRBjPuw1bxFwYqhT,iv:MooWqI5QCmk0JXWdKxA40UIFaaIxG3EakMQ1jBH8TVI=,tag:Fmnqdg9mvRVvm/0O7VNFGw==,type:str]
|
|
||||||
sops_lastmodified=2023-11-22T23:09:38Z
|
|
||||||
sops_mac=ENC[AES256_GCM,data:m9TLulK7igJtvtuu1Leag5Ky28qxKyELOKGTFZmX8O/VaVwu1EHC07awgf9HJjFlAcIWT6+fkRcnpwse6t4Thh//Yc4YIu8ryJjsRZBLezaR26SOWis41HR/uek/lSLLMMrdIyiU/5RX9i3/rhUjZwCDYzM1yg+rDsxfGIdERCM=,iv:+TXcgj9MsmQmZzYi4JKbgPVLcX0VLKtheq5/ckPRDcY=,tag:Ku+43ZiVCOeUxN3pimv7JQ==,type:str]
|
|
||||||
sops_pgp__list_0__map_created_at=2023-11-22T22:35:02Z
|
|
||||||
sops_pgp__list_0__map_enc=-----BEGIN PGP MESSAGE-----\n\nhQEMAwcagTG/Fm6AAQf9FyMBT+jm0pOjuw6aXQSv7Xc8ffKtXYAIUgKsHTTAnqfj\npoDoel7I1toENks/0flFxXjtzp6kBPPmb8aX+CelPv5orIyzMUdJbgZ2D6LINHTD\npW5DmGA7gkegk/gus4qMz+p/zxoJC0EBrr8eVbgIUMi3WVUtG1TofpeaKm+xf61r\nvVJLMn7dHxjmt3qe6RVBAD2bS/tTEUEfGubOWBLUrWq1MElnL0MLZy3936dmMJ5W\nLrurkBfJ7hCIIfJn/7VCBkY93Nk/NjZCF/EdYj2/Dgs0SOqIc5wXGC259/7HhVEJ\nlmBOKYWPzHp4c40AMHld3L3rJ0cOKenTBSfj8g7b1tJYAaB+dW//A/HaL8FrIpxx\nMjS1HyfsFfDM8D8Um+PCe4cktupMmlhuU898rOLwgAX90niRHvhm0IWbLISa1QDx\nPH4SjYB4NWIk5i1eunYm8jjMStNNbRABJg==\n=V9Pe\n-----END PGP MESSAGE-----
|
|
||||||
sops_pgp__list_0__map_fp=ad382d058c964607b7bbf01b071a8131bf166e80
|
|
||||||
sops_pgp__list_1__map_created_at=2023-11-22T22:35:02Z
|
|
||||||
sops_pgp__list_1__map_enc=-----BEGIN PGP MESSAGE-----\n\nhQIMAyNex7x1cALKAQ//TN89prS2jIW3lvDFdOmFfNKSOo9oNqVJZPKbyRTG4gxL\ndwhPZnCoQd8Sg88TNexfgl/qkQJhU6k/dbx2/nebJXgkQz4GDpmNNVAHacH+A7Sv\n/ZPGDLMdivOF6JVIIBxjdj06KxRfyeTf3Cnb2JqaCjGc312POBOQMZBa/GvfQjC7\n8YhS6TqXu8+MhmWNP9bbTWE1kc7bNeH+1BzraZn5625OQN1kCNj2SEBaZPI1i/MS\nTQxHf0yfIES6lZ/NTB6H0xkxbwcKYbbY47o9dc5BG7uAKPGh9oBnAmH66XuSq260\nuWsRwfdfK8NOEy9nxSk2Yqfgatzx7WkNCEX6l6ztCbSDeruJ56X49vr+xLbw5NyX\n+rgvr1w85uiAzct8f/2QNBq/J0qjoinHvxbUUbLP3LkJzqOoxXV0YEqjx7LHMrEW\nCRn2oiLRZd5ElsbVvDGhpFAoMq2kYa2U3280YRQuH0zFGpUbhS8Q7FtyZOBuw2pz\nYNJwLwsRODNvCeeruYOzLF/ERfZteO7yzj0WWyGPvhIcIvz9mP6JgtDvR+0e15hi\nZ6zyzz5wvpBWEpQaVuNeXxHr4+UJe2iLZN1ATTCJW7dfJyKxBC1yimXPmrJJtQOI\nqUjqIiskgdph0DRPXwgE3sHKYEbUwHb2l1ospnN2AW3RRSyXYgvBo/N91ndazffS\nWAFwVCXJLn7n3BrM8CYozTHsrOHTtMMqRDHKZq2C8GHJMpPb3t6K07CIolmkjMHN\nivdG4dSds8uj4HYwFKlw1ZyMqZApSI/FnLoaOfw9Ur6xKI6U1Z2T2GU=\n=xUz4\n-----END PGP MESSAGE-----
|
|
||||||
sops_pgp__list_1__map_fp=d286fd9431753cb455537070235ec7bc757002ca
|
|
||||||
sops_unencrypted_suffix=_unencrypted
|
|
||||||
sops_version=3.8.1
|
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user