{ pkgs, lib, config, ... }: with lib; let
	cfg = config.module.ftpd;
in {
	options = {
		module.ftpd = {
			enable = mkEnableOption "Enable FTP server";
			storage = mkOption {
				default = null;
				type    = types.str;
			};
		};
	};

	config = mkIf cfg.enable {
		services.vsftpd = {
			enable                  = true;
			anonymousUser           = true;
			anonymousUserNoPassword = true;
			anonymousUploadEnable   = true;
			anonymousMkdirEnable    = true;
			anonymousUmask          = "000";
			anonymousUserHome       = cfg.storage;
			allowWriteableChroot    = true;
			writeEnable             = true;
			localUsers              = false;
			extraConfig = ''
				anon_other_write_enable=YES
			'';
		};
	};
}