iFolder howto – The perfect Dropbox alternative

iFolder walkthrough by daniellench is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Based on a work at www.daniellench.com

We all love Dropbox, it’s an awesome service that allows you to have all files synchronized. There is are not many self-hosted alternatives for this, maybe Unison File Synchronizer or Lsyncd come close, but the first is not stable, does not use a server and the latter is not available on Windows.

Therefore only 1 solution remains: iFolder is great, it aims for Enterprise customers and has a lot of features for businesses. It allows for synchronization like Dropbox, but with more configuration options and you can run your own back-up system on the server. It has a nice admin area where you can set permissions, rights, etc. and you could even offer your parents, friends a synchronized folder and easily add a folder to their iFolder account.

The following howto will explain you how to host a self-hosted Dropbox, I recommend using a separate virtual machine for this so you can restart the howto and reinstall the virtual machine, recover a snapshot, when you found out that skipping steps won’t work. 256MB memory should be sufficient. I recommend making snapshots during the process. Following this entire howto takes about 30 minutes.


Warnings

  • You will want to use OpenSUSE 10.3, OpenSUSE 10.4 will not work well.
  • You should download both the latest version of iFolder server and client. This is 3.8.0.4 and not 3.8.0.0.
  • Use the 3.8.0.3/4 clients from Sourceforge!!! 3.8.0.0 will not work!

Lets begin!

Introduction

After running an iFolder server on ubuntu for a year, the machine died. A new version of iFolder was available and I have been liking openSuSE so much better than ubuntu lately. For an iFolder server it seems like a no brainer since Novell is a major sponsor of openSuSE and iFolder so they play together nicely and you have these great things called “one-click install”. YAST is awesome and the general look and feel is a bit more thought out and user friendly than ubuntu.In this guide there are some things are done in YAST and others in the terminal. I like YAST for installing software because I can see the version and the repo, and you can cancel if you like. The terminal is a must for other things but the entire install could be done in the terminal if you know how.I own a Mac, have administered windows machines since 2000 and have been using linux since 2004. That being said I still consider myself a linux newb however I’m learning quickly. I take no responsibility for any damage to data or property, back it up!This guide assumes that you have a general working knowledge of computers and have at least played around with linux namely openSuSE which is available from http://www.opensuse.org.System requirements will depend on how many users access the iFolder server, the speed of your network and how often items are changing. I am a home user running openSuSE 11.3 64bit on a Xen virtual machine with one 2.4GHz processor, 512mb ram, 1TB storage on a raid5 LVM allocated to it and no desktop, just the shell minimal server install. The host is running OpenSuSE 11.3 64bit on a Core 2 Quad Q6600 Kentsfield 2.4GHz 2 x 4MB L2 Cache, Cooler Master Silent Pro M 600W PSU, Asus P5QL-CM motherboard, 4GB PC6400 DDR2. It has 2@250gb hard drives in a raid1 array for the OS and 3@2TB WD Green drives (6TB) in a raid5 array (4TB) and a LVM on top of that for the VMs and additional storage, GNOME desktop (with all visual effects) accessing HULU and the rest of the internet as well as being the media server for the house and an FTP/Samba server for personal use. It sits in a cabinet under the TV hidden away in a black Silverstone LC13-e case. I use SSH and FreeNX to remotely administer the machine. It has bluetooth and a Logitech PlayStation 3 Cordless MediaBoard Pro. Two users are syncing around 350GB between 5 machines and it is an active DVR and everything is fine.

Your FQDN may or may not include the ‘www’ prefix and your installation needs to reflect this. If you browse to your domain name with ‘www’ and it stays there then use it. If it does not then don’t use it. If both work, pick one and stick with it. I prefer not to use the ‘www’ prefix for all my sites. Your SSL cert should reflect the correct FQDN.

File or folder move operations are handled as if the file was deleted and then uploaded again. Renaming is handled just as a rename function. Basically if you move something expect a high bandwith cost for the operation.

Windows users watch out for long filenames. Files cannot exceed a path and filename exceeding 256 characters or you will get errors in syncing. (needs verifying)

Prerequisites

I know this is linux, if I say reboot please reboot. It is just easier in the long run. If you know what you are doing then thank you.Download and install openSUSE 11.3 here: http://software.opensuse.org/113/en with GNOME (or KDE) as Desktop Environment (DE) (a DE is not required, but easy when needing to manage the system.). As iFolder utilizes Mono, GNOME seems a natural choice.During partitioning you may want to edit the default configuration and NOT create a separate home partition.

