Compare commits
41 commits
12cc5979f2
...
c3d019a46e
Author | SHA1 | Date | |
---|---|---|---|
|
c3d019a46e | ||
|
01ad8403a1 | ||
|
2cdcb2b6e7 | ||
|
216812be22 | ||
|
fba1525ff6 | ||
|
d28b38fc94 | ||
|
62a27d27af | ||
|
6a629c392a | ||
|
9e1d870b63 | ||
|
1f4a3929d0 | ||
|
d57aa54233 | ||
|
daa9b33754 | ||
|
1b21323d93 | ||
|
e7066d45a4 | ||
|
d02e25eb96 | ||
|
7ca6dd60b0 | ||
|
80a42a1570 | ||
|
858f198c1a | ||
|
274ca1c22c | ||
|
593acfb94a | ||
|
3dd0c6593c | ||
|
e6c57c65e2 | ||
|
8ac70ea7a8 | ||
|
71d7857c98 | ||
|
3aa807f921 | ||
|
8f1782ec10 | ||
|
eb4af3e6bd | ||
|
50feffb7f7 | ||
|
64cad6d72b | ||
|
bbb1e0dbdc | ||
|
38fc128838 | ||
|
5a6554ee6b | ||
|
ed8ff6fe90 | ||
|
594863ab7d | ||
|
8c3dbb4fe9 | ||
|
b91d90c2fe | ||
|
cb76031ca7 | ||
|
9be5147133 | ||
|
c98426be42 | ||
|
fd46cf4c10 | ||
|
e0b9c4e99f |
15
.forgejo/workflows/demo.yaml
Normal file
15
.forgejo/workflows/demo.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: 0 3 * * *
|
||||||
|
push:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: native
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- run: nix build self#loptland
|
||||||
|
|
||||||
|
|
844
flake.lock
844
flake.lock
File diff suppressed because it is too large
Load diff
35
flake.nix
35
flake.nix
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
###
|
###
|
||||||
# hyprland stuff
|
# hyprland stuff
|
||||||
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
hyprlock.url = "github:hyprwm/hyprlock";
|
hyprlock.url = "github:hyprwm/hyprlock";
|
||||||
hyprland-plugins = {
|
hyprland-plugins = {
|
||||||
url = "github:hyprwm/hyprland-plugins";
|
url = "github:hyprwm/hyprland-plugins";
|
||||||
|
@ -56,12 +56,6 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
# still not sure if I like helix or nvim more, for now helix does mostly everything I need it to
|
|
||||||
kickstartnvim = {
|
|
||||||
url = "github:Daholli/kickstart-nix-nvim";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
helix = {
|
helix = {
|
||||||
url = "github:helix-editor/helix";
|
url = "github:helix-editor/helix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -76,13 +70,18 @@
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
|
|
||||||
## temporary
|
## temporary
|
||||||
zen-browser.url = "github:ch4og/zen-browser-flake";
|
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
||||||
|
|
||||||
raspberry-pi-nix = {
|
raspberry-pi-nix = {
|
||||||
url = "github:nix-community/raspberry-pi-nix";
|
url = "github:nix-community/raspberry-pi-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
|
||||||
|
catppuccin.url = "github:catppuccin/nix";
|
||||||
|
|
||||||
|
nix-gaming.url = "github:fufexan/nix-gaming";
|
||||||
|
|
||||||
################
|
################
|
||||||
## inputs for dev shells
|
## inputs for dev shells
|
||||||
|
|
||||||
|
@ -119,14 +118,20 @@
|
||||||
|
|
||||||
overlays = with inputs; [
|
overlays = with inputs; [
|
||||||
snowfall-flake.overlays.default
|
snowfall-flake.overlays.default
|
||||||
kickstartnvim.overlays.default
|
|
||||||
hyprpanel.overlay
|
hyprpanel.overlay
|
||||||
];
|
];
|
||||||
|
|
||||||
|
homes.modules = with inputs; [
|
||||||
|
sops-nix.homeManagerModules.sops
|
||||||
|
catppuccin.homeManagerModules.catppuccin
|
||||||
|
];
|
||||||
|
|
||||||
systems.modules.nixos = with inputs; [
|
systems.modules.nixos = with inputs; [
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
nix-ld.nixosModules.nix-ld
|
nix-ld.nixosModules.nix-ld
|
||||||
sops-nix.nixosModules.sops
|
sops-nix.nixosModules.sops
|
||||||
|
|
||||||
|
catppuccin.nixosModules.catppuccin
|
||||||
];
|
];
|
||||||
|
|
||||||
systems.hosts.nixberry.modules = with inputs; [
|
systems.hosts.nixberry.modules = with inputs; [
|
||||||
|
@ -134,9 +139,19 @@
|
||||||
raspberry-pi-nix.nixosModules.sd-image
|
raspberry-pi-nix.nixosModules.sd-image
|
||||||
];
|
];
|
||||||
|
|
||||||
|
systems.hosts.loptland.modules = with inputs; [
|
||||||
|
simple-nixos-mailserver.nixosModules.default
|
||||||
|
];
|
||||||
|
|
||||||
systems.hosts.wsl.modules = with inputs; [ nixos-wsl.nixosModules.default ];
|
systems.hosts.wsl.modules = with inputs; [ nixos-wsl.nixosModules.default ];
|
||||||
}
|
}
|
||||||
// {
|
// rec {
|
||||||
self = inputs.self;
|
self = inputs.self;
|
||||||
|
|
||||||
|
hydraJobs = {
|
||||||
|
hosts = lib.mapAttrs (_: cfg: cfg.config.system.build.toplevel) (
|
||||||
|
lib.filterAttrs (name: cfg: name != "nixberry") self.outputs.nixosConfigurations
|
||||||
|
);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,4 @@ with lib.wyrdgard;
|
||||||
direnv = enabled;
|
direnv = enabled;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.stateVersion = "24.05";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,8 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
catppuccin.fish.enable = true;
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
fish = {
|
fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -37,7 +39,7 @@ in
|
||||||
'';
|
'';
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
vim = "hx";
|
vim = "hx";
|
||||||
ls = "eza -lh --icons --git";
|
ls = "eza -lah --icons --git";
|
||||||
lss = "ls --total-size";
|
lss = "ls --total-size";
|
||||||
};
|
};
|
||||||
plugins = with pkgs.fishPlugins; [
|
plugins = with pkgs.fishPlugins; [
|
||||||
|
|
|
@ -16,6 +16,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
catppuccin.starship.enable = true;
|
||||||
programs = {
|
programs = {
|
||||||
fish.shellInit = "
|
fish.shellInit = "
|
||||||
starship init fish | source
|
starship init fish | source
|
||||||
|
|
|
@ -19,6 +19,8 @@ in
|
||||||
|
|
||||||
home.sessionVariables.TERMINAL = "kitty";
|
home.sessionVariables.TERMINAL = "kitty";
|
||||||
|
|
||||||
|
catppuccin.kitty.enable = true;
|
||||||
|
|
||||||
# TODO: move this to a thunar specific module
|
# TODO: move this to a thunar specific module
|
||||||
home.file.".config/Thunar/uca.xml".text = ''
|
home.file.".config/Thunar/uca.xml".text = ''
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
@ -40,7 +42,7 @@ in
|
||||||
|
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
themeFile = "tokyo_night_night";
|
# themeFile = "tokyo_night_night";
|
||||||
font = {
|
font = {
|
||||||
name = "Code New Roman";
|
name = "Code New Roman";
|
||||||
size = 15;
|
size = 15;
|
||||||
|
|
|
@ -52,6 +52,7 @@ in
|
||||||
];
|
];
|
||||||
strategy = "incremental";
|
strategy = "incremental";
|
||||||
};
|
};
|
||||||
|
lfs."https://git.christophhollizeck.dev/Daholli/nixos-config.git/info/lfs".locksverify = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -41,12 +41,13 @@ in
|
||||||
!**/appsettings.json
|
!**/appsettings.json
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
catppuccin.helix.enable = true;
|
||||||
|
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = helix-pkg;
|
package = helix-pkg;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
settings = {
|
settings = {
|
||||||
theme = "tokyonight";
|
|
||||||
editor = {
|
editor = {
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
line-number = "relative";
|
line-number = "relative";
|
||||||
|
@ -152,11 +153,21 @@ in
|
||||||
config.provideFormatter = true;
|
config.provideFormatter = true;
|
||||||
config.json.validate.enable = true;
|
config.json.validate.enable = true;
|
||||||
};
|
};
|
||||||
|
vscode-html-language-server = {
|
||||||
|
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-html-language-server";
|
||||||
|
args = [ "--stdio" ];
|
||||||
|
config.provideFormatter = true;
|
||||||
|
};
|
||||||
vscode-css-language-server = {
|
vscode-css-language-server = {
|
||||||
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server";
|
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server";
|
||||||
args = [ "--stdio" ];
|
args = [ "--stdio" ];
|
||||||
config.provideFormatter = true;
|
config.provideFormatter = true;
|
||||||
};
|
};
|
||||||
|
vscode-eslint-language-server = {
|
||||||
|
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-eslint-language-server";
|
||||||
|
args = [ "--stdio" ];
|
||||||
|
config.provideFormatter = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -610,5 +610,9 @@ in
|
||||||
text = builtins.toJSON settings;
|
text = builtins.toJSON settings;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs.nerd-fonts; [
|
||||||
|
jetbrains-mono
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,11 +17,15 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
catppuccin.flavor = "mocha";
|
||||||
|
catppuccin.enable = true;
|
||||||
|
|
||||||
${namespace}.home.extraOptions = {
|
${namespace}.home.extraOptions = {
|
||||||
dconf.settings = {
|
catppuccin.flavor = "mocha";
|
||||||
"org/gnome/desktop/interface" = {
|
catppuccin.enable = true;
|
||||||
color-scheme = "prefer-dark";
|
|
||||||
};
|
dconf = {
|
||||||
|
settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
||||||
};
|
};
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
|
@ -40,6 +44,5 @@ in
|
||||||
platformTheme = "gnome";
|
platformTheme = "gnome";
|
||||||
style = "adwaita-dark";
|
style = "adwaita-dark";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ in
|
||||||
users = [
|
users = [
|
||||||
"root"
|
"root"
|
||||||
config.${namespace}.user.name
|
config.${namespace}.user.name
|
||||||
];
|
] ++ optional config.services.hydra.enable "hydra hydra-evaluator hydra-queue-runner";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
package = cfg.package;
|
package = cfg.package;
|
||||||
|
@ -71,6 +71,7 @@ in
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
trusted-users = users;
|
trusted-users = users;
|
||||||
allowed-users = users;
|
allowed-users = users;
|
||||||
|
allowed-uris = "github: https://github.com/ git+https://github.com/ gitlab: https://gitlab.com/ git+https://gitlab.com/";
|
||||||
substituters = [
|
substituters = [
|
||||||
cfg.default-substituter.url
|
cfg.default-substituter.url
|
||||||
] ++ (mapAttrsToList (name: value: name) cfg.extra-substituters);
|
] ++ (mapAttrsToList (name: value: name) cfg.extra-substituters);
|
||||||
|
|
|
@ -28,15 +28,11 @@ in
|
||||||
fonts.packages =
|
fonts.packages =
|
||||||
with pkgs;
|
with pkgs;
|
||||||
[
|
[
|
||||||
(nerdfonts.override {
|
|
||||||
fonts = [
|
|
||||||
"CodeNewRoman"
|
|
||||||
"NerdFontsSymbolsOnly"
|
|
||||||
];
|
|
||||||
})
|
|
||||||
font-awesome
|
font-awesome
|
||||||
powerline-fonts
|
powerline-fonts
|
||||||
powerline-symbols
|
powerline-symbols
|
||||||
|
nerd-fonts.code-new-roman
|
||||||
|
nerd-fonts.symbols-only
|
||||||
]
|
]
|
||||||
++ cfg.fonts;
|
++ cfg.fonts;
|
||||||
};
|
};
|
||||||
|
|
|
@ -24,7 +24,7 @@ in
|
||||||
|
|
||||||
programs.noisetorch.enable = true;
|
programs.noisetorch.enable = true;
|
||||||
|
|
||||||
hardware.pulseaudio = disabled;
|
services.pulseaudio = disabled;
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
|
|
23
modules/nixos/tools/devenv/default.nix
Normal file
23
modules/nixos/tools/devenv/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
namespace,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.tools.devenv;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.tools.devenv = {
|
||||||
|
enable = mkEnableOption "Whether or not to enable direnv.";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.devenv
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -49,6 +49,7 @@ in
|
||||||
safe = {
|
safe = {
|
||||||
directory = "${config.users.users.${user.name}.home}/projects/config";
|
directory = "${config.users.users.${user.name}.home}/projects/config";
|
||||||
};
|
};
|
||||||
|
lfs."https://git.christophhollizeck.dev/Daholli/nixos-config.git/info/lfs".locksverify = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
3
overlays/pyfa/default.nix
Normal file
3
overlays/pyfa/default.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{ channels, ... }:
|
||||||
|
|
||||||
|
final: prev: { inherit (channels.nixpkgs-pyfa) pyfa; }
|
|
@ -5,6 +5,11 @@ factorio:
|
||||||
forgejo:
|
forgejo:
|
||||||
db:
|
db:
|
||||||
password: ENC[AES256_GCM,data:CicLsCG2WCtiKMcz3DF5eVVaT8A=,iv:SPO1H4AZwo5FjJWkf1OS7aPOrpTGxqsAj4q3cuuWAbA=,tag:0snK8RyAd8heNvui2sbSNw==,type:str]
|
password: ENC[AES256_GCM,data:CicLsCG2WCtiKMcz3DF5eVVaT8A=,iv:SPO1H4AZwo5FjJWkf1OS7aPOrpTGxqsAj4q3cuuWAbA=,tag:0snK8RyAd8heNvui2sbSNw==,type:str]
|
||||||
|
mail:
|
||||||
|
password: ENC[AES256_GCM,data:XgQZM0MBUEELyhH7UvyyMEiUABs=,iv:m3Wzs2SAPQ2w6UC02lpTvwd83Dt0LEzqdIj65HeOrbU=,tag:3cr5dnjeyoJ4ze9RFd9K5g==,type:str]
|
||||||
|
passwordHash: ENC[AES256_GCM,data:hHGJBUEtCi/gErZ5vm0gsEFqyIDNkED4scR4NAOSzbiiZAYTMg++yqf3hfjjwWV3wTPswNpzzw+gYKEH,iv:wDM5IOOamopFpMEkUit4y7LBZi8CJff3+Tc08lK4IXI=,tag:FaaaohtA+vBFwjDugoemQw==,type:str]
|
||||||
|
runner:
|
||||||
|
token: ENC[AES256_GCM,data:PyJvFNtq18h3zDwBT/jDYdh7noQ1Si1gpTnVAPEbKGQFydIMk0CQWQDCjiK6xA==,iv:ceGpyyMnLrdJTPEw6ViDeZVy83dRWi6tViks6K7p1UE=,tag:zEFP/8fI9nxJdf4BmJH7Uw==,type:str]
|
||||||
netcup:
|
netcup:
|
||||||
customer_number: ENC[AES256_GCM,data:9+QboNg1,iv:Tg9ylJUM8L/kzqFmk2uIsD9noqnp5wIxr5GVXMsZwB8=,tag:2qRggSIkPHuCQYDWCfka5Q==,type:str]
|
customer_number: ENC[AES256_GCM,data:9+QboNg1,iv:Tg9ylJUM8L/kzqFmk2uIsD9noqnp5wIxr5GVXMsZwB8=,tag:2qRggSIkPHuCQYDWCfka5Q==,type:str]
|
||||||
api:
|
api:
|
||||||
|
@ -34,8 +39,8 @@ sops:
|
||||||
UllqSDR1YWl6aU1jSnY2WE9oczg5Q28KfN15tFxXHrJmOHySK+cyLi2bFqArg244
|
UllqSDR1YWl6aU1jSnY2WE9oczg5Q28KfN15tFxXHrJmOHySK+cyLi2bFqArg244
|
||||||
bNTYyuBUtBW1Y/EuNpbyLjSNQpKZWFz7grE64uxrNQHP865N3wv0gg==
|
bNTYyuBUtBW1Y/EuNpbyLjSNQpKZWFz7grE64uxrNQHP865N3wv0gg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2024-11-12T14:29:12Z"
|
lastmodified: "2024-12-28T08:37:33Z"
|
||||||
mac: ENC[AES256_GCM,data:lKx1qAe689wkWkrMRvqHpE0zmv+ShLwpApBw2C4+JEuuHnoN1W7aoB/GQRkWzmImCCy9odzM2yoUa0mJogl0i+bddblrl+ZS0uPmPQrm3pM0sl876pelogxKuNpQWS8PRNDe24z3m06f0TozhfPF9D2ywH30tFH8naZONfWTTUU=,iv:tDhJVlWnTHnjZak32pgnUZ8XtM6TK9o2gZ0X3tcQD4Q=,tag:PcMS/5DpEkDkk+U0GG918w==,type:str]
|
mac: ENC[AES256_GCM,data:S2UcgNVmk+BSHaUVodsDHjwCIB5cAIfv+tb8mhTh9hktZBFxfQsRgrH+dFlpe7FmbWRBF8XnOIlsf74ytamfmGVEqBfyLA8gzdiAt9oFmOVdCFGf29IaSQjk8nehaYBPM5CJ35ihhzw8yC6S3JmgGuGuzmtDtJq61Zp68WQ5tow=,iv:KKo65bjuNuvzclAFALEGdKn134TxBhDjyjbX3ULEuV8=,tag:odGFLbfijulc9/hmjrPRxQ==,type:str]
|
||||||
pgp: []
|
pgp: []
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.9.1
|
version: 3.9.2
|
||||||
|
|
13
shells/java/default.nix
Normal file
13
shells/java/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
mkShell,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
mkShell {
|
||||||
|
# Create your shell
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
jdt-language-server
|
||||||
|
zulu8
|
||||||
|
zulu21
|
||||||
|
];
|
||||||
|
}
|
|
@ -19,6 +19,11 @@ in
|
||||||
raspberry-pi-5
|
raspberry-pi-5
|
||||||
];
|
];
|
||||||
|
|
||||||
|
services.tailscale = {
|
||||||
|
enable = true;
|
||||||
|
useRoutingFeatures = "server";
|
||||||
|
};
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
interfaces.end0 = {
|
interfaces.end0 = {
|
||||||
ipv4.addresses = [
|
ipv4.addresses = [
|
||||||
|
|
|
@ -11,6 +11,7 @@ let
|
||||||
|
|
||||||
domainName = "christophhollizeck.dev";
|
domainName = "christophhollizeck.dev";
|
||||||
forgejoPort = 3000;
|
forgejoPort = 3000;
|
||||||
|
hydraPort = 2000;
|
||||||
|
|
||||||
cfg.enableAcme = true;
|
cfg.enableAcme = true;
|
||||||
|
|
||||||
|
@ -26,6 +27,15 @@ in
|
||||||
"forgejo/db/password" = {
|
"forgejo/db/password" = {
|
||||||
inherit sopsFile;
|
inherit sopsFile;
|
||||||
};
|
};
|
||||||
|
"forgejo/mail/password" = {
|
||||||
|
inherit sopsFile;
|
||||||
|
};
|
||||||
|
"forgejo/mail/passwordHash" = {
|
||||||
|
inherit sopsFile;
|
||||||
|
};
|
||||||
|
"forgejo/runner/token" = {
|
||||||
|
inherit sopsFile;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,12 +53,31 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"hydra.${domainName}" = {
|
||||||
|
forceSSL = cfg.enableAcme;
|
||||||
|
useACMEHost = mkIf cfg.enableAcme domainName;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://localhost:${toString hydraPort}/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
"${domainName}" = {
|
"${domainName}" = {
|
||||||
forceSSL = cfg.enableAcme;
|
forceSSL = cfg.enableAcme;
|
||||||
useACMEHost = mkIf cfg.enableAcme domainName;
|
useACMEHost = mkIf cfg.enableAcme domainName;
|
||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
return = "404";
|
root = /var/www/website;
|
||||||
|
index = "index.html";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"_" = {
|
||||||
|
forceSSL = cfg.enableAcme;
|
||||||
|
useACMEHost = mkIf cfg.enableAcme domainName;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "https://${domainName}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -69,9 +98,78 @@ in
|
||||||
HTTP_PORT = forgejoPort;
|
HTTP_PORT = forgejoPort;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mailer = {
|
||||||
|
ENABLED = true;
|
||||||
|
PROTOCOL = "smtps";
|
||||||
|
FROM = "no-reply@${domainName}";
|
||||||
|
SMTP_ADDR = "mail.${domainName}";
|
||||||
|
USER = "forgejo@${domainName}";
|
||||||
|
};
|
||||||
|
|
||||||
service.DISABLE_REGISTRATION = true;
|
service.DISABLE_REGISTRATION = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
secrets = {
|
||||||
|
mailer.PASSWD = config.sops.secrets."forgejo/mail/password".path;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mailserver = {
|
||||||
|
enable = true;
|
||||||
|
fqdn = "mail.${domainName}";
|
||||||
|
domains = [ domainName ];
|
||||||
|
|
||||||
|
loginAccounts = {
|
||||||
|
"forgejo@${domainName}" = {
|
||||||
|
hashedPasswordFile = config.sops.secrets."forgejo/mail/passwordHash".path;
|
||||||
|
aliases = [ "no-reply@${domainName}" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
certificateScheme = "acme-nginx";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.hydra = {
|
||||||
|
enable = true;
|
||||||
|
hydraURL = "http://localhost:${toString hydraPort}";
|
||||||
|
port = hydraPort;
|
||||||
|
notificationSender = "hydra@localhost";
|
||||||
|
buildMachinesFiles = [ ];
|
||||||
|
useSubstitutes = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# services.gitea-actions-runner = {
|
||||||
|
# package = pkgs.forgejo-actions-runner;
|
||||||
|
# instances.default = {
|
||||||
|
# enable = true;
|
||||||
|
# name = "monolith";
|
||||||
|
# url = "https://git.${domainName}";
|
||||||
|
# tokenFile = config.sops.secrets."forgejo/runner/token".path;
|
||||||
|
# labels = [
|
||||||
|
# "native:host"
|
||||||
|
# ];
|
||||||
|
# hostPackages = with pkgs; [
|
||||||
|
# bash
|
||||||
|
# coreutils
|
||||||
|
# curl
|
||||||
|
# gawk
|
||||||
|
# gitMinimal
|
||||||
|
# gnused
|
||||||
|
# nodejs
|
||||||
|
# wget
|
||||||
|
# ];
|
||||||
|
# settings = {
|
||||||
|
# log.level = "info";
|
||||||
|
# runner = {
|
||||||
|
# capacity = 1;
|
||||||
|
# timeout = "3h";
|
||||||
|
# shutdown_timeout = "3s";
|
||||||
|
# fetch_timeout = "5s";
|
||||||
|
# fetch_inteval = "2s";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [
|
networking.firewall.allowedTCPPorts = [
|
||||||
forgejoPort
|
forgejoPort
|
||||||
|
|
154
systems/x86_64-linux/loptland/index.html
Normal file
154
systems/x86_64-linux/loptland/index.html
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Christoph Hollizeck</title>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
height: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
height: inherit;
|
||||||
|
font-family: monospace;
|
||||||
|
background-color: #2e2c42;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-box {
|
||||||
|
margin: auto;
|
||||||
|
margin-top: 10%;
|
||||||
|
position: relative;
|
||||||
|
width: 50vw;
|
||||||
|
height: 50vw;
|
||||||
|
max-width: 828px;
|
||||||
|
max-height: 828px;
|
||||||
|
min-width: 541px;
|
||||||
|
min-height: 541px;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 15%;
|
||||||
|
color: #90A0C1;
|
||||||
|
background-color: #151823;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-box:after {
|
||||||
|
position: absolute;
|
||||||
|
content: "";
|
||||||
|
top: 5vw;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: -1;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
margin: auto;
|
||||||
|
transform: scale(0.75);
|
||||||
|
-webkit-filter: blur(5vw);
|
||||||
|
-moz-filter: blur(5vw);
|
||||||
|
-ms-filter: blur(5vw);
|
||||||
|
filter: blur(5vw);
|
||||||
|
background: linear-gradient(270deg, #0fffc1, #7e0fff);
|
||||||
|
background-size: 200% 200%;
|
||||||
|
animation: animateGlow 10s ease infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 10%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 13px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hyperlinks {
|
||||||
|
margin-top: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Style all font awesome icons */
|
||||||
|
.fa,
|
||||||
|
.fa-brands {
|
||||||
|
padding: 20px;
|
||||||
|
font-size: 30px;
|
||||||
|
width: 50px;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa:visited {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add a hover effect if you want */
|
||||||
|
.fa:hover {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes animateGlow {
|
||||||
|
0% {
|
||||||
|
background-position: 0% 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
background-position: 100% 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
background-position: 0% 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes textColor {
|
||||||
|
0% {
|
||||||
|
color: #7e0fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
color: #0fffc1;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
color: #7e0fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="content-box">
|
||||||
|
<div class="text-box">
|
||||||
|
<h1> Christoph Hollizeck </h1>
|
||||||
|
|
||||||
|
<p> "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
||||||
|
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
||||||
|
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
||||||
|
pariatur.
|
||||||
|
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p> "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
||||||
|
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
||||||
|
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
||||||
|
pariatur.
|
||||||
|
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="hyperlinks">
|
||||||
|
<a href="https://git.christophhollizeck.dev" class="fa fa-git"></a>
|
||||||
|
<a href="https://https://www.linkedin.com/in/christoph-hollizeck-650007214/" class="fa fa-linkedin"></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
namespace,
|
namespace,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
@ -18,7 +19,9 @@ in
|
||||||
|
|
||||||
# eve
|
# eve
|
||||||
bottles
|
bottles
|
||||||
|
pyfa
|
||||||
|
|
||||||
|
unzip
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.pathsToLink = [ "/libexec" ];
|
environment.pathsToLink = [ "/libexec" ];
|
||||||
|
@ -32,6 +35,11 @@ in
|
||||||
backupFileExtension = ".bak";
|
backupFileExtension = ".bak";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.tailscale = {
|
||||||
|
enable = true;
|
||||||
|
useRoutingFeatures = "server";
|
||||||
|
};
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
distributedBuilds = true;
|
distributedBuilds = true;
|
||||||
settings.builders-use-substitutes = true;
|
settings.builders-use-substitutes = true;
|
||||||
|
@ -100,7 +108,7 @@ in
|
||||||
|
|
||||||
windowrulev2 = [
|
windowrulev2 = [
|
||||||
"workspace 8 silent, class:^(steam)$, title:^(Friends List)"
|
"workspace 8 silent, class:^(steam)$, title:^(Friends List)"
|
||||||
"workspace 8 silent, class:^(vesktop)$, title:^(Discord)"
|
"workspace 8 silent, class:^(discord)$, title:^(Discord)"
|
||||||
"workspace 7 silent, class:^(com.obsproject.Studio)$"
|
"workspace 7 silent, class:^(com.obsproject.Studio)$"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -110,6 +118,8 @@ in
|
||||||
factorio-server = disabled;
|
factorio-server = disabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
tools.devenv = enabled;
|
||||||
|
|
||||||
system = {
|
system = {
|
||||||
hardware = {
|
hardware = {
|
||||||
bluetooth = enabled;
|
bluetooth = enabled;
|
||||||
|
|
Loading…
Reference in a new issue