diff --git a/add-sftp.sh b/add-sftp.sh
new file mode 100644
index 0000000..4bb6be0
--- /dev/null
+++ b/add-sftp.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+# Generate random username and password
+USERNAME="user$(shuf -i 10000-99999 -n 1)"
+PASSWORD=$(openssl rand -base64 12)
+
+ROOT_DIRECTORY="/var/www/webroot/ROOT"
+
+# Check if user already exists
+if id "$USERNAME" &>/dev/null; then
+ echo "User $USERNAME already exists."
+ exit 1
+fi
+
+# Create user and set password
+useradd -m -d $ROOT_DIRECTORY $USERNAME
+if [ $? -ne 0 ]; then
+ echo "Failed to create user $USERNAME."
+ exit 1
+fi
+echo "$USERNAME:$PASSWORD" | chpasswd
+
+# Set user's group to litespeed (or another group with SFTP permissions)
+usermod -aG litespeed $USERNAME
+
+# Get the hostname
+HOSTNAME=$(hostname -f)
+
+# Print the credentials
+echo "SFTP User Created Successfully!"
+echo "Username: $USERNAME"
+echo "Password: $PASSWORD"
+echo "SFTP Host: $HOSTNAME"
+echo "Port: 22"
diff --git a/manifest.jps b/manifest.jps
new file mode 100644
index 0000000..835f209
--- /dev/null
+++ b/manifest.jps
@@ -0,0 +1,72 @@
+type: update
+baseUrl: https://deploy.mightybox.io/tony/Add-SFTP-User/
+name: Add SFTP User
+
+targetNodes:
+ nodeGroup: cp
+
+user: root
+
+settings:
+ sfpform:
+ fields:
+ - type: string
+ inputType: text
+ name: root_directory
+ caption: Root Directory
+ default: "/var/www/webroot/ROOT"
+ required: true
+ - type: checkbox
+ name: enable_ssh
+ caption: Also enable SSH access
+ default: false
+
+globals:
+ username: "user${fn.random(10000,99999)}"
+ password: ${fn.password(min)}
+ sftpHost: ${env.domain}
+ sftpPort: 22
+
+onInstall:
+ - cmd[cp]: |
+ curl -O https://deploy.mightybox.io/tony/Add-SFTP-User/raw/master/scripts/add_user_sftp.sh
+ chmod +x add_user_sftp.sh
+ - success: |
+ Add-on installed successfully!
+ To create additional SFTP accounts, click on the "Add new SFTP user" button.
+
+actions:
+ add_sftp_user:
+ script: /scripts/add-sftp-user.cs?_r=${fn.random}&enable_ssh=${settings.enable_ssh}
+
+success:
+ email: |
+ Connection Details
+ SFTP Host: ${globals.sftpHost}
+ Port: ${globals.sftpPort}
+
+ Login Credentials
+ Username: ${globals.username}
+ Password: ${globals.password}
+ text:
+ en: |
+ Connection Details
+
+ SFTP Host: ${globals.sftpHost}
+
+ Port: ${globals.sftpPort}
+
+
+ Login Credentials
+
+ Username: ${globals.username}
+
+ Password: ${globals.password}
+
+buttons:
+ - settings: sfpform
+ action: add_sftp_user
+ caption: Add SFTP/SSH User
+ confirmText: "Are you sure you want to add this SFTP user?"
+
+