CrushFTP supports allowing users to self register on your server. This is not automatic, and you must configure and personalize this experience. You have extensive controls over the entire process. The first step is to create a username in the User Manager that will be used for this. Keep it simple, and use a basic simple password too. Do not assign them any additional privileges as this will be a public account that is used for doing registrations. I suggest an account name "register" with a password of "register". This will allow you to use a URL like this to reach the registration page:
https://www.domain.com/?u=register&p=register&path=/WebInterface/new-ui/messageForm.htmlWhen this page loads, it looks at the URL to see the name of the HTML file. The default is "messageForm" and it's fine to keep it this way. It then asks the server to give it the registration form named "messageForm" as long as it has been assigned to the "register" user. If it hasn't, you will just get a blank page. If you do not use this custom login.html page, the registration can still be processed, its just a little less intuitive to the user that it was processed. The next step is to make a form named "messageForm" in the Preferences, WebInterface, Custom Forms. There are only two required items for the form, the username and password. Every field item must have a 'name' that starts with 'registration_'. So for the two required items, they would be 'registration_username' and 'registration_password'. You can have more items, just look at a user.XML file to see other element names. So if you wanted to include email in the registration, you would do 'registration_email'. If you want to prepend the user to one group you can use 'pendingSelfRegistration' as a dropdown box and set the possible group values in it. The user that way will be part of the selected group, just will need to be enabled by the group admin.
Now that you have the form defined, and the registration user created, you need to assign this form to the registration user. You do this in the User Manager. Reload the page if it was open before. Use the Quick Jump drop down to get to the WebInterface section. Then assign your form there.
Save all changes, and you are ready to test. When you login as the registration username, and go to that specific HTML page, this form will be loaded and sent in a 'registration' request mode.
https://www.domain.com/?u=register&p=register&path=/WebInterface/new-ui/messageForm.htmlThis is what the form looks like for the user:
When a user self registers, their account is created as a disabled user, and added to a specific group called "pendingSelfRegistration". This group will contain all users that sign up in this way. You can then review users in the group, enable their accounts, and remove them from the group. Or you may simply delete the user if they are not approved.
You can also do more advanced things with this as well. You can attach events that send email notifications thanking users for registering, and for letting you know there is a user that is pending. This is done via the events section, and using an event for when a user "accepts disclaimer" as this is the same form.
If you want to enable the self registered accounts without user interference, you can use the following event, on the register user. Set the path according to the machine that is hosting CrushFTP. The path, depending on the host Operation System, should be something like: /Applications/CrushFTP11/users/MainUsers/{registration_username}/user.XML or C:/Program Files/CrushFTP11/users/MainUsers/{registration_username}/user.XML or /var/opt/CrushFTP11//users/MainUsers/{registration_username}/user.XML Need to clean the other tabs’ prefilled input fields, only the Find/Replace tab is in use now: replace the <max_logins>-1</max_logins> string to <max_logins>0</max_logins>.
The requirement might emerge, that newly registered users be organized by the User Connection Group they register from, and be added to a specific User Group in User Manager (more info: Groups).
Each server listener on Preferences, IP Servers can have its own User Connection Group (which is by default the MainUsers). In our example port 4442 will be associated with “warehouse”, port 4443 to “office” User Connection Group. Our goal is that users who are coming from port 4442, warehouse, to be automatically members of the “warehouse-group” group, and similarly, users who are coming from port 4443, office, to be automatically members of the “office-group”.
For this we need to duplicate our “register” user. From the CrushFTP install folder, users/MainUsers/ need to copy the register/ subfolder and paste it into the users/warehouse/ folder and into the /users/office/ folder. Also, need a group template user for each group, which has the exact same name as the group (e.x. warehouse-group and office-group). This user will facilitate the bulk user management within the group through inheritance.
The group can be created automatically by adding a dropdown combobox item to our messageForm: The dropdown item’s Label is arbitrary, its Name must be “pendingSelfRegistration”, its Value is composed of the User Connection Group name, referenced by {user_listen_ip_port} and the ‘group’ suffix, so the value will be “{user_listen_ip_port}-group”
The WriteFile tasks’s file path also need to be adjusted to
/Applications/CrushFTP11/users/{user_listen_ip_port}/{registration_username}/user.XML
or
C:/Program Files/CrushFTP11/users/{user_listen_ip_port}/{registration_username}/user.XML
or
/var/opt/CrushFTP11//users/{user_listen_ip_port}/{registration_username}/user.XML
The result: the self-registered user, coming from port 4443 (office connection group) is
-bound correctly to the office connection group
-added to the office user group
-being enabled
Add new attachment
List of attachments
| Kind | Attachment Name | Size | Version | Date Modified | Author | Change note |
|---|---|---|---|---|---|---|
png |
assignform.png | 17.4 kB | 2 | 11-Nov-2025 05:49 | Sandor | |
png |
group_combo.png | 14.4 kB | 1 | 11-Nov-2025 05:50 | Sandor | |
png |
registration.png | 29.7 kB | 4 | 11-Nov-2025 05:50 | Sandor | |
png |
registration_with_group.png | 30.8 kB | 1 | 11-Nov-2025 05:50 | Sandor | |
png |
result.png | 33.2 kB | 1 | 11-Nov-2025 05:56 | Sandor | |
png |
selfregister auto enable0.png | 116.0 kB | 1 | 05-Dec-2023 05:32 | Halmágyi Árpád | |
png |
selfregister auto enable1.png | 54.7 kB | 3 | 05-Dec-2023 05:32 | Halmágyi Árpád | |
png |
selfregister auto enable2.png | 22.9 kB | 3 | 05-Dec-2023 05:32 | Halmágyi Árpád | |
png |
selfregister auto enable3.png | 22.3 kB | 3 | 05-Dec-2023 05:32 | Halmágyi Árpád | |
png |
selfregister auto enable4.png | 63.2 kB | 3 | 05-Dec-2023 05:32 | Halmágyi Árpád | |
png |
selfregister_auto_enable0.png | 53.0 kB | 1 | 11-Nov-2025 05:51 | Sandor | |
png |
selfregister_auto_enable1.png | 21.2 kB | 1 | 11-Nov-2025 05:51 | Sandor | |
png |
selfregister_auto_enable2.png | 21.4 kB | 1 | 11-Nov-2025 05:51 | Sandor | |
png |
selfregister_auto_enable3.png | 22.1 kB | 1 | 11-Nov-2025 05:51 | Sandor | |
png |
selfregister_auto_enable4.png | 20.3 kB | 1 | 11-Nov-2025 05:51 | Sandor | |
png |
signupform.png | 100.1 kB | 3 | 11-Nov-2025 05:51 | Sandor | |
png |
writefile_replace.png | 21.2 kB | 1 | 11-Nov-2025 05:51 | Sandor |