@@ -1,7 +1,5 @@
|
||||
{ inputs, system, ... }:
|
||||
{ system, ... }:
|
||||
{
|
||||
imports = [ inputs.nur.modules.nixos.default ];
|
||||
|
||||
nixpkgs = {
|
||||
hostPlatform = system;
|
||||
config.allowUnfree = true;
|
||||
|
@@ -1,14 +1,6 @@
|
||||
{ user, home }:
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
android-tools = prev.android-tools.overrideAttrs (oldAttrs: {
|
||||
patches = oldAttrs.patches or [ ] ++ [ ./env-var-user-home.patch ];
|
||||
});
|
||||
})
|
||||
];
|
||||
|
||||
programs.adb.enable = true;
|
||||
services.gvfs.enable = true;
|
||||
|
||||
|
@@ -1,21 +0,0 @@
|
||||
--- a/vendor/adb/adb_utils.cpp
|
||||
+++ b/vendor/adb/adb_utils.cpp
|
||||
@@ -308,8 +308,16 @@
|
||||
}
|
||||
|
||||
std::string adb_get_android_dir_path() {
|
||||
- std::string user_dir = adb_get_homedir_path();
|
||||
- std::string android_dir = user_dir + OS_PATH_SEPARATOR + ".android";
|
||||
+ const char* android_user_home = getenv("ANDROID_USER_HOME");
|
||||
+ std::string android_dir;
|
||||
+
|
||||
+ if (android_user_home) {
|
||||
+ android_dir = std::string(android_user_home);
|
||||
+ } else {
|
||||
+ std::string user_dir = adb_get_homedir_path();
|
||||
+ android_dir = user_dir + OS_PATH_SEPARATOR + ".android";
|
||||
+ }
|
||||
+
|
||||
struct stat buf;
|
||||
if (stat(android_dir.c_str(), &buf) == -1) {
|
||||
if (adb_mkdir(android_dir, 0750) == -1) {
|
@@ -1,25 +1,6 @@
|
||||
{ user, home }:
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
# FIXME: https://github.com/hrkfdn/ncspot/issues/1681#issuecomment-3186274719
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
ncspot = prev.ncspot.overrideAttrs (oldAttrs: rec {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "hrkfdn";
|
||||
repo = "ncspot";
|
||||
rev = "aac67d631f25bbc79f509d34aa85e6daff954830";
|
||||
hash = "sha256-B6BA1ksfDEySZH6gzkU5khOzwXAmeHbMHsx3sXd9lbs=";
|
||||
};
|
||||
|
||||
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
|
||||
inherit src;
|
||||
hash = "sha256-HrQJiIzSvu/vR03UdnCcU6TGToBDKKDC6XscjvX3KPE=";
|
||||
};
|
||||
});
|
||||
})
|
||||
];
|
||||
|
||||
environment.persistence = {
|
||||
"/persist/state"."${home}/.config/ncspot/userstate.cbor" = { };
|
||||
"/persist/cache"."${home}/.cache/ncspot" = { };
|
||||
|
@@ -3,13 +3,10 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
in
|
||||
{
|
||||
home-manager.users.${user} = {
|
||||
@@ -187,9 +184,8 @@ in
|
||||
ouch
|
||||
mount
|
||||
mediainfo
|
||||
custom-shell
|
||||
;
|
||||
|
||||
custom-shell = selfPkgs.yazi-plugin-custom-shell;
|
||||
};
|
||||
};
|
||||
|
||||
|
@@ -1,250 +0,0 @@
|
||||
diff --git a/data/darktableconfig.xml.in b/data/darktableconfig.xml.in
|
||||
index 4cd5497ab8..227493e754 100644
|
||||
--- a/data/darktableconfig.xml.in
|
||||
+++ b/data/darktableconfig.xml.in
|
||||
@@ -1524,6 +1524,22 @@
|
||||
<longdescription>file naming pattern used for a import session</longdescription>
|
||||
</dtconfig>
|
||||
|
||||
+ <dtconfig prefs="import" section="session">
|
||||
+ <name>session/conflict_padding</name>
|
||||
+ <type>int</type>
|
||||
+ <default>2</default>
|
||||
+ <shortdescription>burst file name conflict number padding</shortdescription>
|
||||
+ <longdescription>set the padding length for conflict resolution (e.g., 001, 002).</longdescription>
|
||||
+ </dtconfig>
|
||||
+
|
||||
+ <dtconfig prefs="import" section="session">
|
||||
+ <name>session/import_existing_sidecar</name>
|
||||
+ <type>bool</type>
|
||||
+ <default>true</default>
|
||||
+ <shortdescription>import existing sidecar files</shortdescription>
|
||||
+ <longdescription>import existing sidecar files (XMP, IPTC, etc.) when importing images</longdescription>
|
||||
+ </dtconfig>
|
||||
+
|
||||
<dtconfig>
|
||||
<name>plugins/lighttable/layout</name>
|
||||
<type>int</type>
|
||||
diff --git a/src/common/import_session.c b/src/common/import_session.c
|
||||
index 03d4212c5b..ed07369b7e 100644
|
||||
--- a/src/common/import_session.c
|
||||
+++ b/src/common/import_session.c
|
||||
@@ -266,44 +266,38 @@ const char *dt_import_session_filename(dt_import_session_t *self, const gboolean
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+ self->vp->retry_count = 0;
|
||||
+
|
||||
/* verify that expanded path and filename yields a unique file */
|
||||
const char *path = dt_import_session_path(self, TRUE);
|
||||
|
||||
if(use_filename)
|
||||
result_fname = g_strdup(self->vp->filename);
|
||||
else
|
||||
- result_fname = _import_session_filename_from_pattern(self, pattern);
|
||||
-
|
||||
- char *fname = g_build_path(G_DIR_SEPARATOR_S, path, result_fname, (char *)NULL);
|
||||
- char *previous_fname = fname;
|
||||
- if(g_file_test(fname, G_FILE_TEST_EXISTS) == TRUE)
|
||||
{
|
||||
- dt_print(DT_DEBUG_ALWAYS, "[import_session] File %s exists", fname);
|
||||
do
|
||||
{
|
||||
- /* file exists, yield a new filename */
|
||||
+ /* generate filename based on the current retry_count */
|
||||
g_free(result_fname);
|
||||
result_fname = _import_session_filename_from_pattern(self, pattern);
|
||||
- fname = g_build_path(G_DIR_SEPARATOR_S, path, result_fname, (char *)NULL);
|
||||
|
||||
- dt_print(DT_DEBUG_ALWAYS, "[import_session] Testing %s", fname);
|
||||
- /* check if same filename was yielded as before */
|
||||
- if(strcmp(previous_fname, fname) == 0)
|
||||
+ char *test_path = g_build_path(G_DIR_SEPARATOR_S, path, result_fname, (char *)NULL);
|
||||
+
|
||||
+ if(g_file_test(test_path, G_FILE_TEST_EXISTS) == TRUE)
|
||||
{
|
||||
- g_free(previous_fname);
|
||||
- g_free(fname);
|
||||
- dt_control_log(_(
|
||||
- "couldn't expand to a unique filename for session, please check your import session settings"));
|
||||
- return NULL;
|
||||
+ dt_print(DT_DEBUG_ALWAYS, "[import_session] File %s exists, retrying.\n", test_path);
|
||||
+ self->vp->retry_count++;
|
||||
+ g_free(test_path);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ g_free(test_path);
|
||||
+ break;
|
||||
}
|
||||
|
||||
- g_free(previous_fname);
|
||||
- previous_fname = fname;
|
||||
-
|
||||
- } while(g_file_test(fname, G_FILE_TEST_EXISTS) == TRUE);
|
||||
+ } while(TRUE);
|
||||
}
|
||||
|
||||
- g_free(previous_fname);
|
||||
g_free(pattern);
|
||||
|
||||
self->current_filename = result_fname;
|
||||
diff --git a/src/common/variables.c b/src/common/variables.c
|
||||
index beb74b7f1c..23bce605c4 100644
|
||||
--- a/src/common/variables.c
|
||||
+++ b/src/common/variables.c
|
||||
@@ -1000,6 +1000,14 @@ static char *_get_base_value(dt_variables_params_t *params, char **variable)
|
||||
else if(_has_prefix(variable, "DARKTABLE.NAME")
|
||||
|| _has_prefix(variable, "DARKTABLE_NAME"))
|
||||
result = g_strdup(PACKAGE_NAME);
|
||||
+
|
||||
+ else if(_has_prefix(variable, "CONFLICT_PADDING"))
|
||||
+ {
|
||||
+ int pad_length = dt_conf_get_int("session/conflict_padding");
|
||||
+ if(pad_length < 0) pad_length = 0;
|
||||
+ result = g_strdup_printf("%0*u", pad_length, params->retry_count);
|
||||
+ }
|
||||
+
|
||||
else
|
||||
{
|
||||
// go past what looks like an invalid variable. we only expect to
|
||||
diff --git a/src/common/variables.h b/src/common/variables.h
|
||||
index 86052a9a3d..a5d616a94c 100644
|
||||
--- a/src/common/variables.h
|
||||
+++ b/src/common/variables.h
|
||||
@@ -29,6 +29,9 @@ typedef struct dt_variables_params_t
|
||||
/** used for expanding variables that uses filename $(FILE_FOLDER) $(FILE_NAME) and $(FILE_EXTENSION). */
|
||||
const gchar *filename;
|
||||
|
||||
+ /** used for conflict resolution in filename expansion */
|
||||
+ int retry_count;
|
||||
+
|
||||
/** used for expanding variable $(JOBCODE) */
|
||||
const gchar *jobcode;
|
||||
|
||||
diff --git a/src/control/jobs/control_jobs.c b/src/control/jobs/control_jobs.c
|
||||
index 62908d100c..28302da7b7 100644
|
||||
--- a/src/control/jobs/control_jobs.c
|
||||
+++ b/src/control/jobs/control_jobs.c
|
||||
@@ -2664,6 +2664,59 @@ void dt_control_write_sidecar_files()
|
||||
FALSE));
|
||||
}
|
||||
|
||||
+static gboolean _copy_file(const char *source, const char *destination)
|
||||
+{
|
||||
+ gchar *data = NULL;
|
||||
+ gsize size = 0;
|
||||
+
|
||||
+ if(!g_file_get_contents(source, &data, &size, NULL))
|
||||
+ {
|
||||
+ dt_print(DT_DEBUG_CONTROL, "[import_from] failed to read file `%s`", source);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ if(!g_file_set_contents(destination, data, size, NULL))
|
||||
+ {
|
||||
+ dt_print(DT_DEBUG_CONTROL, "[import_from] failed to write file `%s`", destination);
|
||||
+ g_free(data);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ g_free(data);
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+static void _copy_timestamps(const char *source, const char *destination)
|
||||
+{
|
||||
+ struct stat statbuf;
|
||||
+ if(stat(source, &statbuf) == 0)
|
||||
+ {
|
||||
+#ifdef _WIN32
|
||||
+ struct utimbuf times;
|
||||
+ times.actime = statbuf.st_atime;
|
||||
+ times.modtime = statbuf.st_mtime;
|
||||
+ utime(destination, ×);
|
||||
+#else
|
||||
+ struct timeval times[2];
|
||||
+ times[0].tv_sec = statbuf.st_atime;
|
||||
+ times[1].tv_sec = statbuf.st_mtime;
|
||||
+#ifdef __APPLE__
|
||||
+#ifndef _POSIX_SOURCE
|
||||
+ times[0].tv_usec = statbuf.st_atimespec.tv_nsec * 0.001;
|
||||
+ times[1].tv_usec = statbuf.st_mtimespec.tv_nsec * 0.001;
|
||||
+#else
|
||||
+ times[0].tv_usec = statbuf.st_atimensec * 0.001;
|
||||
+ times[1].tv_usec = statbuf.st_mtimensec * 0.001;
|
||||
+#endif
|
||||
+#else
|
||||
+ times[0].tv_usec = statbuf.st_atim.tv_nsec * 0.001;
|
||||
+ times[1].tv_usec = statbuf.st_mtim.tv_nsec * 0.001;
|
||||
+#endif
|
||||
+ utimes(destination, times);
|
||||
+#endif
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static int _control_import_image_copy(const char *filename,
|
||||
char **prev_filename,
|
||||
char **prev_output,
|
||||
@@ -2707,37 +2760,37 @@ static int _control_import_image_copy(const char *filename,
|
||||
g_free(basename);
|
||||
}
|
||||
|
||||
- if(!g_file_set_contents(output, data, size, NULL))
|
||||
+ if(!_copy_file(filename, output))
|
||||
{
|
||||
dt_print(DT_DEBUG_CONTROL, "[import_from] failed to write file %s", output);
|
||||
res = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
-#ifdef _WIN32
|
||||
- struct utimbuf times;
|
||||
- times.actime = statbuf.st_atime;
|
||||
- times.modtime = statbuf.st_mtime;
|
||||
- utime(output, ×); // set origin file timestamps
|
||||
-#else
|
||||
- struct timeval times[2];
|
||||
- times[0].tv_sec = statbuf.st_atime;
|
||||
- times[1].tv_sec = statbuf.st_mtime;
|
||||
-#ifdef __APPLE__
|
||||
-#ifndef _POSIX_SOURCE
|
||||
- times[0].tv_usec = statbuf.st_atimespec.tv_nsec * 0.001;
|
||||
- times[1].tv_usec = statbuf.st_mtimespec.tv_nsec * 0.001;
|
||||
-#else
|
||||
- times[0].tv_usec = statbuf.st_atimensec * 0.001;
|
||||
- times[1].tv_usec = statbuf.st_mtimensec * 0.001;
|
||||
-#endif
|
||||
-#else
|
||||
- times[0].tv_usec = statbuf.st_atim.tv_nsec * 0.001;
|
||||
- times[1].tv_usec = statbuf.st_mtim.tv_nsec * 0.001;
|
||||
-#endif
|
||||
- utimes(output, times); // set origin file timestamps
|
||||
-#endif
|
||||
+ _copy_timestamps(filename, output);
|
||||
+ }
|
||||
|
||||
+ gboolean import_existing_sidecar = dt_conf_get_bool("session/import_existing_sidecar");
|
||||
+ if(import_existing_sidecar)
|
||||
+ {
|
||||
+ char *xml_filename = g_strdup_printf("%s.xmp", filename);
|
||||
+ if(g_file_test(xml_filename, G_FILE_TEST_EXISTS))
|
||||
+ {
|
||||
+ char *xml_output = g_strdup_printf("%s.xmp", output);
|
||||
+ if(_copy_file(xml_filename, xml_output))
|
||||
+ _copy_timestamps(xml_filename, xml_output);
|
||||
+ else
|
||||
+ {
|
||||
+ dt_print(DT_DEBUG_CONTROL, "[import_from] failed to copy sidecar %s", xml_filename);
|
||||
+ res = FALSE;
|
||||
+ }
|
||||
+ g_free(xml_output);
|
||||
+ }
|
||||
+ g_free(xml_filename);
|
||||
+ }
|
||||
+
|
||||
+ if(res)
|
||||
+ {
|
||||
const dt_imgid_t imgid = dt_image_import(dt_import_session_film_id(session),
|
||||
output, FALSE, FALSE);
|
||||
if(!dt_is_valid_imgid(imgid)) dt_control_log(_("error loading file `%s'"), output);
|
@@ -1,24 +1,6 @@
|
||||
{ user, home }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
in
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
darktable = prev.darktable.overrideAttrs (oldAttrs: {
|
||||
patches = oldAttrs.patches or [ ] ++ [ ./better-copy-and-import.patch ];
|
||||
});
|
||||
})
|
||||
];
|
||||
|
||||
environment.persistence = {
|
||||
"/persist/state" = {
|
||||
"${home}/.config/darktable/data.db" = { };
|
||||
@@ -28,21 +10,10 @@ in
|
||||
};
|
||||
|
||||
home-manager.users.${user} = {
|
||||
home = {
|
||||
packages =
|
||||
with pkgs;
|
||||
with selfPkgs;
|
||||
[
|
||||
darktable
|
||||
exiftool
|
||||
darktable-ghost-cms-publish
|
||||
];
|
||||
|
||||
sessionVariables = {
|
||||
GHOST_URL = "https://photos.karaolidis.com";
|
||||
GHOST_ADMIN_API_KEY_PATH = hmConfig.sops.secrets."jupiter/photos.karaolidis.com/admin".path;
|
||||
};
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
darktable
|
||||
exiftool
|
||||
];
|
||||
|
||||
xdg.configFile = {
|
||||
"darktable/darktablerc".source = (pkgs.formats.keyValue { }).generate "darktablerc" {
|
||||
@@ -69,19 +40,13 @@ in
|
||||
|
||||
"darktable/luarc".text = ''
|
||||
require "tools/script_manager"
|
||||
require "tools/publish"
|
||||
'';
|
||||
|
||||
"darktable/lua/lib".source = "${selfPkgs.darktable-lua-scripts}/lib";
|
||||
"darktable/lua/lib".source = "${pkgs.darktable-lua-scripts}/lib";
|
||||
"darktable/lua/tools/script_manager.lua".source =
|
||||
"${selfPkgs.darktable-lua-scripts}/tools/script_manager.lua";
|
||||
"darktable/lua/tools/publish.lua".source =
|
||||
"${selfPkgs.darktable-ghost-cms-publish}/lib/darktable-ghost-cms-publish/publish.lua";
|
||||
"${pkgs.darktable-lua-scripts}/tools/script_manager.lua";
|
||||
|
||||
"darktable/luts".source = selfPkgs.darktable-hald-clut;
|
||||
"darktable/luts".source = pkgs.darktable-hald-clut;
|
||||
};
|
||||
|
||||
sops.secrets."jupiter/photos.karaolidis.com/admin".sopsFile =
|
||||
"${inputs.secrets}/domains/personal/secrets.yaml";
|
||||
};
|
||||
}
|
||||
|
@@ -6,14 +6,6 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
hyprland = prev.hyprland.overrideAttrs (oldAttrs: {
|
||||
patches = oldAttrs.patches or [ ] ++ [ ./fix-maxwidth-resolution-mode.patch ];
|
||||
});
|
||||
})
|
||||
];
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
|
@@ -1,13 +0,0 @@
|
||||
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
|
||||
index 635c7977..80093c0d 100644
|
||||
--- a/src/config/ConfigManager.cpp
|
||||
+++ b/src/config/ConfigManager.cpp
|
||||
@@ -2091,6 +2091,8 @@ bool CMonitorRuleParser::parseMode(const std::string& value) {
|
||||
m_rule.resolution = Vector2D(-1, -1);
|
||||
else if (value.starts_with("highres"))
|
||||
m_rule.resolution = Vector2D(-1, -2);
|
||||
+ else if (value.starts_with("maxwidth"))
|
||||
+ m_rule.resolution = Vector2D(-1, -3);
|
||||
else if (parseModeLine(value, m_rule.drmMode)) {
|
||||
m_rule.resolution = Vector2D(m_rule.drmMode.hdisplay, m_rule.drmMode.vdisplay);
|
||||
m_rule.refreshRate = float(m_rule.drmMode.vrefresh) / 1000;
|
@@ -1,12 +1,6 @@
|
||||
{ user, home }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
mpv = pkgs.mpv-unwrapped.wrapper { mpv = pkgs.mpv-unwrapped.override { cddaSupport = true; }; };
|
||||
})
|
||||
];
|
||||
|
||||
home-manager.users.${user} = {
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
|
@@ -4,11 +4,9 @@
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
in
|
||||
{
|
||||
@@ -78,9 +76,9 @@ in
|
||||
}
|
||||
];
|
||||
|
||||
communityPlugins = [
|
||||
communityPlugins = with pkgs; [
|
||||
{
|
||||
pkg = selfPkgs.obsidian-plugin-better-word-count;
|
||||
pkg = obsidianPlugins.better-word-count;
|
||||
settings = {
|
||||
statusBar = [
|
||||
{
|
||||
@@ -106,7 +104,7 @@ in
|
||||
};
|
||||
}
|
||||
{
|
||||
pkg = selfPkgs.obsidian-plugin-dataview;
|
||||
pkg = obsidianPlugins.dataview;
|
||||
settings = {
|
||||
enableDataviewJs = true;
|
||||
enableInlineDataviewJs = true;
|
||||
@@ -116,7 +114,7 @@ in
|
||||
};
|
||||
}
|
||||
{
|
||||
pkg = selfPkgs.obsidian-plugin-excalidraw;
|
||||
pkg = obsidianPlugins.excalidraw;
|
||||
settings = {
|
||||
folder = "Inbox";
|
||||
templateFilePath = "Templates";
|
||||
@@ -139,7 +137,7 @@ in
|
||||
};
|
||||
}
|
||||
{
|
||||
pkg = selfPkgs.obsidian-plugin-kanban;
|
||||
pkg = obsidianPlugins.kanban;
|
||||
settings = {
|
||||
move-tags = true;
|
||||
move-dates = true;
|
||||
@@ -153,7 +151,7 @@ in
|
||||
};
|
||||
}
|
||||
{
|
||||
pkg = selfPkgs.obsidian-plugin-languagetool;
|
||||
pkg = obsidianPlugins.languagetool;
|
||||
settings = {
|
||||
shouldAutoCheck = true;
|
||||
pickyMode = true;
|
||||
@@ -162,7 +160,7 @@ in
|
||||
};
|
||||
}
|
||||
{
|
||||
pkg = selfPkgs.obsidian-plugin-linter;
|
||||
pkg = obsidianPlugins.linter;
|
||||
settings = {
|
||||
lintOnSave = true;
|
||||
displayChanged = false;
|
||||
@@ -302,7 +300,7 @@ in
|
||||
};
|
||||
}
|
||||
{
|
||||
pkg = selfPkgs.obsidian-plugin-map-view;
|
||||
pkg = obsidianPlugins.map-view;
|
||||
settings = {
|
||||
"markerIconRules" = [
|
||||
{
|
||||
@@ -388,21 +386,21 @@ in
|
||||
};
|
||||
}
|
||||
{
|
||||
pkg = selfPkgs.obsidian-plugin-minimal-settings;
|
||||
pkg = obsidianPlugins.minimal-settings;
|
||||
settings = {
|
||||
editorFont = "var(--font-monospace)";
|
||||
};
|
||||
}
|
||||
{
|
||||
pkg = selfPkgs.obsidian-plugin-outliner;
|
||||
pkg = obsidianPlugins.outliner;
|
||||
settings = {
|
||||
styleLists = false;
|
||||
stickCursor = "never";
|
||||
};
|
||||
}
|
||||
(selfPkgs.obsidian-plugin-style-settings)
|
||||
(obsidianPlugins.style-settings)
|
||||
{
|
||||
pkg = selfPkgs.obsidian-plugin-tasks;
|
||||
pkg = obsidianPlugins.tasks;
|
||||
settings = {
|
||||
globalQuery = "short mode";
|
||||
globalFilter = "#todo";
|
||||
@@ -548,10 +546,10 @@ in
|
||||
};
|
||||
};
|
||||
}
|
||||
(selfPkgs.obsidian-plugin-url-into-selection)
|
||||
(obsidianPlugins.url-into-selection)
|
||||
];
|
||||
|
||||
themes = [ selfPkgs.obsidian-theme-minimal ];
|
||||
themes = with pkgs; [ obsidianThemes.minimal ];
|
||||
|
||||
hotkeys = {
|
||||
"command-palette:open" = [ { key = "F1"; } ];
|
||||
|
@@ -10,14 +10,6 @@ let
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
in
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
spicetify-cli = prev.spicetify-cli.overrideAttrs (oldAttrs: {
|
||||
patches = oldAttrs.patches or [ ] ++ [ ./user-colors.patch ];
|
||||
});
|
||||
})
|
||||
];
|
||||
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [ 57621 ];
|
||||
allowedUDPPorts = [ 5353 ];
|
||||
@@ -69,9 +61,7 @@ in
|
||||
"spotify/prefs.init" = {
|
||||
source = ./config/prefs;
|
||||
onChange = ''
|
||||
${
|
||||
inputs.lib.lib.${system}.runtime.merge.keyValue
|
||||
} "${home}/.config/spotify/prefs.init" "${home}/.config/spotify/prefs"
|
||||
${lib.runtime.merge.keyValue} "${home}/.config/spotify/prefs.init" "${home}/.config/spotify/prefs"
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -79,9 +69,7 @@ in
|
||||
source = ./config/prefs-user;
|
||||
onChange = ''
|
||||
user=$(cat "${hmConfig.sops.secrets."spotify/username".path}")
|
||||
${
|
||||
inputs.lib.lib.${system}.runtime.merge.keyValue
|
||||
} "${home}/.config/spotify/prefs-user.init" "${home}/.config/spotify/Users/''${user}-user/prefs"
|
||||
${lib.runtime.merge.keyValue} "${home}/.config/spotify/prefs-user.init" "${home}/.config/spotify/Users/''${user}-user/prefs"
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@@ -1,31 +0,0 @@
|
||||
diff --git a/src/apply/apply.go b/src/apply/apply.go
|
||||
index 47f1346..47badab 100644
|
||||
--- a/src/apply/apply.go
|
||||
+++ b/src/apply/apply.go
|
||||
@@ -2,6 +2,7 @@ package apply
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
+ "errors"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -65,10 +66,17 @@ func AdditionalOptions(appsFolderPath string, flags Flag) {
|
||||
// To not use custom css, set `themeFolder` to blank string
|
||||
// To use default color scheme, set `scheme` to `nil`
|
||||
func UserCSS(appsFolderPath, themeFolder string, scheme map[string]string) {
|
||||
+ colorsSrc := os.Getenv("COLORS_CSS_PATH")
|
||||
colorsDest := filepath.Join(appsFolderPath, "xpui", "colors.css")
|
||||
- if err := os.WriteFile(colorsDest, []byte(getColorCSS(scheme)), 0700); err != nil {
|
||||
+
|
||||
+ if len(colorsSrc) == 0 {
|
||||
+ utils.Fatal(errors.New("COLORS_CSS_PATH environment variable is not set"))
|
||||
+ }
|
||||
+
|
||||
+ if err := os.Symlink(colorsSrc, colorsDest); err != nil {
|
||||
utils.Fatal(err)
|
||||
}
|
||||
+
|
||||
cssDest := filepath.Join(appsFolderPath, "xpui", "user.css")
|
||||
if err := os.WriteFile(cssDest, []byte(getUserCSS(themeFolder)), 0700); err != nil {
|
||||
utils.Fatal(err)
|
@@ -1,15 +1,11 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
in
|
||||
{
|
||||
security.pki.certificateFiles = lib.lists.optionals config.sas.build.private [
|
||||
"${selfPkgs.sas-cacert}/etc/ssl/certs/ca-bundle.crt"
|
||||
];
|
||||
security.pki.certificateFiles =
|
||||
with pkgs;
|
||||
lib.lists.optionals config.sas.build.private [ "${sas-cacert}/etc/ssl/certs/ca-bundle.crt" ];
|
||||
}
|
||||
|
@@ -1,13 +1,10 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
in
|
||||
{
|
||||
sops.secrets = {
|
||||
"ssh/personal/key" = {
|
||||
@@ -45,10 +42,7 @@ in
|
||||
'';
|
||||
|
||||
knownHostsFiles =
|
||||
with selfPkgs;
|
||||
(
|
||||
[ ssh-known-hosts-github ]
|
||||
++ lib.lists.optionals config.sas.build.private [ ssh-known-hosts-sas-gitlab ]
|
||||
);
|
||||
with pkgs.sshKnownHosts;
|
||||
([ github ] ++ lib.lists.optionals config.sas.build.private [ sas-gitlab ]);
|
||||
};
|
||||
}
|
||||
|
@@ -1,5 +1,12 @@
|
||||
{ config, inputs, ... }:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
inputs.lib.overlays.default
|
||||
inputs.self.overlays.default
|
||||
inputs.nur.overlays.default
|
||||
inputs.sas.overlays.default
|
||||
];
|
||||
|
||||
imports = [
|
||||
./options.nix
|
||||
|
||||
@@ -7,6 +14,8 @@
|
||||
./format.nix
|
||||
./hardware
|
||||
|
||||
inputs.sas.nixosModules.default
|
||||
|
||||
../common/configs/system
|
||||
|
||||
../common/configs/system/bluetooth
|
||||
@@ -47,11 +56,10 @@
|
||||
../common/configs/system/users
|
||||
../common/configs/system/zsh
|
||||
|
||||
./configs/globalprotect
|
||||
./configs/pki
|
||||
./configs/ssh
|
||||
|
||||
"${inputs.sas}/hosts/elara/configs/globalprotect"
|
||||
|
||||
./users/nikara
|
||||
];
|
||||
|
||||
|
@@ -1,8 +0,0 @@
|
||||
{ user, home }:
|
||||
{ inputs, ... }:
|
||||
{
|
||||
home-manager.users.${user}.sops.secrets = {
|
||||
"artifactory/cdp/user".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml";
|
||||
"artifactory/cdp/password".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml";
|
||||
};
|
||||
}
|
@@ -1,9 +0,0 @@
|
||||
{ user, home }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home-manager.users.${user}.home.packages = with pkgs; [
|
||||
gcc
|
||||
cmake
|
||||
gnumake
|
||||
];
|
||||
}
|
@@ -1,26 +0,0 @@
|
||||
{ user, home }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.persistence."/persist/cache"."${home}/.local/share/go" = { };
|
||||
|
||||
home-manager.users.${user} = {
|
||||
programs.go = {
|
||||
enable = true;
|
||||
goPath = ".local/share/go";
|
||||
};
|
||||
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
gopls
|
||||
go-tools
|
||||
golangci-lint
|
||||
golangci-lint-langserver
|
||||
];
|
||||
|
||||
sessionVariables = {
|
||||
GOPROXY = "goproxy.unx.sas.com";
|
||||
GONOSUMDB = "*.sas.com,sassoftware.io";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@@ -1,23 +0,0 @@
|
||||
{ user, home }:
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
in
|
||||
{
|
||||
environment.persistence."/persist/cache"."${home}/.local/share/gradle" = { };
|
||||
|
||||
home-manager.users.${user} = {
|
||||
programs.gradle = {
|
||||
enable = true;
|
||||
home = ".local/share/gradle";
|
||||
};
|
||||
|
||||
sops.templates."gradle.properties" = {
|
||||
content = ''
|
||||
cdpUser=${hmConfig.sops.placeholder."artifactory/cdp/user"}
|
||||
cdpPassword=${hmConfig.sops.placeholder."artifactory/cdp/password"}
|
||||
'';
|
||||
path = "${home}/.local/share/gradle/gradle.properties";
|
||||
};
|
||||
};
|
||||
}
|
@@ -1,8 +0,0 @@
|
||||
{ user, home }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home-manager.users.${user}.programs.java = {
|
||||
enable = true;
|
||||
package = pkgs.jdk17;
|
||||
};
|
||||
}
|
@@ -1,17 +0,0 @@
|
||||
{ user, home }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
telepresence = prev.telepresence.overrideAttrs (oldAttrs: {
|
||||
patches = oldAttrs.patches or [ ] ++ [ ./extend-timeout.patch ];
|
||||
});
|
||||
})
|
||||
];
|
||||
|
||||
home-manager.users.${user}.home.packages = with pkgs; [
|
||||
telepresence
|
||||
kubeval
|
||||
calicoctl
|
||||
];
|
||||
}
|
@@ -1,13 +0,0 @@
|
||||
diff --git a/telepresence/proxy/remote.py b/telepresence/proxy/remote.py
|
||||
index 835d42054..d910bd03f 100644
|
||||
--- a/telepresence/proxy/remote.py
|
||||
+++ b/telepresence/proxy/remote.py
|
||||
@@ -112,7 +112,7 @@ def wait_for_pod(runner: Runner, remote_info: RemoteInfo) -> None:
|
||||
runner.kubectl(
|
||||
"wait",
|
||||
"--for=condition=ready",
|
||||
- "--timeout=60s",
|
||||
+ "--timeout=240s",
|
||||
"pod/" + remote_info.pod_name,
|
||||
)
|
||||
)
|
@@ -1,12 +1,82 @@
|
||||
{ user, home }:
|
||||
{ inputs, system, ... }:
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
in
|
||||
{
|
||||
home-manager.users.${user}.home.packages = with selfPkgs; [
|
||||
sagew
|
||||
sonder
|
||||
klog
|
||||
];
|
||||
environment.persistence."/persist/cache" = {
|
||||
"${home}/.local/share/go" = { };
|
||||
"${home}/.local/share/gradle" = { };
|
||||
};
|
||||
|
||||
home-manager.users.${user} = {
|
||||
sops = {
|
||||
secrets = {
|
||||
"artifactory/cdp/user".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml";
|
||||
"artifactory/cdp/password".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml";
|
||||
"viya/orders-api/key".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml";
|
||||
"viya/orders-api/secret".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml";
|
||||
};
|
||||
|
||||
templates."gradle.properties" = {
|
||||
content = ''
|
||||
cdpUser=${hmConfig.sops.placeholder."artifactory/cdp/user"}
|
||||
cdpPassword=${hmConfig.sops.placeholder."artifactory/cdp/password"}
|
||||
'';
|
||||
path = "${home}/.local/share/gradle/gradle.properties";
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
go = {
|
||||
enable = true;
|
||||
goPath = ".local/share/go";
|
||||
};
|
||||
|
||||
gradle = {
|
||||
enable = true;
|
||||
home = ".local/share/gradle";
|
||||
};
|
||||
|
||||
java = {
|
||||
enable = true;
|
||||
package = pkgs.jdk17;
|
||||
};
|
||||
};
|
||||
|
||||
home = {
|
||||
packages =
|
||||
with pkgs;
|
||||
[
|
||||
gopls
|
||||
go-tools
|
||||
golangci-lint
|
||||
golangci-lint-langserver
|
||||
]
|
||||
++ lib.lists.optionals config.sas.build.private [
|
||||
viya4-orders-cli
|
||||
sagew
|
||||
sonder
|
||||
klog
|
||||
];
|
||||
|
||||
sessionVariables = {
|
||||
GOPROXY = "goproxy.unx.sas.com";
|
||||
GONOSUMDB = "*.sas.com,sassoftware.io";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile."viya4-orders-cli/config.yaml" = lib.mkIf config.sas.build.private {
|
||||
source = (pkgs.formats.yaml { }).generate "config.yaml" {
|
||||
clientCredentialsIdFile = hmConfig.sops.secrets."viya/orders-api/key".path;
|
||||
clientCredentialsSecretFile = hmConfig.sops.secrets."viya/orders-api/secret".path;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -2,13 +2,12 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
in
|
||||
{
|
||||
home-manager.users.${user} = {
|
||||
@@ -143,18 +142,22 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
userKnownHostsFiles =
|
||||
with selfPkgs;
|
||||
[
|
||||
ssh-known-hosts-github
|
||||
ssh-known-hosts-gitlab
|
||||
]
|
||||
++ lib.lists.optionals config.sas.build.private [
|
||||
ssh-known-hosts-sas-cldlgn
|
||||
ssh-known-hosts-sas-gitlab
|
||||
ssh-known-hosts-sas-gerrit
|
||||
ssh-known-hosts-sas-artifact
|
||||
];
|
||||
userKnownHostsFile = builtins.concatStringsSep " " (
|
||||
with pkgs.sshKnownHosts;
|
||||
(
|
||||
[
|
||||
"${home}/.ssh/known_hosts"
|
||||
github
|
||||
gitlab
|
||||
]
|
||||
++ lib.lists.optionals config.sas.build.private [
|
||||
sas-cldlgn
|
||||
sas-gitlab
|
||||
sas-gerrit
|
||||
sas-artifact
|
||||
]
|
||||
)
|
||||
);
|
||||
};
|
||||
|
||||
git.extraConfig.url = {
|
||||
|
@@ -1,29 +0,0 @@
|
||||
{ user, home }:
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
in
|
||||
{
|
||||
home-manager.users.${user} = {
|
||||
sops.secrets = {
|
||||
"viya/orders-api/key".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml";
|
||||
"viya/orders-api/secret".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml";
|
||||
};
|
||||
|
||||
home.packages = [ selfPkgs.viya4-orders-cli ];
|
||||
|
||||
xdg.configFile."viya4-orders-cli/config.yaml".source =
|
||||
(pkgs.formats.yaml { }).generate "config.yaml"
|
||||
{
|
||||
clientCredentialsIdFile = hmConfig.sops.secrets."viya/orders-api/key".path;
|
||||
clientCredentialsSecretFile = hmConfig.sops.secrets."viya/orders-api/secret".path;
|
||||
};
|
||||
};
|
||||
}
|
@@ -85,17 +85,10 @@ in
|
||||
(import ../../../common/configs/user/gui/x11 { inherit user home; })
|
||||
(import ../../../common/configs/user/gui/xdg { inherit user home; })
|
||||
|
||||
(import ./configs/console/artifactory { inherit user home; })
|
||||
(import ./configs/console/c { inherit user home; })
|
||||
(import ./configs/console/go { inherit user home; })
|
||||
(import ./configs/console/gpg { inherit user home; })
|
||||
(import ./configs/console/gradle { inherit user home; })
|
||||
(import ./configs/console/java { inherit user home; })
|
||||
(import ./configs/console/kubernetes { inherit user home; })
|
||||
(import ./configs/console/podman { inherit user home; })
|
||||
(import ./configs/console/sas { inherit user home; })
|
||||
(import ./configs/console/ssh { inherit user home; })
|
||||
(import ./configs/console/viya4-orders-cli { inherit user home; })
|
||||
|
||||
(import ./configs/gui/obsidian { inherit user home; })
|
||||
(import ./configs/gui/vscode { inherit user home; })
|
||||
|
@@ -1,5 +1,11 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
inputs.lib.overlays.default
|
||||
inputs.self.overlays.default
|
||||
inputs.nur.overlays.default
|
||||
];
|
||||
|
||||
imports = [
|
||||
inputs.disko.nixosModules.disko
|
||||
./format.nix
|
||||
|
@@ -2,12 +2,11 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
in
|
||||
{
|
||||
home-manager.users.${user} = {
|
||||
@@ -62,10 +61,14 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
userKnownHostsFiles = with selfPkgs; [
|
||||
ssh-known-hosts-github
|
||||
ssh-known-hosts-gitlab
|
||||
];
|
||||
userKnownHostsFile = builtins.concatStringsSep " " (
|
||||
with pkgs.sshKnownHosts;
|
||||
[
|
||||
"${home}/.ssh/known_hosts"
|
||||
github
|
||||
gitlab
|
||||
]
|
||||
);
|
||||
};
|
||||
|
||||
clipbook.bookmarks."SSH Key Passphrase".source = hmConfig.sops.secrets."ssh/pass".path;
|
||||
|
@@ -1,5 +1,11 @@
|
||||
{ config, inputs, ... }:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
inputs.lib.overlays.default
|
||||
inputs.self.overlays.default
|
||||
inputs.nur.overlays.default
|
||||
];
|
||||
|
||||
imports = [
|
||||
inputs.disko.nixosModules.disko
|
||||
./format.nix
|
||||
|
@@ -2,12 +2,11 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
in
|
||||
{
|
||||
home-manager.users.${user} = {
|
||||
@@ -61,10 +60,14 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
userKnownHostsFiles = with selfPkgs; [
|
||||
ssh-known-hosts-github
|
||||
ssh-known-hosts-gitlab
|
||||
];
|
||||
userKnownHostsFile = builtins.concatStringsSep " " (
|
||||
with pkgs.sshKnownHosts;
|
||||
[
|
||||
"${home}/.ssh/known_hosts"
|
||||
github
|
||||
gitlab
|
||||
]
|
||||
);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -1,7 +1,4 @@
|
||||
{ inputs, system, ... }:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
in
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
boot.kernelParams = [ "psi=1" ];
|
||||
|
||||
@@ -12,7 +9,7 @@ in
|
||||
|
||||
virtualisation.quadlet.containers = {
|
||||
prometheus-node-exporter.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-prometheus-node-exporter}";
|
||||
image = "docker-archive:${pkgs.dockerImages.prometheus-node-exporter}";
|
||||
# Allow collecting host metrics, port :9100 by default
|
||||
networks = [ "host" ];
|
||||
podmanArgs = [
|
||||
@@ -49,7 +46,7 @@ in
|
||||
};
|
||||
|
||||
prometheus-podman-exporter.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-prometheus-podman-exporter}";
|
||||
image = "docker-archive:${pkgs.dockerImages.prometheus-podman-exporter}";
|
||||
publishPorts = [ "9882:9882/tcp" ];
|
||||
volumes = [ "/run/podman/podman.sock:/run/podman/podman.sock:ro" ];
|
||||
exec = [ "--collector.enable-all" ];
|
||||
|
@@ -1,5 +1,11 @@
|
||||
{ inputs, lib, ... }:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
inputs.lib.overlays.default
|
||||
inputs.self.overlays.default
|
||||
inputs.nur.overlays.default
|
||||
];
|
||||
|
||||
imports = [
|
||||
inputs.disko.nixosModules.disko
|
||||
./format.nix
|
||||
|
@@ -2,11 +2,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
inherit (config.virtualisation.quadlet) volumes;
|
||||
inboundInterface = "wlo1";
|
||||
inboundGateway = "192.168.1.1";
|
||||
@@ -92,7 +90,7 @@ in
|
||||
|
||||
containers.tv-adguard = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-adguardhome}";
|
||||
image = "docker-archive:${pkgs.dockerImages.adguardhome}";
|
||||
volumes =
|
||||
let
|
||||
config = (pkgs.formats.yaml { }).generate "config.yaml.default" {
|
||||
|
@@ -1,5 +1,11 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
inputs.lib.overlays.default
|
||||
inputs.self.overlays.default
|
||||
inputs.nur.overlays.default
|
||||
];
|
||||
|
||||
imports = [
|
||||
inputs.disko.nixosModules.disko
|
||||
./format.nix
|
||||
|
@@ -6,10 +6,10 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./display.nix ];
|
||||
|
||||
nixpkgs.overlays = [ inputs.nvidia-patch.overlays.default ];
|
||||
|
||||
imports = [ ./display.nix ];
|
||||
|
||||
hardware = {
|
||||
enableAllFirmware = true;
|
||||
|
||||
|
@@ -3,12 +3,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) volumes containers networks;
|
||||
in
|
||||
@@ -158,7 +155,7 @@ in
|
||||
containers = {
|
||||
authelia = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-authelia}";
|
||||
image = "docker-archive:${pkgs.dockerImages.authelia}";
|
||||
volumes = [
|
||||
"${volumes.authelia.ref}:/etc/authelia"
|
||||
"${hmConfig.sops.templates.authelia-users.path}:/etc/authelia/users.yaml.default:ro"
|
||||
@@ -194,7 +191,7 @@ in
|
||||
|
||||
authelia-postgresql = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-postgresql}";
|
||||
image = "docker-archive:${pkgs.dockerImages.postgresql}";
|
||||
networks = [ networks.authelia.ref ];
|
||||
volumes = [ "${volumes.authelia-postgresql.ref}:/var/lib/postgresql/data" ];
|
||||
environments = {
|
||||
@@ -208,7 +205,7 @@ in
|
||||
};
|
||||
|
||||
authelia-redis.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-redis}";
|
||||
image = "docker-archive:${pkgs.dockerImages.redis}";
|
||||
networks = [ networks.authelia.ref ];
|
||||
volumes = [ "${volumes.authelia-redis.ref}:/var/lib/redis" ];
|
||||
exec = [ "--save 60 1" ];
|
||||
|
@@ -4,11 +4,9 @@
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
podman = lib.meta.getExe pkgs.podman;
|
||||
podmanAsUser = "${config.security.wrapperDir}/git-sudo -u ${user} ${podman}";
|
||||
@@ -218,7 +216,7 @@ in
|
||||
containers = {
|
||||
gitea = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-gitea}";
|
||||
image = "docker-archive:${pkgs.dockerImages.gitea}";
|
||||
networks = [
|
||||
networks.gitea.ref
|
||||
networks.traefik.ref
|
||||
@@ -259,7 +257,7 @@ in
|
||||
|
||||
gitea-postgresql = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-postgresql}";
|
||||
image = "docker-archive:${pkgs.dockerImages.postgresql}";
|
||||
networks = [ networks.gitea.ref ];
|
||||
volumes = [ "${volumes.gitea-postgresql.ref}:/var/lib/postgresql/data" ];
|
||||
environments = {
|
||||
@@ -274,7 +272,7 @@ in
|
||||
|
||||
gitea-act-runner = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-gitea-act-runner}";
|
||||
image = "docker-archive:${pkgs.dockerImages.gitea-act-runner}";
|
||||
networks = [ networks.gitea.ref ];
|
||||
volumes =
|
||||
let
|
||||
|
@@ -3,12 +3,10 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) networks;
|
||||
autheliaClientId = "4R5ofTZgOjO5Nrbcm9f6KqBLZXy8LwPS5s3E3BUfPS2mRy0wSV41XZGLrLgiR4Z0MblyGzW211AHL7GCCaJu5KonLUKyRjoyuiAr";
|
||||
@@ -124,7 +122,7 @@ in
|
||||
containers = {
|
||||
grafana = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-grafana}";
|
||||
image = "docker-archive:${pkgs.dockerImages.grafana}";
|
||||
networks = [
|
||||
networks.grafana.ref
|
||||
networks.traefik.ref
|
||||
@@ -140,7 +138,7 @@ in
|
||||
};
|
||||
|
||||
grafana-image-renderer.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-grafana-image-renderer}";
|
||||
image = "docker-archive:${pkgs.dockerImages.grafana-image-renderer}";
|
||||
networks = [ networks.grafana.ref ];
|
||||
};
|
||||
|
||||
|
@@ -1,19 +1,17 @@
|
||||
{ user, home }:
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
system,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) networks;
|
||||
in
|
||||
{
|
||||
home-manager.users.${user}.virtualisation.quadlet.containers.littlelink.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-littlelink-server}";
|
||||
image = "docker-archive:${pkgs.dockerImages.littlelink-server}";
|
||||
networks = [ networks.traefik.ref ];
|
||||
environments = {
|
||||
NAME = "Nikolaos Karaolidis";
|
||||
|
@@ -1,18 +1,12 @@
|
||||
{ user, home }:
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) networks;
|
||||
in
|
||||
{
|
||||
home-manager.users.${user}.virtualisation.quadlet.containers.lore.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-nginx}";
|
||||
image = "docker-archive:${pkgs.dockerImages.nginx}";
|
||||
networks = [ networks.traefik.ref ];
|
||||
volumes = [ "${./index.html}:/var/www/nginx/index.html:ro" ];
|
||||
labels = [
|
||||
|
@@ -3,11 +3,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) volumes networks;
|
||||
|
||||
@@ -83,7 +81,7 @@ in
|
||||
containers = {
|
||||
jellyfin = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-jellyfin}";
|
||||
image = "docker-archive:${pkgs.dockerImages.jellyfin}";
|
||||
networks = [
|
||||
networks.jellyfin.ref
|
||||
networks.traefik.ref
|
||||
|
@@ -9,11 +9,9 @@
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) containers volumes networks;
|
||||
|
||||
@@ -149,7 +147,7 @@ in
|
||||
containers = {
|
||||
jellyseerr = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-jellyseerr}";
|
||||
image = "docker-archive:${pkgs.dockerImages.jellyseerr}";
|
||||
networks = [
|
||||
networks.jellyfin.ref
|
||||
networks.media.ref
|
||||
|
@@ -8,11 +8,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) containers volumes networks;
|
||||
arrs = radarrs ++ sonarrs;
|
||||
@@ -44,13 +42,13 @@ in
|
||||
|
||||
containers = {
|
||||
flaresolverr.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-flaresolverr}";
|
||||
image = "docker-archive:${pkgs.dockerImages.flaresolverr}";
|
||||
networks = [ networks.flaresolverr.ref ];
|
||||
};
|
||||
|
||||
prowlarr = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-prowlarr}";
|
||||
image = "docker-archive:${pkgs.dockerImages.prowlarr}";
|
||||
networks = [
|
||||
networks.media.ref
|
||||
networks.transmission.ref
|
||||
|
@@ -7,11 +7,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) containers volumes networks;
|
||||
in
|
||||
@@ -55,7 +53,7 @@ in
|
||||
name = radarr.hostName;
|
||||
value = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-radarr}";
|
||||
image = "docker-archive:${pkgs.dockerImages.radarr}";
|
||||
networks = [
|
||||
networks.media.ref
|
||||
networks.transmission.ref
|
||||
|
@@ -8,11 +8,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) containers networks;
|
||||
arrs = radarrs ++ sonarrs;
|
||||
@@ -32,7 +30,7 @@ in
|
||||
# FIXME: https://recyclarr.dev/wiki/behavior/quality-profiles/#language
|
||||
recyclarr = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-recyclarr}";
|
||||
image = "docker-archive:${pkgs.dockerImages.recyclarr}";
|
||||
networks = [ networks.media.ref ];
|
||||
volumes = builtins.map (
|
||||
arr:
|
||||
|
@@ -7,11 +7,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) containers volumes networks;
|
||||
in
|
||||
@@ -55,7 +53,7 @@ in
|
||||
name = sonarr.hostName;
|
||||
value = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-sonarr}";
|
||||
image = "docker-archive:${pkgs.dockerImages.sonarr}";
|
||||
networks = [
|
||||
networks.media.ref
|
||||
networks.transmission.ref
|
||||
|
@@ -3,11 +3,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) volumes networks;
|
||||
in
|
||||
@@ -26,7 +24,7 @@ in
|
||||
|
||||
containers.transmission = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-transmission-protonvpn}";
|
||||
image = "docker-archive:${pkgs.dockerImages.transmission-protonvpn}";
|
||||
networks = [
|
||||
networks.transmission.ref
|
||||
networks.traefik.ref
|
||||
|
@@ -3,11 +3,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) containers volumes networks;
|
||||
autheliaClientId = "7DXUBtkdLUUkmyV8oSXidP0XiU6W7usLvYRJ9TrbHy7IflFwWPmHVmU26oLahrj8bVURiexGfAr3bIey6vnlvirnYQ8HMo55NnqH";
|
||||
@@ -164,7 +162,7 @@ in
|
||||
containers = {
|
||||
nextcloud = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-nextcloud}";
|
||||
image = "docker-archive:${pkgs.dockerImages.nextcloud}";
|
||||
networks = [
|
||||
networks.nextcloud.ref
|
||||
networks.traefik.ref
|
||||
@@ -208,7 +206,7 @@ in
|
||||
|
||||
nextcloud-postgresql = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-postgresql}";
|
||||
image = "docker-archive:${pkgs.dockerImages.postgresql}";
|
||||
networks = [ networks.nextcloud.ref ];
|
||||
volumes = [ "${volumes.nextcloud-postgresql.ref}:/var/lib/postgresql/data" ];
|
||||
environments = {
|
||||
|
@@ -3,11 +3,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) volumes networks;
|
||||
in
|
||||
@@ -85,7 +83,7 @@ in
|
||||
containers = {
|
||||
ntfy = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-ntfy}";
|
||||
image = "docker-archive:${pkgs.dockerImages.ntfy}";
|
||||
networks = [
|
||||
networks.ntfy.ref
|
||||
networks.traefik.ref
|
||||
|
@@ -3,11 +3,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) containers volumes networks;
|
||||
autheliaClientId = "3U5O3TkoIFb3bz3MMqscGEDx2wkT2G48iLLJalqSKA40zCweSBfgORGNMjDEidz4qiQ93qIoW2UlgTyLfzAwbklTvwHJPcarmXaq";
|
||||
@@ -90,7 +88,7 @@ in
|
||||
containers = {
|
||||
outline = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-outline}";
|
||||
image = "docker-archive:${pkgs.dockerImages.outline}";
|
||||
networks = [
|
||||
networks.outline.ref
|
||||
networks.traefik.ref
|
||||
@@ -143,7 +141,7 @@ in
|
||||
|
||||
outline-postgresql = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-postgresql}";
|
||||
image = "docker-archive:${pkgs.dockerImages.postgresql}";
|
||||
networks = [ networks.outline.ref ];
|
||||
volumes = [ "${volumes.outline-postgresql.ref}:/var/lib/postgresql/data" ];
|
||||
environments = {
|
||||
@@ -157,7 +155,7 @@ in
|
||||
};
|
||||
|
||||
outline-redis.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-redis}";
|
||||
image = "docker-archive:${pkgs.dockerImages.redis}";
|
||||
networks = [ networks.outline.ref ];
|
||||
volumes = [ "${volumes.outline-redis.ref}:/var/lib/redis" ];
|
||||
exec = [ "--save 60 1" ];
|
||||
|
@@ -3,12 +3,10 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
jupiterVpsConfig = inputs.self.nixosConfigurations.jupiter-vps.config;
|
||||
in
|
||||
@@ -19,7 +17,7 @@ in
|
||||
# The below containers all need to run as root to collect host metrics.
|
||||
virtualisation.quadlet.containers = {
|
||||
prometheus-node-exporter.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-prometheus-node-exporter}";
|
||||
image = "docker-archive:${pkgs.dockerImages.prometheus-node-exporter}";
|
||||
# Allow collecting host metrics, port :9100 by default
|
||||
networks = [ "host" ];
|
||||
podmanArgs = [
|
||||
@@ -56,14 +54,14 @@ in
|
||||
};
|
||||
|
||||
prometheus-podman-exporter.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-prometheus-podman-exporter}";
|
||||
image = "docker-archive:${pkgs.dockerImages.prometheus-podman-exporter}";
|
||||
publishPorts = [ "9882:9882/tcp" ];
|
||||
volumes = [ "/run/podman/podman.sock:/run/podman/podman.sock:ro" ];
|
||||
exec = [ "--collector.enable-all" ];
|
||||
};
|
||||
|
||||
prometheus-smartctl-exporter.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-prometheus-smartctl-exporter}";
|
||||
image = "docker-archive:${pkgs.dockerImages.prometheus-smartctl-exporter}";
|
||||
publishPorts = [ "9633:9633/tcp" ];
|
||||
podmanArgs = [ "--privileged" ];
|
||||
};
|
||||
@@ -84,7 +82,7 @@ in
|
||||
|
||||
containers = {
|
||||
prometheus-node-exporter.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-prometheus-node-exporter}";
|
||||
image = "docker-archive:${pkgs.dockerImages.prometheus-node-exporter}";
|
||||
networks = [ networks.prometheus.ref ];
|
||||
volumes =
|
||||
let
|
||||
@@ -100,7 +98,7 @@ in
|
||||
};
|
||||
|
||||
prometheus-podman-exporter.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-prometheus-podman-exporter}";
|
||||
image = "docker-archive:${pkgs.dockerImages.prometheus-podman-exporter}";
|
||||
networks = [ networks.prometheus.ref ];
|
||||
volumes =
|
||||
let
|
||||
@@ -111,7 +109,7 @@ in
|
||||
};
|
||||
|
||||
prometheus.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-prometheus}";
|
||||
image = "docker-archive:${pkgs.dockerImages.prometheus}";
|
||||
volumes =
|
||||
let
|
||||
prometheusConfig = (pkgs.formats.yaml { }).generate "prometheus.yaml" {
|
||||
|
@@ -3,11 +3,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) containers volumes networks;
|
||||
in
|
||||
@@ -48,7 +46,7 @@ in
|
||||
containers = {
|
||||
shlink = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-shlink}";
|
||||
image = "docker-archive:${pkgs.dockerImages.shlink}";
|
||||
networks = [
|
||||
networks.shlink.ref
|
||||
networks.traefik.ref
|
||||
@@ -97,7 +95,7 @@ in
|
||||
|
||||
shlink-web-client = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-shlink-web-client}";
|
||||
image = "docker-archive:${pkgs.dockerImages.shlink-web-client}";
|
||||
networks = [
|
||||
networks.shlink.ref
|
||||
networks.traefik.ref
|
||||
@@ -118,7 +116,7 @@ in
|
||||
|
||||
shlink-postgresql = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-postgresql}";
|
||||
image = "docker-archive:${pkgs.dockerImages.postgresql}";
|
||||
networks = [ networks.shlink.ref ];
|
||||
volumes = [ "${volumes.shlink-postgresql.ref}:/var/lib/postgresql/data" ];
|
||||
environments = {
|
||||
|
@@ -4,11 +4,9 @@
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) networks;
|
||||
in
|
||||
@@ -23,7 +21,7 @@ in
|
||||
|
||||
containers.sish = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-sish}";
|
||||
image = "docker-archive:${pkgs.dockerImages.sish}";
|
||||
networks = [
|
||||
networks.sish.ref
|
||||
networks.traefik.ref
|
||||
|
@@ -2,12 +2,10 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) networks volumes containers;
|
||||
in
|
||||
@@ -42,7 +40,7 @@ in
|
||||
containers = {
|
||||
traefik = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-traefik}";
|
||||
image = "docker-archive:${pkgs.dockerImages.traefik}";
|
||||
networks = [
|
||||
networks.traefik-ext.ref
|
||||
networks.traefik.ref
|
||||
|
@@ -3,12 +3,9 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) volumes containers networks;
|
||||
autheliaClientId = "G9g4cRccYM1tpTO8rLqziThUlZFT4BwlvittHRSbZOJK3rfkpFKUQylI7SI40KmZDzavPrQhEWXWGspS3hxrwH9PesDw5A1EECEZ";
|
||||
@@ -86,7 +83,7 @@ in
|
||||
containers = {
|
||||
vaultwarden = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-oidcwarden}";
|
||||
image = "docker-archive:${pkgs.dockerImages.oidcwarden}";
|
||||
volumes = [ "${volumes.vaultwarden.ref}:/var/lib/vaultwarden" ];
|
||||
networks = [
|
||||
networks.vaultwarden.ref
|
||||
@@ -129,7 +126,7 @@ in
|
||||
|
||||
vaultwarden-postgresql = {
|
||||
containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-postgresql}";
|
||||
image = "docker-archive:${pkgs.dockerImages.postgresql}";
|
||||
networks = [ networks.vaultwarden.ref ];
|
||||
volumes = [ "${volumes.vaultwarden-postgresql.ref}:/var/lib/postgresql/data" ];
|
||||
environments = {
|
||||
|
@@ -1,12 +1,6 @@
|
||||
{ user, home }:
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
hmConfig = config.home-manager.users.${user};
|
||||
inherit (hmConfig.virtualisation.quadlet) networks;
|
||||
in
|
||||
@@ -15,7 +9,7 @@ in
|
||||
networks.whoami = { };
|
||||
|
||||
containers.whoami.containerConfig = {
|
||||
image = "docker-archive:${selfPkgs.docker-whoami}";
|
||||
image = "docker-archive:${pkgs.dockerImages.whoami}";
|
||||
networks = [
|
||||
networks.whoami.ref
|
||||
networks.traefik.ref
|
||||
|
Reference in New Issue
Block a user