Add nextcloud and some other stuff

This commit is contained in:
xqtc161 2024-06-19 10:45:20 +02:00
parent 5dea678ae1
commit 96fdaf151b
3 changed files with 144 additions and 1 deletions

View file

@ -73,6 +73,11 @@
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelModules = ["v4l2loopback"];
boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback];
boot.extraModprobeConfig = ''
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
'';
networking.hostName = "asmodeus"; # Define your hostname. networking.hostName = "asmodeus"; # Define your hostname.
# Pick only one of the below networking options. # Pick only one of the below networking options.
@ -105,6 +110,8 @@
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = ["nvidia"];
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
# Configure keymap in X11 # Configure keymap in X11
services.xserver.xkb.layout = "us"; services.xserver.xkb.layout = "us";
@ -163,6 +170,8 @@
jellyfin jellyfin
jellyfin-web jellyfin-web
jellyfin-ffmpeg jellyfin-ffmpeg
v4l-utils
]; ];
#programs.nix-ld.enable = true; #programs.nix-ld.enable = true;
@ -181,6 +190,9 @@
services.jellyfin.enable = true; services.jellyfin.enable = true;
services.jellyfin.user = "xqtc"; services.jellyfin.user = "xqtc";
services.ollama.enable = true;
services.ollama.acceleration = "cuda";
#services.calibre-web = { #services.calibre-web = {
# enable = true; # enable = true;
# user = "xqtc"; # user = "xqtc";
@ -215,7 +227,7 @@
services.tailscale.enable = true; services.tailscale.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall.allowedTCPPorts = [2234 8096 8080 8082]; networking.firewall.allowedTCPPorts = [2234 4747 8096 8080 8082];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;

View file

@ -16,6 +16,7 @@ with lib; {
./uptime.nix ./uptime.nix
./networking.nix ./networking.nix
./git.nix ./git.nix
./nextcloud.nix
./docker.nix ./docker.nix
./nfs.nix ./nfs.nix
../../gc.nix ../../gc.nix

View file

@ -0,0 +1,130 @@
{
config,
lib,
pkgs,
...
}: {
imports = [
"${fetchTarball {
url = "https://github.com/onny/nixos-nextcloud-testumgebung/archive/fa6f062830b4bc3cedb9694c1dbf01d5fdf775ac.tar.gz";
sha256 = "0gzd0276b8da3ykapgqks2zhsqdv4jjvbv97dsxg0hgrhb74z0fs";
}}/nextcloud-extras.nix"
];
services.nextcloud = {
webserver = "caddy";
};
services.postgresql = {
enable = true;
identMap = ''
# ArbitraryMapName systemUser DBUser
superuser_map root postgres
superuser_map postgres postgres
# Let other names login as themselves
superuser_map /^(.*)$ \1
'';
authentication = pkgs.lib.mkOverride 10 ''
#type database DBuser auth-method optional_ident_map
local sameuser all peer map=superuser_map
'';
};
services.nextcloud = {
enable = true;
package = pkgs.nextcloud29;
hostName = "cloud.heroin.trade";
https = true;
database.createLocally = true;
config = {
dbtype = "pgsql";
adminpassFile = "/etc/nx_pass";
};
configureRedis = true;
maxUploadSize = "4G";
phpOptions."opcache.interned_strings_buffer" = "32";
extraApps = {
inherit
(config.services.nextcloud.package.packages.apps)
contacts
calendar
notes
previewgenerator
;
recognize = pkgs.fetchNextcloudApp {
sha256 = "sha256-7qp9UbUcMwBNdGixaR0BAigMAtlyCAN39WxqHbsFVGE=";
url = "https://github.com/nextcloud/recognize/releases/download/v7.0.0/recognize-7.0.0.tar.gz";
license = "agpl3Only";
};
};
extraAppsEnable = true;
settings = {
maintenance_window_start = 100;
default_phone_region = "DE";
log_type = "file";
enabledPreviewProviders = [
"OC\\Preview\\BMP"
"OC\\Preview\\GIF"
"OC\\Preview\\JPEG"
"OC\\Preview\\Krita"
"OC\\Preview\\MarkDown"
"OC\\Preview\\MP3"
"OC\\Preview\\OpenDocument"
"OC\\Preview\\PNG"
"OC\\Preview\\TXT"
"OC\\Preview\\XBitmap"
"OC\\Preview\\HEIC"
"OC\\Preview\\Font"
"OC\\Preview\\HEIC"
"OC\\Preview\\Illustrator"
"OC\\Preview\\Movie"
"OC\\Preview\\MSOffice2003"
"OC\\Preview\\MSOffice2007"
"OC\\Preview\\MSOfficeDoc"
"OC\\Preview\\PDF"
"OC\\Preview\\Photoshop"
"OC\\Preview\\Postscript"
"OC\\Preview\\StarOffice"
"OC\\Preview\\SVG"
"OC\\Preview\\TIFF"
"OC\\Preview\\EMF"
];
};
secretFile = "/etc/nx_sc_opt";
};
# Execute `nextcloud-occ preview:generate-all` before running this timer!
systemd.timers."nextcloud-previewgenerator" = {
wantedBy = ["timers.target"];
timerConfig = {
OnBootSec = "15m";
OnUnitActiveSec = "15m";
Unit = "nextcloud-previewgenerator.service";
};
};
systemd.services."nextcloud-previewgenerator" = {
script = ''
${config.services.nextcloud.occ}/bin/nextcloud-occ preview:pre-generate
'';
serviceConfig = {
Type = "oneshot";
User = "root";
};
};
environment.systemPackages = with pkgs; [
# previewgenerator
ghostscript
ffmpeg-headless
# recognize
gnumake
nodejs_20
nodejs_20.pkgs.node-pre-gyp
python3
util-linux
];
}