nextcloud & jellyfin initial setup
misc adjustments
This commit is contained in:
parent
811068a7c1
commit
88ae340840
@ -76,6 +76,8 @@ cluttered, for example, I may create a module for systemd units.
|
|||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
./nginx.nix
|
||||||
|
/etc/nixos/cachix.nix
|
||||||
<home-manager/nixos>
|
<home-manager/nixos>
|
||||||
<agenix/modules/age.nix>
|
<agenix/modules/age.nix>
|
||||||
"${nix-gaming}/modules/pipewireLowLatency.nix"
|
"${nix-gaming}/modules/pipewireLowLatency.nix"
|
||||||
@ -174,7 +176,13 @@ latency will require expanding these settings.
|
|||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
hardware.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
sound.enable = false;
|
sound.enable = false;
|
||||||
security.rtkit.enable = true;
|
security = {
|
||||||
|
rtkit.enable = true;
|
||||||
|
acme = {
|
||||||
|
acceptTerms = true;
|
||||||
|
defaults.email = "captainjawz@outlook.com";
|
||||||
|
};
|
||||||
|
};
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alsa.enable = true;
|
alsa.enable = true;
|
||||||
@ -228,6 +236,13 @@ name.
|
|||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
|
packageOverrides = pkgs: {
|
||||||
|
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
||||||
|
};
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
"nodejs-14.21.3"
|
||||||
|
"openssl-1.1.1u"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -244,6 +259,21 @@ intention of reduce the number of dotfiles, however I will keep it exclusively
|
|||||||
as a dotfile and service manager.
|
as a dotfile and service manager.
|
||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
|
users.groups.nextcloud.gid = 990;
|
||||||
|
users.users.nextcloud = {
|
||||||
|
isNormalUser = false;
|
||||||
|
uid = 990;
|
||||||
|
extraGroups = [ "nextcloud" ];
|
||||||
|
packages = (with pkgs; [
|
||||||
|
nodejs_14
|
||||||
|
### Currently incompatible with newer versions, and compiling
|
||||||
|
### an older version takes 7 hours.
|
||||||
|
# cudatoolkit
|
||||||
|
# python3Packages.tensorflowWithCuda
|
||||||
|
# cudaPackages.cudatoolkit
|
||||||
|
# cudaPackages.cudnn
|
||||||
|
]);
|
||||||
|
};
|
||||||
users.users.jawz = {
|
users.users.jawz = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" "networkmanager" "docker" "scanner" "lp" ];
|
extraGroups = [ "wheel" "networkmanager" "docker" "scanner" "lp" ];
|
||||||
@ -377,7 +407,6 @@ du-dust # rusty du
|
|||||||
gocryptfs # encrypted filesystem! shhh!!!
|
gocryptfs # encrypted filesystem! shhh!!!
|
||||||
exa # like ls but with colors
|
exa # like ls but with colors
|
||||||
trashy # oop! didn't meant to delete that
|
trashy # oop! didn't meant to delete that
|
||||||
ffmpeg # coolest video converter!
|
|
||||||
# neofetch # use once for brag, never again
|
# neofetch # use once for brag, never again
|
||||||
rmlint # probably my favourite app, amazing dupe finder that integrates well with BTRFS
|
rmlint # probably my favourite app, amazing dupe finder that integrates well with BTRFS
|
||||||
tldr # man for retards
|
tldr # man for retards
|
||||||
@ -441,8 +470,8 @@ poetry # dependency management made easy
|
|||||||
# cabal-install # haskell interface
|
# cabal-install # haskell interface
|
||||||
|
|
||||||
# JS
|
# JS
|
||||||
# jq # linting
|
|
||||||
nodejs # not as bad as I thought
|
nodejs # not as bad as I thought
|
||||||
|
# jq # linting
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** HUNSPELL
|
** HUNSPELL
|
||||||
@ -464,6 +493,7 @@ main draws of Linux for me.
|
|||||||
adw-gtk3
|
adw-gtk3
|
||||||
# gradience # theme customizer, allows you to modify adw-gtk3 themes
|
# gradience # theme customizer, allows you to modify adw-gtk3 themes
|
||||||
gnome.gnome-tweaks # tweaks for the gnome desktop environment
|
gnome.gnome-tweaks # tweaks for the gnome desktop environment
|
||||||
|
qgnomeplatform
|
||||||
|
|
||||||
# Fonts
|
# Fonts
|
||||||
(nerdfonts.override {
|
(nerdfonts.override {
|
||||||
@ -637,13 +667,13 @@ if command -v fzf-share >/dev/null; then
|
|||||||
source "$(fzf-share)/completion.bash"
|
source "$(fzf-share)/completion.bash"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
nixos-magic () {
|
nixos-reload () {
|
||||||
local nix_file="$HOME/Development/NixOS/configuration.nix"
|
local nix_file="$HOME/Development/NixOS/configuration.nix"
|
||||||
local hardware_file="$HOME/Development/NixOS/hardware-configuration.nix"
|
local hardware_file="$HOME/Development/NixOS/hardware-configuration.nix"
|
||||||
nixfmt "$nix_file" && nixfmt "$hardware_file"
|
nixfmt "$nix_file" && nixfmt "$hardware_file"
|
||||||
sudo nixos-rebuild switch -I nixos-config="$nix_file"
|
sudo nixos-rebuild switch -I nixos-config="$nix_file"
|
||||||
sudo systemctl restart docker
|
# sudo systemctl restart docker
|
||||||
sudo systemctl restart docker-compose
|
# sudo systemctl restart docker-compose
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
@ -655,7 +685,6 @@ nixos-magic () {
|
|||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
programs = {
|
programs = {
|
||||||
starship.enable = true;
|
|
||||||
direnv = {
|
direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
@ -733,6 +762,10 @@ may be challenging.
|
|||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
wget
|
wget
|
||||||
docker-compose # easy way to migrate my docker anywhere!
|
docker-compose # easy way to migrate my docker anywhere!
|
||||||
|
jellyfin-ffmpeg # coolest video converter!
|
||||||
|
dlib
|
||||||
|
# nv-codec-headers-11
|
||||||
|
# cudatoolkit
|
||||||
];
|
];
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -847,14 +880,15 @@ snapraid = {
|
|||||||
};
|
};
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
* PROGRAMS & SERVICES
|
* SYSTEM PROGRAMS & SERVICES
|
||||||
Some programs get enabled and installed through here, as well as the activation
|
Some programs get enabled and installed through here, as well as the activation
|
||||||
of some services.
|
of some services.
|
||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
programs = {
|
programs = {
|
||||||
|
# mtr.enable = true;
|
||||||
|
starship.enable = true;
|
||||||
fzf.fuzzyCompletion = true;
|
fzf.fuzzyCompletion = true;
|
||||||
mtr.enable = true;
|
|
||||||
neovim = {
|
neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
@ -874,6 +908,97 @@ programs = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
jellyfin = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
nextcloud = {
|
||||||
|
enable = true;
|
||||||
|
# package = pkgs.nextcloud27;
|
||||||
|
maxUploadSize = "50G";
|
||||||
|
enableImagemagick = true;
|
||||||
|
appstoreEnable = true;
|
||||||
|
extraAppsEnable = true;
|
||||||
|
hostName = "cloud.servidos.lat";
|
||||||
|
https = true;
|
||||||
|
caching = {
|
||||||
|
redis = true;
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
adminpassFile = "${pkgs.writeText "adminpass" "Overlying-Hatchback-Charting-Encounter-Deface-Gallantly7"}";
|
||||||
|
overwriteProtocol = "https";
|
||||||
|
trustedProxies = [ "nginx" ];
|
||||||
|
extraTrustedDomains = [ "localhost:80" "cloud.danilo-reyes.com" "cloud.servidos.lat" ];
|
||||||
|
defaultPhoneRegion = "MX";
|
||||||
|
dbtype = "pgsql";
|
||||||
|
dbuser = "nextcloud";
|
||||||
|
dbpassFile = "${pkgs.writeText "dbpass" "sopacerias"}";
|
||||||
|
dbtableprefix = "oc_";
|
||||||
|
dbname = "nextcloud";
|
||||||
|
};
|
||||||
|
extraOptions = {
|
||||||
|
redis = {
|
||||||
|
host = "localhost";
|
||||||
|
port = 6379;
|
||||||
|
};
|
||||||
|
memcache = {
|
||||||
|
local = "\\OC\\Memcache\\Redis";
|
||||||
|
distributed = "\\OC\\Memcache\\Redis";
|
||||||
|
locking = "\\OC\\Memcache\\Redis";
|
||||||
|
};
|
||||||
|
mail_smtpmode = "sendmail";
|
||||||
|
mail_sendmailmode = "pipe";
|
||||||
|
"installed" = true;
|
||||||
|
};
|
||||||
|
phpOptions = {
|
||||||
|
display_errors = "stderr";
|
||||||
|
error_reporting = "E_ALL & ~E_DEPRECATED & ~E_STRICT";
|
||||||
|
expose_php = "Off";
|
||||||
|
"opcache.enable_cli" = "1";
|
||||||
|
"opcache.fast_shutdown" = "1";
|
||||||
|
"opcache.interned_strings_buffer" = "10";
|
||||||
|
"opcache.max_accelerated_files" = "10000";
|
||||||
|
"opcache.memory_consumption" = "128";
|
||||||
|
"opcache.revalidate_freq" = "1";
|
||||||
|
"openssl.cafile" = "/etc/ssl/certs/ca-certificates.crt";
|
||||||
|
catch_workers_output = "yes";
|
||||||
|
short_open_tag = "Off";
|
||||||
|
# defaults end here
|
||||||
|
upload_max_filesize = "50G";
|
||||||
|
post_max_size = "50G";
|
||||||
|
memory_limit = "2G";
|
||||||
|
};
|
||||||
|
phpExtraExtensions = all: [ all.pdlib all.bz2 ];
|
||||||
|
};
|
||||||
|
postgresql = {
|
||||||
|
enable = true;
|
||||||
|
ensureDatabases = [ "paperless" "nextcloud" "mealie" ];
|
||||||
|
ensureUsers = [
|
||||||
|
{
|
||||||
|
name = "nextcloud";
|
||||||
|
ensurePermissions = {
|
||||||
|
"DATABASE nextcloud" = "ALL PRIVILEGES";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "paperless";
|
||||||
|
ensurePermissions = {
|
||||||
|
"DATABASE paperless" = "ALL PRIVILEGES";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "mealie";
|
||||||
|
ensurePermissions = {
|
||||||
|
"DATABASE mealie" = "ALL PRIVILEGES";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
authentication = pkgs.lib.mkOverride 10 ''
|
||||||
|
local all all trust
|
||||||
|
host all all 127.0.0.1/32 trust
|
||||||
|
host all all ::1/128 trust
|
||||||
|
'';
|
||||||
|
};
|
||||||
printing = {
|
printing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
drivers = [ pkgs.hplip pkgs.hplipWithPlugin ];
|
drivers = [ pkgs.hplip pkgs.hplipWithPlugin ];
|
||||||
@ -918,26 +1043,26 @@ the best way to define them for now, is using nix.
|
|||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
systemd.services = {
|
systemd.services = {
|
||||||
"docker-compose" = {
|
# "docker-compose" = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
restartIfChanged = true;
|
# restartIfChanged = true;
|
||||||
description = "Start docker-compose servers";
|
# description = "Start docker-compose servers";
|
||||||
after = [ "docker.service" "docker.socket" ];
|
# after = [ "docker.service" "docker.socket" ];
|
||||||
requires = [ "docker.service" "docker.socket" ];
|
# requires = [ "docker.service" "docker.socket" ];
|
||||||
wantedBy = [ "default.target" ];
|
# wantedBy = [ "default.target" ];
|
||||||
environment = {
|
# environment = {
|
||||||
FILE = "/home/jawz/Development/Docker/docker-compose.yml";
|
# FILE = "/home/jawz/Development/Docker/docker-compose.yml";
|
||||||
};
|
# };
|
||||||
path = [
|
# path = [
|
||||||
pkgs.docker-compose
|
# pkgs.docker-compose
|
||||||
];
|
# ];
|
||||||
serviceConfig = {
|
# serviceConfig = {
|
||||||
Restart = "on-failure";
|
# Restart = "on-failure";
|
||||||
RestartSec = 30;
|
# RestartSec = 30;
|
||||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f \${FILE} up --remove-orphans";
|
# ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f \${FILE} up --remove-orphans";
|
||||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f \${FILE} down";
|
# ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f \${FILE} down";
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
"nextcloud_scrapsync" = {
|
"nextcloud_scrapsync" = {
|
||||||
description = "Sync scrapped files with nextcloud";
|
description = "Sync scrapped files with nextcloud";
|
||||||
wantedBy = [ "default.target" ];
|
wantedBy = [ "default.target" ];
|
||||||
@ -1084,11 +1209,13 @@ nix = {
|
|||||||
"https://nix-gaming.cachix.org"
|
"https://nix-gaming.cachix.org"
|
||||||
"https://nixpkgs-python.cachix.org"
|
"https://nixpkgs-python.cachix.org"
|
||||||
"https://devenv.cachix.org"
|
"https://devenv.cachix.org"
|
||||||
|
"https://cuda-maintainers.cachix.org"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
|
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
|
||||||
"nixpkgs-python.cachix.org-1:hxjI7pFxTyuTHn2NkvWCrAUcNZLNS3ZAvfYNuYifcEU="
|
"nixpkgs-python.cachix.org-1:hxjI7pFxTyuTHn2NkvWCrAUcNZLNS3ZAvfYNuYifcEU="
|
||||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||||
|
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
gc = {
|
gc = {
|
||||||
|
|||||||
@ -89,6 +89,16 @@ in {
|
|||||||
options = [ "compress=zstd:3" "space_cache=v2" "commit=120" "datacow" ];
|
options = [ "compress=zstd:3" "space_cache=v2" "commit=120" "datacow" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fileSystems."/var/lib/nextcloud/data" = {
|
||||||
|
device = "/mnt/disk1/nextcloud";
|
||||||
|
options = [ "bind" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/mnt/jellyfin/media" = {
|
||||||
|
device = "/mnt/disk1/multimedia/media";
|
||||||
|
options = [ "bind" "ro" ];
|
||||||
|
};
|
||||||
|
|
||||||
fileSystems."/mnt/disk2" = {
|
fileSystems."/mnt/disk2" = {
|
||||||
device = "/dev/mapper/disk2";
|
device = "/dev/mapper/disk2";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
@ -107,6 +117,11 @@ in {
|
|||||||
options = [ "compress=zstd:3" "space_cache=v2" "commit=120" "datacow" ];
|
options = [ "compress=zstd:3" "space_cache=v2" "commit=120" "datacow" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fileSystems."/mnt/jellyfin/external" = {
|
||||||
|
device = "/mnt/seedbox/external";
|
||||||
|
options = [ "bind" "ro" ];
|
||||||
|
};
|
||||||
|
|
||||||
fileSystems."/mnt/parity" = {
|
fileSystems."/mnt/parity" = {
|
||||||
device = "/dev/disk/by-uuid/643b727a-555d-425c-943c-62f5b93631c9";
|
device = "/dev/disk/by-uuid/643b727a-555d-425c-943c-62f5b93631c9";
|
||||||
fsType = "xfs";
|
fsType = "xfs";
|
||||||
@ -160,8 +175,15 @@ in {
|
|||||||
nvidia.modesetting.enable = true;
|
nvidia.modesetting.enable = true;
|
||||||
opengl = {
|
opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
setLdLibraryPath = true;
|
||||||
driSupport = true;
|
driSupport = true;
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||||
|
vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||||
|
vaapiVdpau
|
||||||
|
libvdpau-va-gl
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# hardware.cpu.intel.updateMicrocode =
|
# hardware.cpu.intel.updateMicrocode =
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user