resolve merge conflict

This commit is contained in:
randomuser 2024-03-18 18:37:20 -05:00
commit fa7113e7af
16 changed files with 74 additions and 224 deletions

View File

@ -26,7 +26,6 @@ things to do
------------ ------------
- integrate `disko` and `sops-nix` into the setup - integrate `disko` and `sops-nix` into the setup
- switch from gitea to cgit
- establish backup infrastructure for `netbox` - establish backup infrastructure for `netbox`
- move gmail-mail-bridge into mail-sync repo - move gmail-mail-bridge into mail-sync repo
* (perhaps figure out how to produce a flake for it) * (perhaps figure out how to produce a flake for it)

View File

@ -4,6 +4,7 @@
./hardware-configuration.nix ./hardware-configuration.nix
../../modules/ssh-phone-home.nix ../../modules/ssh-phone-home.nix
../../modules/bootstrap.nix ../../modules/bootstrap.nix
../../modules/hosts.nix
../../modules/common.nix ../../modules/common.nix
]; ];

View File

@ -5,6 +5,7 @@
./hardware-configuration.nix ./hardware-configuration.nix
./nvidia.nix ./nvidia.nix
../../modules/ssh-phone-home.nix ../../modules/ssh-phone-home.nix
../../modules/hosts.nix
../../modules/bootstrap.nix ../../modules/bootstrap.nix
../../modules/common.nix ../../modules/common.nix
../../modules/x11.nix ../../modules/x11.nix
@ -24,6 +25,7 @@
vscodium vscodium
thunderbird thunderbird
libreoffice libreoffice
texliveMedium
]; ];
services.hardware.bolt.enable = true; # thunderbolt support services.hardware.bolt.enable = true; # thunderbolt support

View File

