__Q: How do you install CrushFTP as a service or daemon on Windows or OS X?__

A: From the File menu, choose the menu item to install the daemon / service.  For newer versions of Windows past WinXP, be sure to right click and run CrushFTP as an administrator in order to install the service.
------
__Q: How do you install CrushFTP as a daemon on Linux?__

A: Each Linux distro has its own way of handling startup items.  Refer to your distro's documentation on how to add a reference to a script for starting CrushFTP. (crushftp_init.sh)
------
__Q: The Windows service seems to be running, but when I open the GUI, I get an error about ports being in use, and to remove and reinstall the service.__

A: First, try removing the service and reinstalling.  If that doesn't fix things, this is how you can reset everything.

Open the crush GUI.  Go to manage servers.  Remove all items in there, and click OK.

If you don't have any server items listening on "lookup" or listening on "127.0.0.1", then open your server prefs, add a new server item on port 8080, sharing users and groups from another server item.

Set its IP to be "127.0.0.1" instead of "lookup".

Click OK.

Now install the service again.
----

__Q: Is it possible to run the server on ports below 1024 and not run as root on a Linux/Unix system?__

A: Yes.  Use the built in firewall to setup a port rewrite.

{{{sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.0.5 -m tcp --dport 21  -j DNAT --to 192.168.0.5:2121}}}
{{{sudo iptables -t nat -A POSTROUTING  -p tcp -s 192.168.0.5 -m tcp --sport 2020 -j SNAT --to 192.168.0.5:20}}}

If you do change the source port to 2020, add an entry into the prefs.xml specifying this.  The entry goes in the individual server_item you want the source port changed on.
{{{<source_port>2020</source_port>}}}

Alternatively you may just want this:

{{{sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 21 -j REDIRECT --to-ports 2121}}}


Then just run CrushFTP on port 2121 instead.
----

__Q: How do groups, inheritance and templates work in CrushFTP 5?__

A: Groups and templating/inheritance cover two different types of things.

Groups just define lists of users.  A better name would be "Lists" instead of "Groups" as that is all it does.  So just keep that in mind.

Having a list of users is important when you want to do a batch update to everyone in that "List/Group".  Instead of applying to all users, it only applies to that "List/Group".

Batch changes such as adding a user into the template inheritance list is done by holding the "control" key when clicking on the add button.  It is also used when holding control and de-selecting a checkbox in the list of inheritance/templates, and lastly its used when holding control and clicking on the checkboxes to the left of any setting that overrides the inherited value.  Every setting has a checkbox like this on the left.

So you make some "setting users" that have settings you want applied to your users.  You then choose a user in a group, and control click the add button to add this "setting user" to the list of their inheritance.

----

__Q: How do I get SMTP email working with a SMTP server that has an untrusted SSL certificate?__

A: keytool -keystore /System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts -import -file my_mail-server.cer -alias my_mail_server

The default password when prompted is changeme, or changeit.  (However, don't change it!)

Then restart CrushFTP and it should be able to send email.

On a windows system, the "keytool" application is in the JDK folder in your Program Files\Java\ folder.

____

__Q: How can I setup [Growl|http://growl.info/] notifications?__

A: First, you need the "growlnotify" from the "Extras" folder of the official Growl download.

Then, setup a CrushTask like the following screenshot.  The most import thing is that the message item must be the last argument.

[attachments|growl_setup.png]
____

__Q: How can I restart CrushFTP from the command line on Linux?__

A: Here is an alternate command script for Linux to handle a friendly QUIT and RESTART.

[attachments|crushftp_init.sh]
____