I currently have a Linux home PC that I'm using as a file server among other things. I'm getting ready to rebuild it and I'm getting overwhelmed with some of the choices out there such as FreeNAS, ownCloud, etc.
Initially, I'm looking for the following. I know I can start with a base installation and install/configure each package, but I'm curious if anyone know of a better way or a dedicated distribution that meets these needs.
- Linux--preferably Debian--due to familiarity, though I'm open to trying BSD, Solaris, or something else
- File server features to allow other Linux and Windows physical and virtual clients to access files (e.g. NFS, CIFS/Samba)
- Files consist of the typical user documents, photos, videos, music files, etc.
- Users consist of members of a typical household.
- Provides the features of ZFS, e.g. data integrity, snapshots, maybe deduplication if it's not too slow
- Easy to rotate backup drive(s) to take off-site
- Speed isn't a primary concern since it's only for less than 10 users.
- High availability isn't a primary concern; although inconvenient, everyone can wait a couple days while it's being rebuilt if it dies.
So far I believe I'm asking about something like FreeNAS, NAS4Free, or OpenFiler, and I'm planning to have a single hard drive (4 TB) in it, but maybe a second 4 TB hard drive for mirroring if budget allows.
For nightly backups, I have previously used Dirvish--which uses rsync underneath--to back up onto an ext3 file system, and every few weeks I swap out the backup drives to rotate. I purposely have a single backup drive so I only have to rotate a single drive.
I'm open to trying ZFS storage pools to sync periodically between the main drive and the backup drive, but since I'm new and unfamiliar with ZFS, I'd prefer to stick to an ext3 file system for the backup drives for the time being.
Plus, I'm not planning on using ECC memory just yet. I'm OK living dangerously risking bit errors at the moment, so I want a plain ordinary ext3 file system for the backup in case my ZFS storage pool becomes unmountable.
Next, I would like the following:
- It would be useful to open up certain documents for sharing and collaboration (e.g. siblings working on a presentation together) but...
- ...at the same time lock down to prevent viewing by others (e.g. prevent access to bank statement PDFs by kids or guests that happen to have laptops on the Wi-Fi network).
- It would be useful to have DropBox-like access to these files, photos, and videos while I'm away from home.
- I still want to host the data myself rather than upload to the cloud.
- It would be nice to be able to get to the files, photos, videos, etc. from my Android phone while on the Wi-Fi or while away from home. Videos can be streamed to the device; I don't need or want the full-quality video data downloaded to the phone taking up bandwidth from my cell phone carrier.
I think now I'm talking about ownCloud or using Emit App.
Next, I need the following:
- Some sort of wiki, preferably one that uses Markdown, Textile, or anything else that isn't pure WYSIWYG editing.
- A way to check-out and check-in linear revisions of documents.
Now I'm talking about something like SharePoint.
- Provides an easy way to ingest photos, videos, and other files from any SD cards or devices directly connected or remotely uploaded from a laptop.
- Supports uploading photos/videos to my chosen hosting site such as Youtube.
Finally, here's the twist. While I see the advantages of having a dedicated file serving machine, I don't want this to be this computer's exclusive job.
I still want to be able to ssh or console log-in to actually use the box as a PC, e.g. to get to my files, run scripts, launch X applications both locally and over ssh, connect local USB printers and scanners, run other VMs via Virtual Box or VMware Player, etc.
I know I can't use FreeNAS because of this last part.
This is probably worth a separate question, but if nothing like this already exists and I need to spend three weeks building my own from scratch, how can I easily image it and archive it off so that I can pull the image out three years later and type something like apt-get upgrade to build a brand new system again quickly without having to spend another three weeks on this again?