@ -1,114 +1,6 @@
{ lib, config, pkgs, ... }: { 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 = imports =
[ [
./hardware-configuration.nix ./hardware-configuration.nix
@ -150,32 +42,18 @@ in {
settings.protocols = [ settings.protocols = [
{ {
host = "localhost"; host = "localhost";
name = "ssh"; name = "ssh";
port = "55555"; port = "55555";
service = "ssh"; service = "ssh";
} }
{ {
host = "localhost"; host = "localhost";
name = "tls"; name = "tls";
port = "442"; 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"; networking.hostName = "netbox";
services.radicale = { services.radicale = {
@ -218,18 +96,18 @@ in {
jails = { jails = {
"nginx-bruteforce" = '' "nginx-bruteforce" = ''
enabled = true enabled = true
filter = nginx-bruteforce filter = nginx-bruteforce
logpath = /var/log/nginx/access.log logpath = /var/log/nginx/access.log
backend = auto backend = auto
maxretry = 6 maxretry = 6
findtime = 600 findtime = 600
''; '';
"postfix-bruteforce" = '' "postfix-bruteforce" = ''
enabled = true enabled = true
filter = postfix-bruteforce filter = postfix-bruteforce
maxretry = 6 maxretry = 6
findtime = 600 findtime = 600
''; '';
}; };
}; };
@ -273,14 +151,19 @@ in {
services.gitea = { services.gitea = {
enable = true; enable = true;
appName = "crappy code"; # Give the site a name appName = "beepboop.systems"; # Give the site a name
database = { database = {
type = "postgres"; type = "postgres";
passwordFile = "/etc/gittea-pass"; 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 = { settings.server = {
DOMAIN = "git.beepboop.systems"; DOMAIN = "git.beepboop.systems";
ROOT_URL = "https://git.beepboop.systems/"; ROOT_URL = "https://git.beepboop.systems/";
LANDING_PAGE = "explore";
HTTP_PORT = 3001; HTTP_PORT = 3001;
}; };
}; };
@ -304,70 +187,6 @@ in {
forceSSL = true; forceSSL = true;
enableACME = true; enableACME = true;
root = "/var/www/beepboop.systems"; 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" = { services.nginx.virtualHosts."git.beepboop.systems" = {

View File

@ -13,17 +13,16 @@
}; };
environment.packages = with pkgs; [ environment.packages = with pkgs; [
vdirsyncer tigervnc
msmtp
khal
todoman
neomutt
khal
rbw
isync
git git
tmux tmux
hostname hostname
tigervnc
xorg.xinit
# tar
# awk
# sed
elinks
]; ];
environment.etcBackupExtension = ".bak"; environment.etcBackupExtension = ".bak";

View File

@ -11,6 +11,7 @@
../../home/msmtp ../../home/msmtp
../../home/neomutt ../../home/neomutt
../../home/rbw ../../home/rbw
( import ../../home/bash { isRoot = true; } )
]; ];
home.stateVersion = "23.05"; home.stateVersion = "23.05";

View File

@ -4,6 +4,7 @@
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../../modules/bootstrap.nix ../../modules/bootstrap.nix
../../modules/hosts.nix
../../modules/common.nix ../../modules/common.nix
../../modules/x11.nix ../../modules/x11.nix
../../modules/discord.nix ../../modules/discord.nix

View File

@ -7,6 +7,7 @@
../../modules/bootstrap.nix ../../modules/bootstrap.nix
../../modules/common.nix ../../modules/common.nix
../../modules/x11.nix ../../modules/x11.nix
../../modules/hosts.nix
../../modules/tlp.nix ../../modules/tlp.nix
../../modules/media.nix ../../modules/media.nix
../../modules/anki.nix ../../modules/anki.nix

View File

@ -25,11 +25,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1708805268, "lastModified": 1710537928,
"narHash": "sha256-TyB6HacqcoIoK8tf5mwk/K9bkexCxjJsVXBp4+cbATI=", "narHash": "sha256-uBYpos1lJ3AIuCEKx/yO0rOYCkBbkC37fgR+Y0hdk6g=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "211c45ca8c36d7aebcff3e4b548142093fc85857", "rev": "9a40144862e64dd651f599bff59a04b5ba20b610",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -98,11 +98,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1702195668, "lastModified": 1709578214,
"narHash": "sha256-Lxmjez0nfNBptdqV5GsXKm7Bb7swjGsrxiLxWJu0tL8=", "narHash": "sha256-jSCHB1+9eA0S2h7G8Aju8XARK0vbDuOR7uFFvCEsKhk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "33110fb3c7fe6a94b98b641866a5eddb64b7c23f", "rev": "219f4bef6d22bc67cddefbba69aadb748d79c49d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -164,11 +164,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1708702655, "lastModified": 1710420202,
"narHash": "sha256-qxT5jSLhelfLhQ07+AUxSTm1VnVH+hQxDkQSZ/m/Smo=", "narHash": "sha256-MvFKESbq4rUWuaf2RKPNYENaSZEw/jaCLo2gU6oREcM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c5101e457206dd437330d283d6626944e28794b3", "rev": "878ef7d9721bee9f81f8a80819f9211ad1f993da",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -42,7 +42,8 @@
phone-nixpkgs, phone-nixpkgs,
home-manager-phone, home-manager-phone,
nix-on-droid, nix-on-droid,
... }@inputs: { ...
}@inputs: {
nixOnDroidConfigurations = { nixOnDroidConfigurations = {
phone = nix-on-droid.lib.nixOnDroidConfiguration { phone = nix-on-droid.lib.nixOnDroidConfiguration {
modules = [ modules = [

View File

@ -1,6 +1,10 @@
{ lib, config, pkgs, home, ... }: { lib, config, pkgs, home, ... }:
{ {
home.packages = with pkgs; [
msmtp
];
home.file = { home.file = {
".config/msmtp/config" = { ".config/msmtp/config" = {
source = ./config; source = ./config;

View File

@ -1,6 +1,10 @@
{ lib, config, pkgs, home, ... }: { lib, config, pkgs, home, ... }:
{ {
home.packages = with pkgs; [
neomutt
];
home.file = { home.file = {
".config/neomutt/neomuttrc" = { ".config/neomutt/neomuttrc" = {
source = ./neomuttrc; source = ./neomuttrc;

View File

@ -147,7 +147,7 @@ local packer = require('packer').startup(function(use)
require('packer').sync() require('packer').sync()
end end
end); end);
-- }}} -- -- }}}
nnoremap('<leader>ff', function() nnoremap('<leader>ff', function()
require('telescope.builtin').find_files() require('telescope.builtin').find_files()
@ -194,5 +194,3 @@ luasnip.add_snippets("tex", {
}) })
}) })
-- }}} -- }}}
return packer

9
home/nws/default.nix Normal file
View File

@ -0,0 +1,9 @@
{ lib, config, pkgs, home, ... }:
{
home.file = {
".config/nws" = {
text = ''KOHX'';
};
};
}

View File

@ -17,6 +17,7 @@
./neomutt ./neomutt
./msmtp ./msmtp
./rbw ./rbw
./nws
./x11-progs.nix ./x11-progs.nix
./tty.nix ./tty.nix

10
modules/hosts.nix Normal file
View File

@ -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" ];
};
}