commit
55a416c7d7
130
flake.lock
generated
130
flake.lock
generated
@ -1,5 +1,28 @@
|
||||
{
|
||||
"nodes": {
|
||||
"apple-fonts": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"ny": "ny",
|
||||
"sf-arabic": "sf-arabic",
|
||||
"sf-compact": "sf-compact",
|
||||
"sf-mono": "sf-mono",
|
||||
"sf-pro": "sf-pro"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732029343,
|
||||
"narHash": "sha256-sAOEhA/vfyAKggwyI3PNy2xeNzb/USZl4YNpeSzMRBI=",
|
||||
"owner": "lyndeno",
|
||||
"repo": "apple-fonts.nix",
|
||||
"rev": "714767021b57d0d30de35eb90e4b748fbbb9c99f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lyndeno",
|
||||
"repo": "apple-fonts.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@ -23,16 +46,16 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726989464,
|
||||
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
|
||||
"lastModified": 1732466619,
|
||||
"narHash": "sha256-T1e5oceypZu3Q8vzICjv1X/sGs9XfJRMW5OuXHgpB3c=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
|
||||
"rev": "f3111f62a23451114433888902a55cf0692b408d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.05",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@ -58,17 +81,18 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1728067476,
|
||||
"narHash": "sha256-/uJcVXuBt+VFCPQIX+4YnYrHaubJSx4HoNsJVNRgANM=",
|
||||
"owner": "NixOS",
|
||||
"lastModified": 1731319897,
|
||||
"narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6e6b3dd395c3b1eb9be9f2d096383a8d05add030",
|
||||
"rev": "dc460ec76cbff0e66e269457d7b728432263166c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-24.05",
|
||||
"type": "indirect"
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
@ -88,11 +112,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1728018373,
|
||||
"narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=",
|
||||
"lastModified": 1732521221,
|
||||
"narHash": "sha256-2ThgXBUXAE1oFsVATK1ZX9IjPcS4nKFOAjhPNKuiMn0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "bc947f541ae55e999ffdb4013441347d83b00feb",
|
||||
"rev": "4633a7c72337ea8fd23a4f2ba3972865e3ec685d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -101,13 +125,89 @@
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1732350895,
|
||||
"narHash": "sha256-GcOQbOgmwlsRhpLGSwZJwLbo3pu9ochMETuRSS1xpz4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0c582677378f2d9ffcb01490af2f2c678dcb29d3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-24.11",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"ny": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-3257NAH4qlan2YHVLpNRy7x8IJqR2pal3OzFo/ykqXs=",
|
||||
"type": "file",
|
||||
"url": "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"apple-fonts": "apple-fonts",
|
||||
"home-manager": "home-manager",
|
||||
"nix-colors": "nix-colors",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||
}
|
||||
},
|
||||
"sf-arabic": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-/0gjRimqvZyE60xYxxPdlU+7Q2LJnnvtbmwOP0YmS9U=",
|
||||
"type": "file",
|
||||
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Arabic.dmg"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Arabic.dmg"
|
||||
}
|
||||
},
|
||||
"sf-compact": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-J72Lyt2wy83E46wN8w6/Rih9kilM9wEjtY6KnbF0DsA=",
|
||||
"type": "file",
|
||||
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"
|
||||
}
|
||||
},
|
||||
"sf-mono": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-ICdHRFdNL7PM/fXJUzS7LgZxZiqcyIuCMHLze4En4vg=",
|
||||
"type": "file",
|
||||
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"
|
||||
}
|
||||
},
|
||||
"sf-pro": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-Q/pOQ4MGhW/ZtLka+UUQcwSoZFDWW34XvutxL4GvzUY=",
|
||||
"type": "file",
|
||||
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
@ -2,19 +2,20 @@
|
||||
description = "Nixos configuration for Xeovalyte";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
nixpkgs.url = "nixpkgs/nixos-24.11";
|
||||
|
||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.05";
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nix-colors.url = "github:misterio77/nix-colors";
|
||||
apple-fonts.url = "github:lyndeno/apple-fonts.nix";
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, home-manager, nix-colors, ... }:
|
||||
outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, home-manager, nix-colors, apple-fonts, ... }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
overlay-unstable = final: prev: {
|
||||
|
@ -1,13 +1,44 @@
|
||||
# Create proxy network
|
||||
`docker network create proxy`
|
||||
# Configuration steps
|
||||
|
||||
# Configure caddy cloudflare
|
||||
Find instructions on [caddy-dns cloudflare](https://github.com/caddy-dns/cloudflare)
|
||||
## 1. Install [NixOS](https://nixos.org/)
|
||||
|
||||
Follow the steps from the [NixOS Manual Installation](https://nixos.org/manual/nixos/stable/#sec-installation-manual)
|
||||
|
||||
> At the edit configuration.nix step you must:
|
||||
>
|
||||
> - Add a user to the configuration file and set a password
|
||||
> - Enable openssh
|
||||
|
||||
## 2. Configuring flake
|
||||
|
||||
1. Clone this repository
|
||||
2. Copy hardware configuration to host<br>
|
||||
`cp /etc/nixos/hardware-configuration.nix ~/nix/hosts/<host>/hardware-configuration.nix`
|
||||
3. Rebuild system
|
||||
`sudo nixos-rebuild switch --flake .#<host>`
|
||||
4. Rebuild home-manager
|
||||
`home-manager switch --flake .#<user>@<host>`
|
||||
5. Reboot
|
||||
|
||||
## 3. Configuring docker containers
|
||||
|
||||
1. Create proxy network<br>
|
||||
`docker network create proxy`
|
||||
|
||||
2. Configure [Adguard](./adguard/README.md)
|
||||
3. Configure [Caddy](./caddy/README.md)
|
||||
4. Configure [Authelia](./authelia/README.md)
|
||||
5. Configure the rest of the services
|
||||
|
||||
# Services
|
||||
|
||||
| Name | Use | Domain | Auth |
|
||||
| --- | --- | --- | --- |
|
||||
| ------- | -------------- | ----------------------------- | ------ |
|
||||
| Adguard | DNS | https://adguard.timo.bmrs.nl/ | local |
|
||||
| Caddy | Reverse proxy | - | - |
|
||||
| Forgejo | Git | https://git.timo.bmrs.nl/ | Openid |
|
||||
| Ldap | User directory | https://ldap.timo.bmrs.nl/ | - |
|
||||
|
||||
# Services to try out
|
||||
|
||||
- [Beszel](https://github.com/henrygd/beszel)
|
||||
|
7
homelab/adguard/README.md
Normal file
7
homelab/adguard/README.md
Normal file
@ -0,0 +1,7 @@
|
||||
# Adguard Home
|
||||
|
||||
1. Temporaraly edit ports in docker-compose file to setup
|
||||
2. Configuration screen<br>
|
||||
1. Change listen interface to port 3000
|
||||
3. Add DNS rewrite for *.timo.bmrs.nl
|
||||
4. Delete temporaraly port edit in docker-compose
|
@ -1,2 +1,13 @@
|
||||
- Follow [This](https://www.authelia.com/configuration/identity-providers/openid-connect/provider/) guide for generating keys
|
||||
- Store the keys in the /keys directory
|
||||
# Authelia
|
||||
|
||||
1. Edit environment variables.
|
||||
1. For HMAC_SECRET, JWT_SECRET, ADMIN_PASSWORD, SESSION_SECRET, STORAGE_ENCRYPTION_KEY, LLDAP_KEY_SEED use an random alphanumeric string of at least 64 characters
|
||||
2. For CLIENT_SECRET, CLIEND_ID: [Generate client identifier](https://www.authelia.com/integration/openid-connect/frequently-asked-questions/#how-do-i-generate-a-client-identifier-or-client-secret)
|
||||
1. Use single quotes for the client secret
|
||||
|
||||
2. Generate PAM file using and save it to the /config/keys directory: [Generating keypair](https://www.authelia.com/reference/guides/generating-secure-values/#generating-an-rsa-keypair)
|
||||
1. Save the random password
|
||||
|
||||
3. Configure LLDAP
|
||||
1. Create a user in LLDAP with the group: lldap_password_manager
|
||||
2. Create groups: forgejo
|
||||
|
@ -1,2 +1,4 @@
|
||||
# Caddy reverse proxy
|
||||
Follow [this](https://github.com/caddy-dns/cloudflare) to obtain secrets
|
||||
|
||||
1. Obtain cloudflare tokens: [Caddy Cloudflare](https://github.com/caddy-dns/cloudflare)
|
||||
2. Set environment variables
|
||||
|
4
homelab/nextcloud/README.md
Normal file
4
homelab/nextcloud/README.md
Normal file
@ -0,0 +1,4 @@
|
||||
# Nextcloud
|
||||
|
||||
1. Configure environment variables
|
||||
2. Update office configuration
|
@ -51,6 +51,8 @@
|
||||
extraGroups = [ "networkmanager" "wheel" "dialout" ];
|
||||
};
|
||||
|
||||
nix.settings.trusted-users = [ "root" "xeovalyte" ];
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
# Configure wacom tablet
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
@ -45,19 +45,23 @@
|
||||
home.packages = with pkgs; [
|
||||
# Desktop Applications
|
||||
kdenlive
|
||||
unstable.prismlauncher
|
||||
prismlauncher
|
||||
unstable.modrinth-app
|
||||
unstable.joplin-desktop
|
||||
unstable.prusa-slicer
|
||||
unstable.font-manager
|
||||
signal-desktop
|
||||
unstable.vesktop
|
||||
unstable.blender
|
||||
unstable.webcord
|
||||
blender
|
||||
unstable.freecad-wayland
|
||||
loupe
|
||||
unstable.rnote
|
||||
unstable.bottles
|
||||
|
||||
|
||||
# Office
|
||||
libreoffice
|
||||
onlyoffice-bin
|
||||
papers
|
||||
|
||||
# Image editing
|
||||
gimp
|
||||
|
@ -3,21 +3,25 @@
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
unstable.marksman
|
||||
unstable.markdown-oxide
|
||||
unstable.svls
|
||||
unstable.nil
|
||||
unstable.nixpkgs-fmt
|
||||
unstable.vale-ls
|
||||
unstable.vale
|
||||
unstable.tectonic
|
||||
unstable.texlab
|
||||
dprint
|
||||
];
|
||||
|
||||
home.file.".config/vale/.vale.ini".text = ''
|
||||
StylesPath = ~/.local/share/vale/styles
|
||||
|
||||
MinAlertLevel = suggestion
|
||||
Packages = Readability
|
||||
|
||||
[*]
|
||||
BasedOnStyles = Vale
|
||||
home.file.".config/.dprint.json".text =''
|
||||
{
|
||||
"markdown": {
|
||||
"lineWidth":120,
|
||||
},
|
||||
"excludes": [],
|
||||
"plugins": [
|
||||
"https://plugins.dprint.dev/markdown-0.16.1.wasm"
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
programs.helix = {
|
||||
@ -43,9 +47,38 @@
|
||||
command = "svls";
|
||||
};
|
||||
|
||||
# Vale
|
||||
language-server.vale = {
|
||||
command = "vale-ls";
|
||||
language-server.texlab = {
|
||||
config = {
|
||||
texlab.chktex = {
|
||||
onOpenAndSave = true;
|
||||
onEdit = true;
|
||||
};
|
||||
texlab.forwardSearch = {
|
||||
executable = "zathura";
|
||||
args = [
|
||||
"--synctex-forward"
|
||||
"%l:%c:%f"
|
||||
"%p"
|
||||
];
|
||||
};
|
||||
texlab.build = {
|
||||
auxDirectory = "build";
|
||||
logDirectory = "build";
|
||||
pdfDirectory = "build";
|
||||
forwardSearchAfter = true;
|
||||
onSave = true;
|
||||
executable = "tectonic";
|
||||
args = [
|
||||
"-X"
|
||||
"compile"
|
||||
"--synctex"
|
||||
"--keep-logs"
|
||||
"--keep-intermediates"
|
||||
"--outdir=build"
|
||||
"%f"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
language = [
|
||||
@ -53,10 +86,6 @@
|
||||
name = "verilog";
|
||||
language-servers = [ "svls" ];
|
||||
}
|
||||
{
|
||||
name = "nix";
|
||||
language-servers = [ "svls" ];
|
||||
}
|
||||
{
|
||||
name = "html";
|
||||
language-servers = [ "vscode-html-language-server" "tailwindcss-ls" ];
|
||||
@ -67,7 +96,15 @@
|
||||
}
|
||||
{
|
||||
name = "markdown";
|
||||
language-servers = [ "vale" ];
|
||||
auto-format = true;
|
||||
language-servers = [ "markdown-oxide" ];
|
||||
formatter.command = "dprint";
|
||||
formatter.args = ["fmt" "--stdin" "md" "--config" "/home/xeovalyte/.config/.dprint.json"];
|
||||
}
|
||||
{
|
||||
name = "typst";
|
||||
auto-format = false;
|
||||
formatter.command = "${pkgs.typstfmt}/bin/typstfmt";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
@ -23,6 +23,11 @@
|
||||
keybinds {
|
||||
normal {
|
||||
bind "Ctrl e" { ToggleFloatingPanes; SwitchToMode "normal"; }
|
||||
bind "Ctrl 1" { GoToTab 1; }
|
||||
bind "Ctrl 2" { GoToTab 2; }
|
||||
bind "Ctrl 3" { GoToTab 3; }
|
||||
bind "Ctrl 4" { GoToTab 4; }
|
||||
bind "Ctrl 5" { GoToTab 5; }
|
||||
}
|
||||
}
|
||||
'';
|
||||
@ -44,4 +49,39 @@
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
home.file.zellij-layout-dioxus = {
|
||||
target = ".config/zellij/layouts/dioxus.kdl";
|
||||
text = ''
|
||||
layout {
|
||||
tab {
|
||||
pane {
|
||||
command "hx"
|
||||
args "."
|
||||
focus true
|
||||
}
|
||||
floating_panes {
|
||||
pane {
|
||||
width "80%"
|
||||
height "80%"
|
||||
x "10%"
|
||||
y "10%"
|
||||
}
|
||||
}
|
||||
}
|
||||
tab {
|
||||
pane {
|
||||
command "dx"
|
||||
args "serve"
|
||||
}
|
||||
}
|
||||
tab {
|
||||
pane {
|
||||
command "devenv"
|
||||
args "up"
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
@ -60,16 +60,20 @@
|
||||
name = "Brightspace";
|
||||
bookmarks = [
|
||||
{
|
||||
name = "LCA";
|
||||
url = "https://brightspace.tudelft.nl/d2l/le/content/681008/Home";
|
||||
name = "Books";
|
||||
url = "https://drive.google.com/drive/folders/1L5OTbn5p3i7_Nc80hc5PztiEGHKwi-I4";
|
||||
}
|
||||
{
|
||||
name = "DSA";
|
||||
url = "https://brightspace.tudelft.nl/d2l/le/content/681012/Home";
|
||||
name = "LCB";
|
||||
url = "https://brightspace.tudelft.nl/d2l/le/content/681010/Home";
|
||||
}
|
||||
{
|
||||
name = "iEE";
|
||||
url = "https://brightspace.tudelft.nl/d2l/le/content/681018/Home";
|
||||
name = "Calculus";
|
||||
url = "https://brightspace.tudelft.nl/d2l/le/content/681024/Home";
|
||||
}
|
||||
{
|
||||
name = "IP1";
|
||||
url = "https://brightspace.tudelft.nl/d2l/le/content/681020/Home";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
fonts.fontconfig.enable = true;
|
||||
@ -8,6 +8,8 @@
|
||||
fira-code
|
||||
font-awesome
|
||||
dejavu_fonts
|
||||
roboto
|
||||
(nerdfonts.override { fonts = [ "DejaVuSansMono" ]; })
|
||||
inputs.apple-fonts.packages.${pkgs.system}.sf-pro
|
||||
];
|
||||
}
|
||||
|
@ -51,6 +51,7 @@
|
||||
follow_mouse = 2;
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
scroll_factor = 0.5;
|
||||
clickfinger_behavior = true;
|
||||
};
|
||||
};
|
||||
@ -68,10 +69,7 @@
|
||||
|
||||
decoration = {
|
||||
rounding = "5";
|
||||
drop_shadow = "false";
|
||||
blur.enabled = "false";
|
||||
shadow_render_power = "3";
|
||||
"col.shadow" = "rgba(1a1a1aee)";
|
||||
};
|
||||
|
||||
gestures = {
|
||||
|
@ -3,14 +3,13 @@
|
||||
{
|
||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||
|
||||
hardware.opengl.enable = true;
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
hardware.opengl.extraPackages = with pkgs; [
|
||||
hardware.graphics.enable = true;
|
||||
hardware.graphics.extraPackages = with pkgs; [
|
||||
amdvlk
|
||||
mesa.drivers
|
||||
];
|
||||
|
||||
hardware.opengl.extraPackages32 = with pkgs; [
|
||||
hardware.graphics.extraPackages32 = with pkgs; [
|
||||
driversi686Linux.amdvlk
|
||||
];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user