Turn off the firewall either during the setup or in Yast. Security and Users after the install.

After install, open terminal. As root (that’s what this ‘#’ means) ensure ssh starts at boot (only if you need ssh).

# chkconfig sshd on

Yast configuration

Network Settings > Global Options

  • Disable IPv6 if not used
  • Network Settings > Overview
  • Edit your interface so it has a static ip
  • Network Settings > Hostname/DNS
  • Edit to match your configuration

Software Management

Remove the following

  1. beagle

Add the following

  1. kernel-source
  2. gcc
  3. gcc-c++
  4. apache2-prefork
  5. apache2-utils
  6. apache2-mod_mono
  7. mono-core
  8. mono-data
  9. mono-data-sqlite
  10. mono-web
  11. mono-winforms
  12. libapr-util1
  13. libapr1
  14. libflaim
  15. log4net
  16. xsp
  17. yast2-http-server
  18. nano (optional)

Close Yast

REBOOT

 

Configure Apache

Open terminal and check that your hostname is correct (it’s in the prompt) and check for updates.# zypper ref# zypper up

In the terminal, generate an ssl cert (5 year) using the FQDN of the iFolder Server.

# gensslcert -Y 1825 -n FQDN -e EMAIL@EXAMPLE.COM

Open Yast > HTTP Server module that was added (yast2-http-server). Using the defaults is fine here. Click Finish.

In the terminal, enable the apache2 modules that are needed.

# a2enmod ssl
# a2enmod mono
# a2enmod rewrite

In the terminal, ensure apache2 starts at boot then start it.

# chkconfig apache2 on
# rcapache2 start

In the terminal, set up the apache2 vhost-ssl.conf.

# cp /etc/apache2/vhosts.d/vhost-ssl.template /etc/apache2/vhosts.d/vhost-ssl.conf

Edit the /etc/apache2/vhosts.d/vhost-ssl.conf file and ensure the FQDN of the iFolder server is present as the ServerName in the file.

ServerName FQDN:443

Edit the /etc/hosts file and ensure the FQDN and the HOSTNAME of the iFolder server is present in the file. PUT BOTH!

127.0.0.1 localhost HOSTNAME
127.0.0.1 FQDN HOSTNAME

Edit the /etc/sysconfig/apache2 file and ensure APACHE_SERVER_FLAGS=”SSL” is present in the file.

iFolder Server Install

Go to: http://software.opensuse.org/search.

Change your release version to OpenSuSE 11.3 before you search. Search for and ’1-Click Install’ the following two items.

  1. ifolder3-enterprise (29MAR2011 using snapshot_snapshot)
  2. novell-ifolder-enterprise-plugins (29MAR2011 using server_snapshot)

You can also run a oneclick from terminal by running the following. Include the quotes.

# su -c “OCICLI url of the file.ymp”
Currently these are (but please verify at http://software.opensuse.org/ before using):
# su -c "OCICLI http://software.opensuse.org/ymp/network:ifolder:server_snapshot/openSUSE_11.3/ifolder3-enterprise.ymp"
# su -c "OCICLI http://software.opensuse.org/ymp/network:ifolder:server_snapshot/openSUSE_11.3/novell-ifolder-enterprise-plugins.ymp"

REBOOT

iFolder Server Setup

First of all, restart the apache service (I know we JUST rebooted the machine). Look for errors and fix them first.
# rcapache2 restart
  • The default data path is ‘/var/simias/data’. You may want to store the iFolder data in another location. You can change the default path or you can modify the mount point on another partition, drive or LV.
  • The FQDN of the iFolder server for BOTH public and private addresses: ‘https://FQDN/simias10′
  • System name & description can be modified to suite your needs
  • If you have an LDAP(v3) source for provisioning users, go ahead select Y (yes) for LDAP, otherwise choose N (no) to set up a local user store. If you don’t know what LDAP is, choose N (no)
  • Configure apache – YES!
  • Other settings are default values

Run the Simias Server Setup
# simias-server-setup
Check the owner and group of the Simias data store
# chown -R wwwrun:www /var/simias/ (or the path you entered)
Restart apache and check for errors
# rcapache2 restart
Run the iFolder web interface setups and restart apache
# ifolder-admin-setup
# ifolder-web-setup
# rcapache2 restart
Have lots of fun!

iFolder User Setup

Go to ‘https://FQDN/admin’ or ‘https://localhost/admin’ and:

  1. login with the admin credentials
  2. create a new user
  3. set the user’s home server
  4. click save
  5. look around

iFolder System Testing

Go to ‘https://FQDN/ifolder’ or https://localhost/ifolder’ and:

  1. login with the new user
  2. create a new ifolder
  3. look around

iFolder Client Install

Get your client from http://sourceforge.net/projects/ifolder/files/. Install it and enter the address for the server as well as your credentials. I do not choose to create my default iFolder because I want to pick the folders already existing on my computer.

If you are syncing  different platforms and or multiple machines, you can setup an iFolder client and do an initial sync on one machine (preferably local to the server if applicable) then copy the physical files with an external drive or other way to the additional machine, using the SAME FOLDER NAME, and tell the client on the new machine to ‘Merge’ the folder. This will not do a complete upload/download of the files but will compare the files saving you bandwidth and time.  You may see files with ‘Conflicts’ that need to be resolved when doing this. Use the ‘Resolve’ button in the iFolder client to manually compare the file name, size and date. Usually they are the same.  You can choose to sync to the ‘Local’ or ‘Server’ version of the file. If I do a merge like stated above, I will use the ‘Server’ version.

iFolder Troubleshooting

First of all ask yourself this. Is this iFolder server in production or is it a preproduction /test server. For production machines in use be careful to protect the simias data folder!!!

For preproduction/test servers that are having troubles with the initial setup and configuration try to delete the simias directory on the server.
# rm -r /var/simias/

The below items are found in the “Configure Apache” section above

  • Recheck your /etc/hosts file for proper configuration
  • Recheck your /etc/apache2/vhosts.d/vhost-ssl.conf for proper configuration
  • Recheck your /etc/sysconfig/apache2 file for proper configuration
  • Restart apache

The below items are found in the “iFolder Server Setup” section above

  • Run simias-server setup
  • Check your simias folder owner and group
  • Run ifolder-admin-setup
  • Run ifolder-web-setup

Important: Use the 3.8.0.3 clients from Sourceforge!!! 3.8.0.0 will not work!

You can check the exact version of the client in Windows C:\Program Files\iFolder. Right-click on iFolderApp.exe > properties > details tab. Make sure its 3.8.0.3 or higher If its 3.8.0.0 you need to uninstall it, delete the simias directory in %appdata% in winxp or %localappdata% in vista/7 and install the correct version

Appendix

You can check the exact version of the client in Windows “C:\Program Files\iFolder”. Right-click on iFolderApp.exe > properties > details tab. Make sure its 3.8.0.3 or higher. If its 3.8.0.0 you need to uninstall it, delete the simias directory in %appdata% in winxp or %localappdata% in vista/7 and install the correct version on the iFolder Server.

On the iFolder Server

WARNING – This will delete all simias server data as well as all local users and their files! If you run the simias-server-setup and type something incorrectly, remove the local simias data store before rerunning (command is for the default location)
#rm -r /var/simias/

On the iFolder Client

OpenSuSE

# rm -r /home/user/.local/share/simias/

OS X

# rm -r /Users/user/.local/share/simias/

Windows Vista-7

delete %localappdata%\simias

Windows XP

delete %appdata%\simias

Resources

iFolder files – http://sourceforge.net/projects/ifolder/files/
iFolder Administrator Guide – http://ifolder.com/docs/ifolder38_admin.pdf
iFolder Community – http://community.kablink.org/
iFolder client files – http://sourceforge.net/projects/ifolder/files/
irc – irc.freenode.net #ifolder

novell-ifolder-enterprise-plugins (use the server snapshot with the same version of the ifolder3-enterprise eg. 3.8.4) – http://software.opensuse.org/search?q=novell-ifolder-enterprise-plugins&baseproject=openSUSE%3A11.3&lang=en&exclude_debug=true

 

More to come… This has been a lot of work, comments are very much appreciated!

Comments

  1. KingLear says:

    Hi, I have tryed this but have som configuration errors, on my website due to following your site.

  2. KingLear says:

    I can not have several websites on the same server and the client program will not work anymore.

  3. KingLear:
    Can you show me more information? Errors, what is not work? Can you post logs on pastebins?

Trackbacks

  1. […] zijn liked Registrar SIDN: ja KvK nummer: 04070212 Ondernemingsnummer: nvt Je kunt iFolder gebruiken. Ik heb veel tijd besteed aan het zoeken van mooie alternatieven voor Dropbox die je zelf […]

Leave a Reply