type: update
name: Add SFTP User
targetNodes:
nodeGroup: cp
settings:
sfpform:
fields:
- type: string
inputType: text
name: root_directory
caption: Root Directory
default: "/var/www/webroot/ROOT/"
description: "A user-specific directory will be created under this path."
required: false
- 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]: mkdir -p /home/jelastic/add-sftp-user-addon/
- cmd[cp]: mkdir -p /home/jelastic/add-sftp-user-addon/logs
- cmd[cp]: wget https://deploy-proxy.mightybox.io/addons/add-sftp-user/raw/branch/main/add-sftp.sh -O /home/jelastic/add-sftp-user-addon/add-sftp.sh
- cmd[cp]: chmod +x /home/jelastic/add-sftp-user-addon/*.sh
- cmd[cp]:
commands:
- echo -e "\nMatch User user*\nPasswordAuthentication yes" >> /etc/ssh/sshd_config
user: root
- cmd[cp]:
commands:
- chown root:root /var/www/webroot/ROOT
- chmod 775 /var/www/webroot/ROOT
user: root
- cmd[cp]:
commands:
- systemctl restart sshd
user: root
- api: environment.control.RestartContainer
nodeGroup: cp
nodeid: ${nodes.cp.id}
- return: installSuccess
actions:
add_sftp_user:
- cmd[cp]:
commands: bash /home/jelastic/add-sftp-user-addon/add-sftp.sh ${globals.username} ${globals.password}
user: root
- if ("${response.exitStatus}" != "0"):
return: sftpError
- return: sftpSuccess
responses:
installSuccess:
type: success
message: "Installed Successfully"
sftpError:
type: error
message: "Failed to add SFTP user. Please check the server logs for more details."
sftpSuccess:
type: success
email: |-
Connection Details
SFTP Host: ${globals.sftpHost}
Port: ${globals.sftpPort}
Login Credentials
Username: ${globals.username}
Password: ${globals.password}
message:
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?"