mirror of
https://github.com/nmasur/dotfiles
synced 2025-04-23 19:12:23 +00:00
Compare commits
4 Commits
9b948f45ee
...
28ffa10a59
Author | SHA1 | Date | |
---|---|---|---|
|
28ffa10a59 | ||
|
006554f545 | ||
|
1b04f9a883 | ||
|
00f23f4b9c |
@ -259,6 +259,7 @@
|
||||
notifications = "ntfy.${baseName}";
|
||||
prometheus = "prom.${baseName}";
|
||||
paperless = "paper.${baseName}";
|
||||
photos = "photos.${baseName}";
|
||||
secrets = "vault.${baseName}";
|
||||
stream = "stream.${baseName}";
|
||||
content = "cloud.${baseName}";
|
||||
|
@ -109,6 +109,7 @@ inputs.nixpkgs.lib.nixosSystem rec {
|
||||
services.audiobookshelf.enable = true;
|
||||
services.bind.enable = true;
|
||||
services.caddy.enable = true;
|
||||
services.immich.enable = true;
|
||||
services.jellyfin.enable = true;
|
||||
services.nextcloud.enable = true;
|
||||
services.calibre-web.enable = true;
|
||||
|
@ -101,6 +101,10 @@
|
||||
type = lib.types.str;
|
||||
description = "Hostname for document server (paperless-ngx).";
|
||||
};
|
||||
photos = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Hostname for photo management (Immich).";
|
||||
};
|
||||
prometheus = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Hostname for Prometheus server.";
|
||||
|
@ -6,6 +6,8 @@
|
||||
}:
|
||||
{
|
||||
|
||||
unfreePackages = [ "gh-copilot" ];
|
||||
|
||||
home-manager.users.${config.user} = {
|
||||
|
||||
programs.gh = lib.mkIf config.home-manager.users.${config.user}.programs.git.enable {
|
||||
@ -15,6 +17,7 @@
|
||||
extensions = [
|
||||
pkgs.gh-collaborators
|
||||
pkgs.gh-dash
|
||||
pkgs.gh-copilot
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -16,7 +16,9 @@
|
||||
nps = "nix repl --expr 'import <nixpkgs>{}'";
|
||||
nixo = "man configuration.nix";
|
||||
nixh = "man home-configuration.nix";
|
||||
nr = "rebuild-nixos";
|
||||
nr = {
|
||||
function = "rebuild-nixos";
|
||||
};
|
||||
nro = "rebuild-nixos offline";
|
||||
hm = "rebuild-home";
|
||||
};
|
||||
@ -43,18 +45,16 @@
|
||||
rebuild-nixos = {
|
||||
body = ''
|
||||
if test "$argv[1]" = "offline"
|
||||
set option "--option substitute false"
|
||||
set option "--option substitute false "
|
||||
end
|
||||
git -C ${config.dotfilesPath} add --intent-to-add --all
|
||||
commandline -r "doas nixos-rebuild switch $option --flake ${config.dotfilesPath}#${config.networking.hostName}"
|
||||
commandline --function execute
|
||||
echo "doas nixos-rebuild switch $option--flake ${config.dotfilesPath}#${config.networking.hostName}"
|
||||
'';
|
||||
};
|
||||
rebuild-home = {
|
||||
body = ''
|
||||
git -C ${config.dotfilesPath} add --intent-to-add --all
|
||||
commandline -r "${pkgs.home-manager}/bin/home-manager switch --flake ${config.dotfilesPath}#${config.networking.hostName}";
|
||||
commandline --function execute
|
||||
echo "${pkgs.home-manager}/bin/home-manager switch --flake ${config.dotfilesPath}#${config.networking.hostName}";
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -10,7 +10,9 @@
|
||||
|
||||
programs.fish = {
|
||||
shellAbbrs = {
|
||||
nr = lib.mkForce "rebuild-darwin";
|
||||
nr = {
|
||||
function = lib.mkForce "rebuild-darwin";
|
||||
};
|
||||
nro = lib.mkForce "rebuild-darwin offline";
|
||||
};
|
||||
functions = {
|
||||
@ -20,15 +22,13 @@
|
||||
set option "--option substitute false"
|
||||
end
|
||||
git -C ${config.dotfilesPath} add --intent-to-add --all
|
||||
commandline -r "darwin-rebuild switch $option --flake ${config.dotfilesPath}#lookingglass"
|
||||
commandline --function execute
|
||||
echo "darwin-rebuild switch $option--flake ${config.dotfilesPath}#lookingglass"
|
||||
'';
|
||||
};
|
||||
rebuild-home = lib.mkForce {
|
||||
body = ''
|
||||
git -C ${config.dotfilesPath} add --intent-to-add --all
|
||||
commandline -r "${pkgs.home-manager}/bin/home-manager switch --flake ${config.dotfilesPath}#lookingglass";
|
||||
commandline --function execute
|
||||
echo "${pkgs.home-manager}/bin/home-manager switch --flake ${config.dotfilesPath}#lookingglass";
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -15,6 +15,7 @@
|
||||
./cloudflare.nix
|
||||
./filebrowser.nix
|
||||
./identity.nix
|
||||
./immich.nix
|
||||
./irc.nix
|
||||
./gitea-runner.nix
|
||||
./gitea.nix
|
||||
|
42
modules/nixos/services/immich.nix
Normal file
42
modules/nixos/services/immich.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
|
||||
config = lib.mkIf config.services.immich.enable {
|
||||
|
||||
services.immich = {
|
||||
port = 2283;
|
||||
group = "shared";
|
||||
database.enable = true;
|
||||
redis.enable = true;
|
||||
machine-learning.enable = true;
|
||||
machine-learning.environment = { };
|
||||
mediaLocation = "/data/images";
|
||||
secretsFile = null;
|
||||
settings.server.externalDomain = "https://${config.hostnames.photos}";
|
||||
environment = {
|
||||
IMMICH_ENV = "production";
|
||||
IMMICH_LOG_LEVEL = "log";
|
||||
NO_COLOR = "false";
|
||||
IMMICH_TRUSTED_PROXIES = "127.0.0.1";
|
||||
};
|
||||
};
|
||||
|
||||
caddy.routes = [
|
||||
{
|
||||
match = [ { host = [ config.hostnames.photos ]; } ];
|
||||
handle = [
|
||||
{
|
||||
handler = "reverse_proxy";
|
||||
upstreams = [ { dial = "localhost:${builtins.toString config.services.immich.port}"; } ];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
# Configure Cloudflare DNS to point to this machine
|
||||
services.cloudflare-dyndns.domains = [ config.hostnames.photos ];
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -10,6 +10,7 @@
|
||||
./auto-upgrade.nix
|
||||
./doas.nix
|
||||
./journald.nix
|
||||
./shared.nix
|
||||
./user.nix
|
||||
./timezone.nix
|
||||
];
|
||||
|
14
modules/nixos/system/shared.nix
Normal file
14
modules/nixos/system/shared.nix
Normal file
@ -0,0 +1,14 @@
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
|
||||
config = lib.mkIf config.server {
|
||||
|
||||
# Create a shared group for many services
|
||||
users.groups.shared = { };
|
||||
|
||||
# Give the human user access to the shared group
|
||||
users.users.${config.user}.extraGroups = [ config.users.groups.shared.name ];
|
||||
|
||||
};
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user