Compare commits

...

7 Commits

16 changed files with 137 additions and 27 deletions

View File

@ -1 +0,0 @@
trailingComma = "none"

12
biome.jsonc Normal file
View File

@ -0,0 +1,12 @@
{
"$schema": "https://biomejs.dev/schemas/2.0.5/schema.json",
"formatter": {
"enabled": true,
"indentStyle": "space"
},
"linter": {
"enabled": false
}
}

View File

@ -29,10 +29,9 @@
} }
.search-wrapper .logo-and-wordmark .logo { .search-wrapper .logo-and-wordmark .logo {
background: background: url("zen-logo-mocha.svg"),
url("zen-logo-mocha.svg"),
url("https://raw.githubusercontent.com/IAmJafeth/zen-browser/main/themes/Mocha/Blue/zen-logo-mocha.svg") url("https://raw.githubusercontent.com/IAmJafeth/zen-browser/main/themes/Mocha/Blue/zen-logo-mocha.svg")
no-repeat center !important; no-repeat center !important;
display: inline-block !important; display: inline-block !important;
height: 82px !important; height: 82px !important;
width: 82px !important; width: 82px !important;

View File

@ -5,7 +5,7 @@ let
in in
{ {
networking.nat = { networking.nat = {
enable = true; enable = false;
internalInterfaces = [ "ve-*" ]; internalInterfaces = [ "ve-*" ];
externalInterface = "wlan0"; externalInterface = "wlan0";
# Lazy IPv6 connectivity for the container # Lazy IPv6 connectivity for the container
@ -13,7 +13,7 @@ in
}; };
containers.actual = { containers.actual = {
autoStart = true; autoStart = false;
privateNetwork = true; privateNetwork = true;
hostAddress = "192.168.10.188"; hostAddress = "192.168.10.188";
localAddress = "192.168.10.11"; localAddress = "192.168.10.11";
@ -23,7 +23,7 @@ in
networking.firewall.allowedTCPPorts = [ port ]; networking.firewall.allowedTCPPorts = [ port ];
services = { services = {
actual = { actual = {
enable = true; enable = false;
settings = { settings = {
inherit port; inherit port;
loginMethod = "password"; loginMethod = "password";

View File

@ -9,6 +9,7 @@
./forgejo.nix ./forgejo.nix
./hardware.nix ./hardware.nix
./headscale.nix ./headscale.nix
./home-assitant.nix
./mailserver.nix ./mailserver.nix
./nextcloud.nix ./nextcloud.nix
./nginx.nix ./nginx.nix

View File

@ -0,0 +1,73 @@
{ pkgs, common, ... }:
let
dbName = "hass";
domain = "beta.home.${common.domain}";
port = 8085;
in
{
services = {
home-assistant = {
enable = true;
package =
(pkgs.home-assistant.override {
extraPackages =
py: with py; [
# Postgres
psycopg2
# Roomba
roombapy
];
}).overrideAttrs
(oldAttrs: {
# Avoid long install checks
doInstallCheck = false;
});
extraComponents = [
# Components required to complete the onboarding
"esphome"
"met"
"radio_browser"
];
config = {
# Includes dependencies for a basic setup
# https://www.home-assistant.io/integrations/default_config/
default_config = { };
homeassistant = {
name = "Hjem";
unit_system = "metric";
temperature_unit = "C";
};
http = {
server_host = "::1";
trusted_proxies = [ "::1" ];
use_x_forwarded_for = true;
server_port = port;
};
recorder.db_url = "postgresql://@/${dbName}";
};
};
nginx.virtualHosts.${domain} = {
forceSSL = true;
enableACME = true;
extraConfig = ''
proxy_buffering off;
'';
locations."/" = {
proxyPass = "http://[::1]:${toString port}";
proxyWebsockets = true;
};
};
postgresql = {
enable = true;
ensureDatabases = [ dbName ];
ensureUsers = [
{
name = dbName;
ensureDBOwnership = true;
}
];
};
};
}

View File

@ -1,7 +1,22 @@
{ systemConfig, ... }:
{ {
imports = [ imports = [
./firewall.nix ./firewall.nix
]; ];
security.sudo.extraRules = [
{
users = [ systemConfig.username ];
runAs = "ALL:ALL";
commands = [
{
command = "ALL";
options = [ "NOPASSWD" ];
}
];
}
];
services.pcscd.enable = true; services.pcscd.enable = true;
} }

View File

@ -4,7 +4,7 @@
}: }:
{ {
programs.hyprpanel.settings.layout."bar.layouts"."*".right = lib.mkForce [ programs.hyprpanel.settings.bar.layouts."*".right = lib.mkForce [
"kbinput" "kbinput"
"volume" "volume"
"network" "network"

View File

@ -29,10 +29,9 @@
} }
.search-wrapper .logo-and-wordmark .logo { .search-wrapper .logo-and-wordmark .logo {
background: background: url("zen-logo-mocha.svg"),
url("zen-logo-mocha.svg"),
url("https://raw.githubusercontent.com/IAmJafeth/zen-browser/main/themes/Mocha/Blue/zen-logo-mocha.svg") url("https://raw.githubusercontent.com/IAmJafeth/zen-browser/main/themes/Mocha/Blue/zen-logo-mocha.svg")
no-repeat center !important; no-repeat center !important;
display: inline-block !important; display: inline-block !important;
height: 82px !important; height: 82px !important;
width: 82px !important; width: 82px !important;

View File

@ -6,6 +6,14 @@ default:
fmt: fmt:
treefmt --on-unmatched info treefmt --on-unmatched info
# Clean user files
clean-user:
nh clean user
# Clean all files
clean-all:
nh clean all
# Build a specific host but don't activate it. Host must use same system as target system # Build a specific host but don't activate it. Host must use same system as target system
build HOST: build HOST:
git add . git add .

View File

@ -16,12 +16,20 @@
helix = helix =
let let
prettier = format: { prettier = format: {
command = "prettier"; command = lib.getExe pkgs.nodePackages.prettier;
args = [ args = [
"--stdin-filepath" "--stdin-filepath"
"file.${format}" "file.${format}"
]; ];
}; };
biome = format: {
command = lib.getExe pkgs.biome;
args = [
"check"
"--stdin-file-path=file.${format}"
"--write"
];
};
in in
{ {
enable = true; enable = true;
@ -60,7 +68,7 @@
languages.language = [ languages.language = [
{ {
name = "css"; name = "css";
formatter = prettier "css"; formatter = biome "css";
auto-format = true; auto-format = true;
} }
{ {
@ -68,14 +76,14 @@
language-servers = [ language-servers = [
"vscode-json-language-server" "vscode-json-language-server"
]; ];
formatter = prettier "json"; formatter = biome "json";
auto-format = true; auto-format = true;
} }
{ {
name = "jsonc"; name = "jsonc";
language-servers = [ language-servers = [
]; ];
formatter = prettier "jsonc"; formatter = biome "jsonc";
file-types = [ file-types = [
"jsonc" "jsonc"
]; ];

View File

@ -2,7 +2,7 @@
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
nodePackages.prettier biome # Linter + formatter
nixfmt-rfc-style nixfmt-rfc-style
treefmt treefmt
shfmt shfmt

View File

@ -12,6 +12,7 @@
"nix" "nix"
"git-firefly" "git-firefly"
"just" "just"
"biome"
]; ];
userSettings = userSettings =
let let

View File

@ -5,6 +5,5 @@
jetbrains.webstorm jetbrains.webstorm
nodejs_22 nodejs_22
pnpm pnpm
nodePackages.prettier
]; ];
} }

View File

@ -13,7 +13,7 @@
# Formatters needed for 'just fmt' # Formatters needed for 'just fmt'
format = pkgs.mkShell { format = pkgs.mkShell {
packages = with pkgs; [ packages = with pkgs; [
nodePackages.prettier biome
nixfmt-rfc-style nixfmt-rfc-style
treefmt treefmt
shfmt shfmt

View File

@ -2,17 +2,13 @@
command = "nixfmt" command = "nixfmt"
includes = ["*.nix"] includes = ["*.nix"]
[formatter.prettier] [formatter.biome]
command = "prettier" command = "biome"
includes = ["*.css", "*.json", "*.jsonc", "*.yaml"] includes = ["*.css", "*.json", "*.jsonc"]
options = ["--write"] options = ["check", "--write"]
[formatter.shell] [formatter.shell]
command = "shfmt" command = "shfmt"
includes = ["fmt", "test", "switch"] includes = ["fmt", "test", "switch"]
excludes = [] excludes = []
options = [ options = ["--indent", "2", "--simplify", "--write"]
"--indent", "2",
"--simplify",
"--write",
]