Compare commits

..

3 Commits

Author SHA1 Message Date
9ab12a589f
Merge branch 'main' of ssh://gitea.xeovalyte.dev:2222/xeovalyte/nix
merge
2024-11-24 21:01:26 +01:00
36c3f13acb
Last 24.05 update 2024-11-24 21:00:21 +01:00
1583241c31
Config chagnes 2024-10-23 10:17:17 +02:00
10 changed files with 149 additions and 46 deletions

12
flake.lock generated
View File

@ -58,11 +58,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1728067476, "lastModified": 1730741070,
"narHash": "sha256-/uJcVXuBt+VFCPQIX+4YnYrHaubJSx4HoNsJVNRgANM=", "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6e6b3dd395c3b1eb9be9f2d096383a8d05add030", "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -88,11 +88,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1728018373, "lastModified": 1730785428,
"narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=", "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bc947f541ae55e999ffdb4013441347d83b00feb", "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -1,13 +1,44 @@
# Create proxy network # Configuration steps
`docker network create proxy`
# Configure caddy cloudflare ## 1. Install [NixOS](https://nixos.org/)
Find instructions on [caddy-dns cloudflare](https://github.com/caddy-dns/cloudflare)
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 # Services
| Name | Use | Domain | Auth | | Name | Use | Domain | Auth |
| --- | --- | --- | --- | | ------- | -------------- | ----------------------------- | ------ |
| Adguard | DNS | https://adguard.timo.bmrs.nl/ | local | | Adguard | DNS | https://adguard.timo.bmrs.nl/ | local |
| Caddy | Reverse proxy | - | - | | Caddy | Reverse proxy | - | - |
| Forgejo | Git | https://git.timo.bmrs.nl/ | Openid | | Forgejo | Git | https://git.timo.bmrs.nl/ | Openid |
| Ldap | User directory | https://ldap.timo.bmrs.nl/ | - | | Ldap | User directory | https://ldap.timo.bmrs.nl/ | - |
# Services to try out
- [Beszel](https://github.com/henrygd/beszel)

View 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

View File

@ -1,2 +1,13 @@
- Follow [This](https://www.authelia.com/configuration/identity-providers/openid-connect/provider/) guide for generating keys # Authelia
- Store the keys in the /keys directory
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

View File

@ -1,2 +1,4 @@
# Caddy reverse proxy # 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

View File

@ -0,0 +1,4 @@
# Nextcloud
1. Configure environment variables
2. Update office configuration

View File

@ -1,4 +1,4 @@
{ pkgs, lib, config, ... }: { pkgs, lib, ... }:
{ {
imports = [ imports = [
@ -45,14 +45,20 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
# Desktop Applications # Desktop Applications
kdenlive kdenlive
unstable.prismlauncher prismlauncher
unstable.joplin-desktop unstable.joplin-desktop
unstable.prusa-slicer unstable.prusa-slicer
signal-desktop signal-desktop
unstable.vesktop unstable.vesktop
unstable.blender unstable.webcord
blender
unstable.xournalpp
freecad
loupe loupe
unstable.rnote unstable.rnote
scrcpy
unstable.bottles
# Office # Office
libreoffice libreoffice

View File

@ -3,21 +3,25 @@
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
unstable.marksman unstable.marksman
unstable.markdown-oxide
unstable.svls unstable.svls
unstable.nil unstable.nil
unstable.nixpkgs-fmt unstable.nixpkgs-fmt
unstable.vale-ls unstable.tectonic
unstable.vale unstable.texlab
dprint
]; ];
home.file.".config/vale/.vale.ini".text = '' home.file.".config/.dprint.json".text =''
StylesPath = ~/.local/share/vale/styles {
"markdown": {
MinAlertLevel = suggestion "lineWidth":120,
Packages = Readability },
"excludes": [],
[*] "plugins": [
BasedOnStyles = Vale "https://plugins.dprint.dev/markdown-0.16.1.wasm"
]
}
''; '';
programs.helix = { programs.helix = {
@ -43,9 +47,38 @@
command = "svls"; command = "svls";
}; };
# Vale language-server.texlab = {
language-server.vale = { config = {
command = "vale-ls"; 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 = [ language = [
@ -53,10 +86,6 @@
name = "verilog"; name = "verilog";
language-servers = [ "svls" ]; language-servers = [ "svls" ];
} }
{
name = "nix";
language-servers = [ "svls" ];
}
{ {
name = "html"; name = "html";
language-servers = [ "vscode-html-language-server" "tailwindcss-ls" ]; language-servers = [ "vscode-html-language-server" "tailwindcss-ls" ];
@ -67,7 +96,15 @@
} }
{ {
name = "markdown"; 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";
} }
]; ];
}; };

View File

@ -60,16 +60,20 @@
name = "Brightspace"; name = "Brightspace";
bookmarks = [ bookmarks = [
{ {
name = "LCA"; name = "Books";
url = "https://brightspace.tudelft.nl/d2l/le/content/681008/Home"; url = "https://drive.google.com/drive/folders/1L5OTbn5p3i7_Nc80hc5PztiEGHKwi-I4";
} }
{ {
name = "DSA"; name = "LCB";
url = "https://brightspace.tudelft.nl/d2l/le/content/681012/Home"; url = "https://brightspace.tudelft.nl/d2l/le/content/681010/Home";
} }
{ {
name = "iEE"; name = "Calculus";
url = "https://brightspace.tudelft.nl/d2l/le/content/681018/Home"; url = "https://brightspace.tudelft.nl/d2l/le/content/681024/Home";
}
{
name = "IP1";
url = "https://brightspace.tudelft.nl/d2l/le/content/681020/Home";
} }
]; ];
} }

View File

@ -51,6 +51,7 @@
follow_mouse = 2; follow_mouse = 2;
touchpad = { touchpad = {
natural_scroll = true; natural_scroll = true;
scroll_factor = 0.5;
clickfinger_behavior = true; clickfinger_behavior = true;
}; };
}; };