diff --git a/components/config_form.templ b/components/config_form.templ index 7068c13..14d2957 100644 --- a/components/config_form.templ +++ b/components/config_form.templ @@ -398,6 +398,8 @@ templ ConfigForm(ctx context.Context, data ConfigFormData) { sourcePort = 22; } else if (sourceType === 'ftp') { sourcePort = 21; + } else if (sourceType === 'hetzner') { + sourcePort = 23; } } @@ -406,25 +408,32 @@ templ ConfigForm(ctx context.Context, data ConfigFormData) { destPort = 22; } else if (destinationType === 'ftp') { destPort = 21; + } else if (destinationType === 'hetzner') { + destPort = 23; } } // Initialize command requirements updateCommandRequirements(); })" - x-effect="if (sourceType === 'sftp' && (sourcePort === 0 || sourcePort === 21)) { + x-effect="if (sourceType === 'sftp' && (sourcePort === 0 || sourcePort === 21 || sourcePort === 23)) { sourcePort = 22; console.log('Updating source port to 22 for SFTP'); - } else if (sourceType === 'ftp' && (sourcePort === 0 || sourcePort === 22)) { + } else if (sourceType === 'ftp' && (sourcePort === 0 || sourcePort === 22 || sourcePort === 23)) { sourcePort = 21; console.log('Updating source port to 21 for FTP'); - }" - x-effect="if (destinationType === 'sftp' && (destPort === 0 || destPort === 21)) { + } else if (sourceType === 'hetzner' && (sourcePort === 0 || sourcePort === 22 || sourcePort === 21)) { + sourcePort = 23; + console.log('Updating source port to 23 for Hetzner'); + } else if (destinationType === 'sftp' && (destPort === 0 || destPort === 21 || destPort === 23)) { destPort = 22; console.log('Updating destination port to 22 for SFTP'); - } else if (destinationType === 'ftp' && (destPort === 0 || destPort === 22)) { + } else if (destinationType === 'ftp' && (destPort === 0 || destPort === 22 || destPort === 23)) { destPort = 21; console.log('Updating destination port to 21 for FTP'); + } else if (destinationType === 'hetzner' && (destPort === 0 || destPort === 22 || destPort === 21)) { + destPort = 23; + console.log('Updating destination port to 23 for Hetzner'); }" > @@ -545,6 +554,10 @@ templ ConfigForm(ctx context.Context, data ConfigFormData) { @source.GooglePhotosSourceForm() + + + @source.HetznerSourceForm() + @@ -628,6 +641,10 @@ templ ConfigForm(ctx context.Context, data ConfigFormData) { @destination.GooglePhotosDestinationForm() + + + @destination.HetznerDestinationForm() + @@ -642,30 +659,7 @@ templ ConfigForm(ctx context.Context, data ConfigFormData) { @common.ArchiveOptions() -
- Directory where files will be saved - Remote path on the server - Path within bucket. Leave empty for bucket root. - Share directory path - Path on remote server - Folder in Google Drive - Album name in Google Photos -
-+ Your Hetzner Storage Box hostname (e.g., uXXXXXX.your-storagebox.de) +
++ Connection port (default: 23) +
++ Your Hetzner Storage Box username (typically matches your Storage Box number) +
++ Your Hetzner Storage Box password +
++ Path to your SSH private key file (must be readable by the application) +
++ Path on your Storage Box (e.g., /backups, /path/to/files) +
+For increased security, consider using SSH key authentication instead of password authentication when possible.
++ Your Hetzner Storage Box hostname (e.g., uXXXXXX.your-storagebox.de) +
++ Connection port (default: 23) +
++ Your Hetzner Storage Box username (typically matches your Storage Box number) +
++ Your Hetzner Storage Box password +
++ Path to your SSH private key file (must be readable by the application) +
++ Path on your Storage Box (e.g., /backups, /path/to/files) +
+For increased security, consider using SSH key authentication instead of password authentication when possible.
+