Compare commits
No commits in common. "748e4a4e9645a0655f3c98727a4a2e0202b3e7c9" and "5d88905c2a5c396b80c01c89381c3c4ef975fb73" have entirely different histories.
748e4a4e96
...
5d88905c2a
11 changed files with 68 additions and 55 deletions
|
@ -1,14 +1,20 @@
|
||||||
# Dafoe
|
# Willem
|
||||||
|
|
||||||
Dafoe is a server running on a CX11 cloud server by [Hetzner](hetzner.com).
|
Willem is a server running on a Raspberry Pi 400 offering the following services:
|
||||||
The server offers the following services:
|
- [Gitea](git.vatthauer.xyz)
|
||||||
- [Resumee Website](www.vatthauery.xyz)
|
- [Vaultwarden](bitwarden.vatthauer.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 Forgejo instance using Restic via B2.
|
There are daily backups of the Gitea 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
|
||||||
|
|
||||||
## Installation
|
### Step by step
|
||||||
https://wiki.nixos.org/wiki/Install_NixOS_on_Hetzner_Cloud
|
1. Follow the [generic installation steps](https://nixos.wiki/wiki/NixOS_on_ARM#Installation) to get NixOS up and running on the Pi.
|
||||||
|
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,6 +89,12 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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,6 +3,7 @@
|
||||||
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,6 +5,7 @@
|
||||||
./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,6 +24,13 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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;
|
||||||
|
@ -41,5 +48,7 @@
|
||||||
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
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
20
dafoe/services/printing.nix
Normal file
20
dafoe/services/printing.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{ 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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,3 +0,0 @@
|
||||||
# Gunther
|
|
||||||
My home setup.
|
|
||||||
![neofetch screenshot](specs.png)
|
|
|
@ -13,13 +13,6 @@
|
||||||
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
|
||||||
|
|
||||||
|
@ -27,6 +20,7 @@
|
||||||
z3
|
z3
|
||||||
|
|
||||||
# stuff
|
# stuff
|
||||||
|
tidal-hifi
|
||||||
jq
|
jq
|
||||||
vlc
|
vlc
|
||||||
openvpn
|
openvpn
|
||||||
|
@ -50,8 +44,12 @@
|
||||||
# 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
|
||||||
|
@ -80,24 +78,27 @@
|
||||||
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
|
||||||
|
|
||||||
# proof assistants
|
# agda
|
||||||
(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;
|
||||||
|
@ -145,9 +146,6 @@
|
||||||
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" ];
|
||||||
|
@ -156,14 +154,5 @@
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 71 KiB |
|
@ -1,18 +0,0 @@
|
||||||
# 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,10 +57,12 @@
|
||||||
|
|
||||||
# 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