Compare commits
4 commits
5d88905c2a
...
748e4a4e96
Author | SHA1 | Date | |
---|---|---|---|
748e4a4e96 | |||
65ce9f116d | |||
a00aed15d1 | |||
6144bd8786 |
11 changed files with 55 additions and 68 deletions
|
@ -1,20 +1,14 @@
|
||||||
# Willem
|
# Dafoe
|
||||||
|
|
||||||
Willem is a server running on a Raspberry Pi 400 offering the following services:
|
Dafoe is a server running on a CX11 cloud server by [Hetzner](hetzner.com).
|
||||||
- [Gitea](git.vatthauer.xyz)
|
The server offers the following services:
|
||||||
- [Vaultwarden](bitwarden.vatthauer.xyz)
|
- [Resumee Website](www.vatthauery.xyz)
|
||||||
|
- [Forgejo (Git)](git.vatthauer.xyz)
|
||||||
|
- [Vaultwarden](vaultwarden.vatthauer.xyz)
|
||||||
|
- [Static file hosting](files.vatthauer.xyz)
|
||||||
|
- [Nextcloud](cloud.vatthauer.xyz)
|
||||||
|
|
||||||
There are daily backups of the Gitea instance using Restic via B2.
|
There are daily backups of the Forgejo instance using Restic via B2.
|
||||||
## Installation on Raspberry Pi 400
|
|
||||||
### Resources
|
|
||||||
- https://nixos.wiki/wiki/NixOS_on_ARM/Raspberry_Pi_4
|
|
||||||
- https://nixos.wiki/wiki/NixOS_on_ARM#Installation
|
|
||||||
|
|
||||||
### Step by step
|
## Installation
|
||||||
1. Follow the [generic installation steps](https://nixos.wiki/wiki/NixOS_on_ARM#Installation) to get NixOS up and running on the Pi.
|
https://wiki.nixos.org/wiki/Install_NixOS_on_Hetzner_Cloud
|
||||||
2. Generate the default `configuration.nix` via `sudo nixos-generate-config` and do a first rebuild `sudo nixos-rebuild switch`
|
|
||||||
3. Somehow get this repository onto the machine and `cd` into it
|
|
||||||
4. We need git: `nix-shell -p git`
|
|
||||||
5. Build the flake via `sudo nixos-rebuild switch --flake .`
|
|
||||||
6. At this point you can restart
|
|
||||||
7. Login, set password, move the repository to `/home/leonv/nixos`
|
|
|
@ -89,12 +89,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
|
||||||
"plexmediaserver"
|
|
||||||
];
|
|
||||||
|
|
||||||
services.jellyfin.enable = true;
|
|
||||||
|
|
||||||
system.stateVersion = "23.11"; # Did you read the comment?
|
system.stateVersion = "23.11"; # Did you read the comment?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
security.acme.certs = {
|
security.acme.certs = {
|
||||||
"git.vatthauer.xyz".email = "leonvatthauer@outlook.com";
|
"git.vatthauer.xyz".email = "leonvatthauer@outlook.com";
|
||||||
"vaultwarden.vatthauer.xyz".email = "leonvatthauer@outlook.com";
|
"vaultwarden.vatthauer.xyz".email = "leonvatthauer@outlook.com";
|
||||||
"video.vatthauer.xyz".email = "leonvatthauer@outlook.com";
|
|
||||||
"files.vatthauer.xyz".email = "leonvatthauer@outlook.com";
|
"files.vatthauer.xyz".email = "leonvatthauer@outlook.com";
|
||||||
"www.vatthauer.xyz".email = "leonvatthauer@outlook.com";
|
"www.vatthauer.xyz".email = "leonvatthauer@outlook.com";
|
||||||
"cloud.vatthauer.xyz".email = "leonvatthauer@outlook.com";
|
"cloud.vatthauer.xyz".email = "leonvatthauer@outlook.com";
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
./ddns.nix
|
./ddns.nix
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
./forgejo.nix
|
./forgejo.nix
|
||||||
#./printing.nix
|
|
||||||
./restic.nix
|
./restic.nix
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./vaultwarden.nix
|
./vaultwarden.nix
|
||||||
|
|
|
@ -24,13 +24,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.nginx.virtualHosts."video.vatthauer.xyz" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = false;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://localhost:8096";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.nginx.virtualHosts."www.vatthauer.xyz" = {
|
services.nginx.virtualHosts."www.vatthauer.xyz" = {
|
||||||
serverAliases = [ "vatthauer.xyz" ];
|
serverAliases = [ "vatthauer.xyz" ];
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
|
@ -48,7 +41,5 @@
|
||||||
services.nginx.virtualHosts."cloud.vatthauer.xyz" = {
|
services.nginx.virtualHosts."cloud.vatthauer.xyz" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
#locations."/".proxyPass = "http://localhost:8080";
|
|
||||||
# nextcloud does location setup itself
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
services.avahi = {
|
|
||||||
enable = true;
|
|
||||||
publish.enable = true;
|
|
||||||
publish.userServices = true;
|
|
||||||
};
|
|
||||||
services.printing = {
|
|
||||||
enable = true;
|
|
||||||
drivers = [ pkgs.splix ];
|
|
||||||
browsing = true;
|
|
||||||
listenAddresses = [ "*:631" ];
|
|
||||||
allowFrom = [ "all" ];
|
|
||||||
defaultShared = true;
|
|
||||||
extraConf = ''
|
|
||||||
BrowseLocalProtocols all
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
3
gunther/README.md
Normal file
3
gunther/README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Gunther
|
||||||
|
My home setup.
|
||||||
|
![neofetch screenshot](specs.png)
|
|
@ -13,6 +13,13 @@
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# theme for gtk applications
|
# theme for gtk applications
|
||||||
orchis-theme
|
orchis-theme
|
||||||
|
(catppuccin-gtk.override {
|
||||||
|
accents = [ "flamingo" ];
|
||||||
|
size = "compact";
|
||||||
|
tweaks = [ "rimless" "black" ];
|
||||||
|
variant = "macchiato";
|
||||||
|
})
|
||||||
|
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
ausweisapp
|
ausweisapp
|
||||||
|
|
||||||
|
@ -20,7 +27,6 @@
|
||||||
z3
|
z3
|
||||||
|
|
||||||
# stuff
|
# stuff
|
||||||
tidal-hifi
|
|
||||||
jq
|
jq
|
||||||
vlc
|
vlc
|
||||||
openvpn
|
openvpn
|
||||||
|
@ -44,12 +50,8 @@
|
||||||
# development
|
# development
|
||||||
jetbrains.idea-ultimate
|
jetbrains.idea-ultimate
|
||||||
gnumake
|
gnumake
|
||||||
# texliveFull
|
|
||||||
# texlive.combined.scheme-full
|
|
||||||
# ltex-ls
|
|
||||||
ghostscript
|
ghostscript
|
||||||
jdk11
|
jdk11
|
||||||
coq
|
|
||||||
gcc
|
gcc
|
||||||
haskell.compiler.ghc981
|
haskell.compiler.ghc981
|
||||||
cabal-install
|
cabal-install
|
||||||
|
@ -78,27 +80,24 @@
|
||||||
inputs.hyprland-contrib.packages.${pkgs.system}.grimblast
|
inputs.hyprland-contrib.packages.${pkgs.system}.grimblast
|
||||||
bluez
|
bluez
|
||||||
htop
|
htop
|
||||||
archiver
|
|
||||||
gnome.file-roller
|
gnome.file-roller
|
||||||
discord
|
|
||||||
zip
|
zip
|
||||||
# emacs
|
|
||||||
shellcheck
|
|
||||||
|
|
||||||
# yubikey
|
# yubikey
|
||||||
yubico-pam
|
yubico-pam
|
||||||
yubikey-manager
|
yubikey-manager
|
||||||
|
|
||||||
# agda
|
# proof assistants
|
||||||
(agda.withPackages [
|
(agda.withPackages [
|
||||||
agdaPackages.standard-library
|
agdaPackages.standard-library
|
||||||
agdaPackages.agda-categories
|
agdaPackages.agda-categories
|
||||||
])
|
])
|
||||||
|
coq
|
||||||
lean4
|
lean4
|
||||||
|
|
||||||
# for emacs
|
# for emacs
|
||||||
texlab
|
texlab
|
||||||
|
shellcheck
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg.configHome = /home/leonv/.config;
|
xdg.configHome = /home/leonv/.config;
|
||||||
|
@ -146,6 +145,9 @@
|
||||||
font = {
|
font = {
|
||||||
name = "NotoSans Nerd Font";
|
name = "NotoSans Nerd Font";
|
||||||
};
|
};
|
||||||
|
gtk3 = {
|
||||||
|
extraConfig.gtk-application-prefer-dark-theme = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
home.sessionVariables.GTK_THEME = "Catppuccin-Macchiato-Compact-Flamingo-Dark";
|
home.sessionVariables.GTK_THEME = "Catppuccin-Macchiato-Compact-Flamingo-Dark";
|
||||||
home.sessionPath = [ "$HOME/.config/emacs/bin" ];
|
home.sessionPath = [ "$HOME/.config/emacs/bin" ];
|
||||||
|
@ -154,5 +156,14 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
dconf.settings = {
|
||||||
|
# GTK4 Setup
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
gtk-theme = "Catppuccin-Macchiato-Compact-Flamingo-Dark";
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services.mpris-proxy.enable = true;
|
services.mpris-proxy.enable = true;
|
||||||
}
|
}
|
||||||
|
|
BIN
gunther/specs.png
Normal file
BIN
gunther/specs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 71 KiB |
18
iso/README.md
Normal file
18
iso/README.md
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# ISO
|
||||||
|
This "host" is used for generating a bootable (flakes-enabled) NixOS image with sane default programs.
|
||||||
|
|
||||||
|
The image contains the following:
|
||||||
|
|
||||||
|
- Plasma 6 as graphical environment
|
||||||
|
- Calamares installer
|
||||||
|
- Git
|
||||||
|
- Vim
|
||||||
|
- Parted
|
||||||
|
- GParted
|
||||||
|
|
||||||
|
The graphical environment will autologin to the user `nixos`, alternatively there is a default user `leonv` with password `leonv`.
|
||||||
|
|
||||||
|
## Building the Image
|
||||||
|
```sh
|
||||||
|
nix build .#nixosConfigurations.iso.config.system.build.isoImage
|
||||||
|
```
|
|
@ -57,12 +57,10 @@
|
||||||
|
|
||||||
# List packages installed in system profile.
|
# List packages installed in system profile.
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# for connecting to nas
|
|
||||||
nfs-utils
|
|
||||||
|
|
||||||
# some standards for convenience
|
# some standards for convenience
|
||||||
vim
|
vim
|
||||||
parted
|
parted
|
||||||
|
gparted
|
||||||
git
|
git
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue