diff --git a/README.md b/README.md index df68e69..823ab2d 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,6 @@ things to do ------------ - integrate `disko` and `sops-nix` into the setup -- switch from gitea to cgit - establish backup infrastructure for `netbox` - move gmail-mail-bridge into mail-sync repo * (perhaps figure out how to produce a flake for it) diff --git a/boxes/mainsail/default.nix b/boxes/mainsail/default.nix index 16ca93b..9250640 100644 --- a/boxes/mainsail/default.nix +++ b/boxes/mainsail/default.nix @@ -4,6 +4,7 @@ ./hardware-configuration.nix ../../modules/ssh-phone-home.nix ../../modules/bootstrap.nix + ../../modules/hosts.nix ../../modules/common.nix ]; diff --git a/boxes/mlg/default.nix b/boxes/mlg/default.nix index 335577b..948985a 100644 --- a/boxes/mlg/default.nix +++ b/boxes/mlg/default.nix @@ -5,6 +5,7 @@ ./hardware-configuration.nix ./nvidia.nix ../../modules/ssh-phone-home.nix + ../../modules/hosts.nix ../../modules/bootstrap.nix ../../modules/common.nix ../../modules/x11.nix @@ -24,6 +25,7 @@ vscodium thunderbird libreoffice + texliveMedium ]; services.hardware.bolt.enable = true; # thunderbolt support diff --git a/boxes/netbox/default.nix b/boxes/netbox/default.nix index 9b279ce..8bdee39 100644 --- a/boxes/netbox/default.nix +++ b/boxes/netbox/default.nix @@ -1,114 +1,6 @@ { lib, config, pkgs, ... }: -let - cgitrc = pkgs.writeText "cgitrc" '' - css=/static/cgit.css - logo=/static/logo.png - favicon=/static/favicon.ico - root-title=beepboop.systems - root-desc=quality git hosting - - readme=:README - readme=:readme - readme=:readme.txt - readme=:README.txt - readme=:readme.md - readme=:README.md - - remove-suffix=1 - section-from-path=1 - - section-sort=0 - - section=meta - - repo.url=about - repo.path=/doesnt/exist - repo.desc=about this site - - section=other services at beepboop.systems - - repo.url=bitwarden - repo.path=/doesnt/exist - repo.desc=a simple password manager - - repo.url=radicale - repo.path=/doesnt/exist - repo.desc=a simple calendar server - - repo.url=roundcube - repo.path=/doesnt/exist - repo.desc=mail.beepboop.systems webmail - - repo.url=gitea - repo.path=/doesnt/exist - repo.desc=real git hosting services (until this one is fully operational) - - section=projects - - repo.url=advent - repo.path=/var/lib/git/advent - repo.desc=advent of code solutions - - repo.url=desmos-computer - repo.path=/var/lib/git/desmos-computer - repo.desc=a minimal ISA implemented in the Desmos graphing calculator - - repo.url=dot_testing - repo.path=/var/lib/git/dot_testing - repo.desc=configuration files for NixOS/GNU+Linux boxes - - repo.url=esgd - repo.path=/var/lib/git/esgd - repo.desc=the exceedingly simple gopher daemon - - repo.url=mail-sync - repo.path=/var/lib/git/mail-sync - repo.desc=synchronize mail from walled gardens - - repo.url=mastosnake - repo.path=/var/lib/git/mastosnake - repo.desc=a low quality clone of Twitter Plays Snake - - repo.url=secmsg - repo.path=/var/lib/git/secmsg - repo.desc=a stupid (in)secure messaging client thing - - repo.url=ultimate - repo.path=/var/lib/git/ultimate - repo.desc=ultimate tic tac toe solving engine - - repo.url=wordlefish - repo.path=/var/lib/git/wordlefish - repo.desc=use information theory to solve wordle puzzles - - section=irc robots - - repo.url=botanybot - repo.path=/var/lib/git/botanybot - repo.desc=water bots on ~.club - - repo.url=coinminer - repo.path=/var/lib/git/coinminer - repo.desc=mine fake coins on irc - - repo.url=chaosbot - repo.path=/var/lib/git/chaosbot - repo.desc=robot to protect a user on chaos - - repo.url=modbot - repo.path=/var/lib/git/modbot - repo.desc=modular irc robot - - repo.url=pychaos - repo.path=/var/lib/git/pychaos - repo.desc=python chaos bot - - repo.url=universalducks - repo.path=/var/lib/git/universalducks - repo.desc=cross channel irc ducks - ''; -in { +{ imports = [ ./hardware-configuration.nix @@ -150,32 +42,18 @@ in { settings.protocols = [ { host = "localhost"; - name = "ssh"; - port = "55555"; - service = "ssh"; + name = "ssh"; + port = "55555"; + service = "ssh"; } { host = "localhost"; - name = "tls"; - port = "442"; + name = "tls"; + port = "442"; } ]; }; - # cgit - users = { - groups.git = { }; - users.git = { - createHome = true; - home = /var/lib/git; - isSystemUser = true; - shell = "${pkgs.git}/bin/git-shell"; - group = "git"; - }; - }; - - services.fcgiwrap = { enable = true; user = "git"; group = "git"; }; - networking.hostName = "netbox"; services.radicale = { @@ -218,18 +96,18 @@ in { jails = { "nginx-bruteforce" = '' enabled = true - filter = nginx-bruteforce - logpath = /var/log/nginx/access.log - backend = auto - maxretry = 6 - findtime = 600 + filter = nginx-bruteforce + logpath = /var/log/nginx/access.log + backend = auto + maxretry = 6 + findtime = 600 ''; "postfix-bruteforce" = '' enabled = true - filter = postfix-bruteforce - maxretry = 6 - findtime = 600 + filter = postfix-bruteforce + maxretry = 6 + findtime = 600 ''; }; }; @@ -273,14 +151,19 @@ in { services.gitea = { enable = true; - appName = "crappy code"; # Give the site a name + appName = "beepboop.systems"; # Give the site a name database = { type = "postgres"; passwordFile = "/etc/gittea-pass"; }; + settings.security.INSTALL_LOCK = true; + settings.service.SHOW_REGISTRATION_BUTTON = false; + settings.ui.DEFAULT_THEME = "arc-green"; + settings.api.ENABLE_SWAGGER = false; settings.server = { DOMAIN = "git.beepboop.systems"; ROOT_URL = "https://git.beepboop.systems/"; + LANDING_PAGE = "explore"; HTTP_PORT = 3001; }; }; @@ -304,70 +187,6 @@ in { forceSSL = true; enableACME = true; root = "/var/www/beepboop.systems"; - - locations."~* ^/static/(.+.(ico|css))$" = { - extraConfig = '' - alias ${pkgs.cgit}/cgit/$1; - ''; - }; - locations."/static/logo.png" = { - extraConfig = '' - try_files /icon.png /icon.png; - ''; - }; - locations."/about" = { - extraConfig = '' - try_files /about.html /about.html; - ''; - }; - locations."/bitwarden" = { - extraConfig = '' - return 301 https://bit.beepboop.systems; - ''; - }; - locations."/gitea" = { - extraConfig = '' - return 301 https://git.beepboop.systems/rndusr; - ''; - }; - locations."/radicale" = { - extraConfig = '' - return 301 https://cal.beepboop.systems; - ''; - }; - locations."/roundcube" = { - extraConfig = '' - return 301 https://mail.beepboop.systems; - ''; - }; - locations."~* ^(.*)\\.git(/.*)?$" = { - extraConfig = '' - set $modified_path $1$2; - client_max_body_size 0; - - include ${pkgs.nginx}/conf/fastcgi_params; - fastcgi_param SCRIPT_FILENAME ${pkgs.git}/bin/git-http-backend; - fastcgi_param GIT_HTTP_EXPORT_ALL ""; - fastcgi_param GIT_PROJECT_ROOT /var/lib/git; - fastcgi_param PATH_INFO $uri; - - # Forward REMOTE_USER as we want to know when we are authenticated - fastcgi_param REMOTE_USER $remote_user; - fastcgi_pass unix:${config.services.fcgiwrap.socketAddress}; - ''; - }; - locations."/" = { - extraConfig = '' - include ${pkgs.nginx}/conf/fastcgi_params; - fastcgi_param CGIT_CONFIG ${cgitrc}; - fastcgi_param SCRIPT_FILENAME ${pkgs.cgit}/cgit/cgit.cgi; - fastcgi_split_path_info ^(/?)(.+)$; - fastcgi_param PATH_INFO $fastcgi_path_info; - fastcgi_param QUERY_STRING $args; - fastcgi_param HTTP_HOST $server_name; - fastcgi_pass unix:${config.services.fcgiwrap.socketAddress}; - ''; - }; }; services.nginx.virtualHosts."git.beepboop.systems" = { diff --git a/boxes/phone/default.nix b/boxes/phone/default.nix index b853e3a..a764fae 100644 --- a/boxes/phone/default.nix +++ b/boxes/phone/default.nix @@ -13,17 +13,16 @@ }; environment.packages = with pkgs; [ - vdirsyncer - msmtp - khal - todoman - neomutt - khal - rbw - isync + tigervnc git tmux hostname + tigervnc + xorg.xinit +# tar +# awk +# sed + elinks ]; environment.etcBackupExtension = ".bak"; diff --git a/boxes/phone/home.nix b/boxes/phone/home.nix index 993fa15..bd4f016 100644 --- a/boxes/phone/home.nix +++ b/boxes/phone/home.nix @@ -11,6 +11,7 @@ ../../home/msmtp ../../home/neomutt ../../home/rbw + ( import ../../home/bash { isRoot = true; } ) ]; home.stateVersion = "23.05"; diff --git a/boxes/virtbox/default.nix b/boxes/virtbox/default.nix index 81e64ab..3653e41 100644 --- a/boxes/virtbox/default.nix +++ b/boxes/virtbox/default.nix @@ -4,6 +4,7 @@ imports = [ ./hardware-configuration.nix ../../modules/bootstrap.nix + ../../modules/hosts.nix ../../modules/common.nix ../../modules/x11.nix ../../modules/discord.nix diff --git a/boxes/x230t/default.nix b/boxes/x230t/default.nix index 0a620a7..41d48e3 100644 --- a/boxes/x230t/default.nix +++ b/boxes/x230t/default.nix @@ -7,6 +7,7 @@ ../../modules/bootstrap.nix ../../modules/common.nix ../../modules/x11.nix + ../../modules/hosts.nix ../../modules/tlp.nix ../../modules/media.nix ../../modules/anki.nix diff --git a/flake.lock b/flake.lock index 321bd9b..02f83f7 100644 --- a/flake.lock +++ b/flake.lock @@ -25,11 +25,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1708805268, - "narHash": "sha256-TyB6HacqcoIoK8tf5mwk/K9bkexCxjJsVXBp4+cbATI=", + "lastModified": 1710537928, + "narHash": "sha256-uBYpos1lJ3AIuCEKx/yO0rOYCkBbkC37fgR+Y0hdk6g=", "owner": "rycee", "repo": "nur-expressions", - "rev": "211c45ca8c36d7aebcff3e4b548142093fc85857", + "rev": "9a40144862e64dd651f599bff59a04b5ba20b610", "type": "gitlab" }, "original": { @@ -98,11 +98,11 @@ ] }, "locked": { - "lastModified": 1702195668, - "narHash": "sha256-Lxmjez0nfNBptdqV5GsXKm7Bb7swjGsrxiLxWJu0tL8=", + "lastModified": 1709578214, + "narHash": "sha256-jSCHB1+9eA0S2h7G8Aju8XARK0vbDuOR7uFFvCEsKhk=", "owner": "nix-community", "repo": "home-manager", - "rev": "33110fb3c7fe6a94b98b641866a5eddb64b7c23f", + "rev": "219f4bef6d22bc67cddefbba69aadb748d79c49d", "type": "github" }, "original": { @@ -164,11 +164,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1708702655, - "narHash": "sha256-qxT5jSLhelfLhQ07+AUxSTm1VnVH+hQxDkQSZ/m/Smo=", + "lastModified": 1710420202, + "narHash": "sha256-MvFKESbq4rUWuaf2RKPNYENaSZEw/jaCLo2gU6oREcM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c5101e457206dd437330d283d6626944e28794b3", + "rev": "878ef7d9721bee9f81f8a80819f9211ad1f993da", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 7fb3a8e..7e8a58d 100644 --- a/flake.nix +++ b/flake.nix @@ -42,7 +42,8 @@ phone-nixpkgs, home-manager-phone, nix-on-droid, - ... }@inputs: { + ... + }@inputs: { nixOnDroidConfigurations = { phone = nix-on-droid.lib.nixOnDroidConfiguration { modules = [ diff --git a/home/msmtp/default.nix b/home/msmtp/default.nix index 14e770a..e268b88 100644 --- a/home/msmtp/default.nix +++ b/home/msmtp/default.nix @@ -1,6 +1,10 @@ { lib, config, pkgs, home, ... }: { + home.packages = with pkgs; [ + msmtp + ]; + home.file = { ".config/msmtp/config" = { source = ./config; diff --git a/home/neomutt/default.nix b/home/neomutt/default.nix index 07e36f9..178db03 100644 --- a/home/neomutt/default.nix +++ b/home/neomutt/default.nix @@ -1,6 +1,10 @@ { lib, config, pkgs, home, ... }: { + home.packages = with pkgs; [ + neomutt + ]; + home.file = { ".config/neomutt/neomuttrc" = { source = ./neomuttrc; diff --git a/home/nvim/init.lua b/home/nvim/init.lua index 38e3e94..feaa02d 100644 --- a/home/nvim/init.lua +++ b/home/nvim/init.lua @@ -147,8 +147,8 @@ local packer = require('packer').startup(function(use) require('packer').sync() end end); --- }}} - +-- -- }}} + nnoremap('ff', function() require('telescope.builtin').find_files() end) @@ -194,5 +194,3 @@ luasnip.add_snippets("tex", { }) }) -- }}} - -return packer diff --git a/home/nws/default.nix b/home/nws/default.nix new file mode 100644 index 0000000..4877d56 --- /dev/null +++ b/home/nws/default.nix @@ -0,0 +1,9 @@ +{ lib, config, pkgs, home, ... }: + +{ + home.file = { + ".config/nws" = { + text = ''KOHX''; + }; + }; +} diff --git a/home/x11.nix b/home/x11.nix index d09bd8f..18f3c3b 100644 --- a/home/x11.nix +++ b/home/x11.nix @@ -17,6 +17,7 @@ ./neomutt ./msmtp ./rbw + ./nws ./x11-progs.nix ./tty.nix diff --git a/modules/hosts.nix b/modules/hosts.nix new file mode 100644 index 0000000..9a2d351 --- /dev/null +++ b/modules/hosts.nix @@ -0,0 +1,10 @@ +{ lib, config, pkgs, inputs, ...}: + +{ + networking.hosts = { + "192.168.1.120" = [ "x230t" ]; + "192.168.1.52" = [ "mlg" ]; + "192.168.1.100" = [ "mainsail" ]; + }; +} +