Compare commits

...

5 Commits

Author SHA1 Message Date
nyanloutre 1abd6bd06d fix webdav server 2024-05-14 17:39:41 +02:00
nyanloutre 3725e30663 install nextcloud 2024-05-14 17:39:29 +02:00
nyanloutre a6ce24d547 fix firewall 2024-05-14 12:08:15 +02:00
nyanloutre ab8c752a76 remove open mail port 2024-05-14 10:38:42 +02:00
nyanloutre f9871ae0e1 fix flake-util-plus migration 2024-05-14 10:38:08 +02:00
5 changed files with 48 additions and 19 deletions

View File

@ -41,8 +41,9 @@
]; ];
}; };
nixosConfigurations.loutreos = nixpkgs-unstable.lib.nixosSystem { nixosConfigurations.loutreos = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit nixpkgs-unstable; };
modules = [ modules = [
nixpkgs-unstable.nixosModules.notDetected nixpkgs-unstable.nixosModules.notDetected
simple-nixos-mailserver.nixosModule simple-nixos-mailserver.nixosModule

View File

@ -107,15 +107,6 @@
]; ];
}; };
extraCommands = '' extraCommands = ''
ip6tables -w -D FORWARD -j loutreos-forward 2>/dev/null || true
ip6tables -w -F loutreos-forward 2>/dev/null || true
ip6tables -w -X loutreos-forward 2>/dev/null || true
ip6tables -w -N loutreos-forward
ip6tables -A loutreos-forward -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A loutreos-forward -j ACCEPT -i eno2
ip6tables -A loutreos-forward -j nixos-fw-log-refuse
ip6tables -w -A FORWARD -j loutreos-forward
# Redirect local network request from server external IP to internal IP # Redirect local network request from server external IP to internal IP
# Make the server available even without internet access # Make the server available even without internet access
iptables -t nat -D PREROUTING -s 10.30.0.0/16 -d 176.180.172.105 -j DNAT --to 10.30.0.1 || true iptables -t nat -D PREROUTING -s 10.30.0.0/16 -d 176.180.172.105 -j DNAT --to 10.30.0.1 || true
@ -139,6 +130,7 @@
}; };
dhcpPrefixDelegationConfig.SubnetId = "0"; dhcpPrefixDelegationConfig.SubnetId = "0";
}; };
"40-eno1".linkConfig.RequiredForOnline = "no";
"40-eno2" = { "40-eno2" = {
networkConfig = { networkConfig = {
IPv6SendRA = true; IPv6SendRA = true;
@ -234,7 +226,7 @@
# -R 127.0.0.1:2525:127.0.0.1:25 redirect SMTP port on VPS port 2525 # -R 127.0.0.1:2525:127.0.0.1:25 redirect SMTP port on VPS port 2525
services.autossh.sessions = [ services.autossh.sessions = [
{ {
extraArguments = "-N -R 0.0.0.0:2222:127.0.0.1:22 -R 127.0.0.1:2525:127.0.0.1:25 loutre@vps772619.ovh.net"; extraArguments = "-N -R 0.0.0.0:2222:127.0.0.1:22 loutre@vps772619.ovh.net";
monitoringPort = 20000; monitoringPort = 20000;
name = "backup-ssh-reverse"; name = "backup-ssh-reverse";
user = "autossh"; user = "autossh";

View File

@ -158,6 +158,11 @@
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var/lib/nextcloud" =
{ device = "loutrepool/var/nextcloud";
fsType = "zfs";
};
fileSystems."/var/lib/private/photoprism" = fileSystems."/var/lib/private/photoprism" =
{ device = "loutrepool/var/photoprism"; { device = "loutrepool/var/photoprism";
fsType = "zfs"; fsType = "zfs";

View File

@ -1,10 +1,10 @@
{ config, lib, pkgs, inputs, ... }: { config, lib, pkgs, nixpkgs-unstable, ... }:
{ {
services = { services = {
transmission = { transmission = {
enable = true; enable = true;
package = inputs.nixpkgs-unstable.legacyPackages.x86_64-linux.transmission_4; package = nixpkgs-unstable.legacyPackages.x86_64-linux.transmission_4;
home = "/var/lib/transmission"; home = "/var/lib/transmission";
group = "medias"; group = "medias";
settings = { settings = {
@ -20,17 +20,17 @@
radarr = { radarr = {
enable = true; enable = true;
package = inputs.nixpkgs-unstable.legacyPackages.x86_64-linux.radarr; package = nixpkgs-unstable.legacyPackages.x86_64-linux.radarr;
}; };
sonarr = { sonarr = {
enable = true; enable = true;
package = inputs.nixpkgs-unstable.legacyPackages.x86_64-linux.sonarr; package = nixpkgs-unstable.legacyPackages.x86_64-linux.sonarr;
}; };
prowlarr.enable = true; prowlarr.enable = true;
jellyfin = { jellyfin = {
enable = true; enable = true;
package = inputs.nixpkgs-unstable.legacyPackages.x86_64-linux.jellyfin; package = nixpkgs-unstable.legacyPackages.x86_64-linux.jellyfin;
}; };
navidrome = { navidrome = {

View File

@ -302,14 +302,17 @@ in
# }; # };
"drive.nyanlout.re" = base { "drive.nyanlout.re" = base {
"/" = { "/" = {
index = "/index.php";
extraConfig = '' extraConfig = ''
fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:${config.services.phpfpm.pools.drive.socket}; fastcgi_pass unix:${config.services.phpfpm.pools.drive.socket};
include ${pkgs.nginx}/conf/fastcgi_params; include ${pkgs.nginx}/conf/fastcgi_params;
include ${pkgs.nginx}/conf/fastcgi.conf; include ${pkgs.nginx}/conf/fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_intercept_errors on;
fastcgi_buffers 64 4K;
client_body_temp_path /mnt/webdav/tmp_upload;
client_max_body_size 0; client_max_body_size 0;
proxy_request_buffering off;
''; '';
}; };
} // { } // {
@ -345,6 +348,10 @@ in
"challenge.amandoline-creations.fr" = base { "challenge.amandoline-creations.fr" = base {
"/".alias = "/var/www/amandoline-challenge/"; "/".alias = "/var/www/amandoline-challenge/";
}; };
${config.services.nextcloud.hostName} = {
forceSSL = true;
enableACME = true;
};
}; };
}; };
@ -381,6 +388,20 @@ in
# enable = true; # enable = true;
# package = pkgs.mariadb; # package = pkgs.mariadb;
# }; # };
nextcloud = {
enable = true;
package = pkgs.nextcloud29;
hostName = "cloud.nyanlout.re";
database.createLocally = true;
https = true;
maxUploadSize = "16G";
config = {
dbtype = "pgsql";
adminpassFile = "$CREDENTIALS_DIRECTORY/nextcloud_admin.pass";
};
};
}; };
systemd.services.nginx.serviceConfig = { systemd.services.nginx.serviceConfig = {
@ -397,6 +418,16 @@ in
]; ];
}; };
systemd.services.phpfpm-drive.serviceConfig = {
ReadWritePaths = [
"/mnt/webdav"
];
};
systemd.services.nextcloud-setup.serviceConfig = {
LoadCredential = "nextcloud_admin.pass:/mnt/secrets/nextcloud_admin.pass";
};
systemd.services.site-musique = let systemd.services.site-musique = let
djangoEnv =(pkgs.python3.withPackages (ps: with ps; [ gunicorn django_3 pillow setuptools ])); djangoEnv =(pkgs.python3.withPackages (ps: with ps; [ gunicorn django_3 pillow setuptools ]));
in { in {