I can't really help you on anything other than file sharing. I have my Slack server set up for file sharing, FTP, SSH, MySQL (finally got it working), and web. For file sharing I am assuming you mean like the Windows file sharing? If so, then you will need to have a look at Samba. It is used for file/printer sharing especially if you have Windows machines (or other Linux ones) that wish to connect and share resources.
To tell you the truth, I believe the smb.conf file (samba's config file, located in /etc/samba) is ready to share home directories right out of the box...I don't know for certain as I always bypass that in the configs and do my own custom shares. But if it is, just make sure it is commented out in the config file, set up the users and their home directory permissions, make sure the Workgroup section is right as well as allowed hosts and other network settings, start/restart the samba service and you should be up and running.