Hi! Sorry about that click-bait title. What one person can write an ultimate guide to anything, really? All I can do is tell you about my own experience, and some tools I find useful.
Have some other ideas to add? Hit me up on Twitter or Facebook, and maybe we can actually build an ultimate guide together, as we hold hands and drink Coca-Cola — with crazy straws from a beer hat, obviously, since our hands are busy.
Let’s get started!
For most of these solutions, you’re going to need your own server. How exactly to set one up is a bit outside of the scope of this guide, but here are a couple of recommendations, in case you’re just getting started.
At home, I use OS X Server running on a Mac mini for web pages, wiki, and file sharing for my family, along with easy management and backup of other Macs and iOS devices in the house. Ars Technica has a thorough guide to OS X Server that’s a great place to start learning about its capabilities.
For more public-facing data, I have a hosting account at WebFaction, which has the best price-to-performance ratio I’ve ever had in a hosted server, while still giving you one-click installation of a bunch of common services, and a TON of well-written how-to support articles. Their tagline, “Be a developer not a sysadmin,” really hits the nail on the head. I’m free to be creative and run these self-hosted services (and my own python apps) without getting too bogged down in server minutiae.
Often I have the need to share files with others. I feel like I’ve tried every option: emailing files, emailing the person again to see if they actually got the file, emailing the file again, realizing the file is too big for email, sending a link with SendItToMe or Hightail or any number of spammy “free” file sharing services, FTP, SFTP, sharing links from Dropbox, you name it.
Yeah, I don’t know what that means either, but the project’s old name was “Mollify,” so maybe the time of a service’s name actually matching what they do is long since over. They describe it as:
Document management system in your server, customizable to your needs. Access your documents with full featured web UI or mount published folders into desktop via WebDAV.
Believe me, I’ve toyed with the idea of building my own file sharing service with Python and Django, but Kloudspeaker has staved that off for now. It was super easy to set up on my Mac OS X server at home, and easy to give people access to the folders they need without exposing my server’s login credentials or the underlying folder structure on the server.
I had to tweak some PHP settings to allow for very large uploads, but once I did that, it’s been cruising along nicely. My only complaint at this point is that it doesn’t seem possible to create a link that takes you directly to a file.
Dropbox is great, but sometimes you may want something more private.
Liz Marley reminded me that while OmniPresence works great with Omni Sync Server, it can also be set up to use your own private WebDAV server. Omni has a comprehensive configuration page that explains how to use it this way.
SparkleShare is sort of a self-hosted clone of Dropbox with encryption, for those files you really want to keep full control of. You can host your own server that everything syncs through, and it’s Git-based at its core, so it also provides for reverting to previous versions of the files, even when being edited by multiple users.
Sync provides encrypted device-to-device syncing using the BitTorrent protocols (no central host!), but advanced features lyke syncing an unlimited number of folders and on-demand web access to your files are part of their Pro version that’s subscription-based.
I’ve seen a few recommendations for OwnCloud (though I haven’t used it yet myself). It seems like it might combine file syncing, file sharing, and a bit of workgroup-style contacts and calendars. Very ambitious. Have you used it? Drop me a line. I’d love to hear more reviews. MacMiniColo has a useful article on how to Install OwnCloud on a Mac mini Server.
DVCS / Git
Sure, you can set up a bare-bones Git server easy-peasy, but GitHub is so pretty, and has cool stuff like wikis and issue tracking and easy automation hooks for other services. Well, GitLab is your self-hosted GitHub clone with most of those same niceties.
Project Management / Workgroups
I’m still trying to find a good self-hosted replacement for Basecamp, because all of the options that I’ve tried either have horribly shitty interfaces or a ridiculous purchase price for personal use. Duet seems the closest to a useable solution (for a small one-time purchase), but I haven’t had a chance to try it yet. Any other suggestions?
Brian Stucki, owner of MacMiniColo, shared this article: 50 ways to use your server, with a wealth of other ideas for hosting your own data. A lot of it is web service or development-focused, but there are several great options.
I’m sure I’m leaving out some details, or maybe you have some cool tools of your own you’d like to share. Drop me a line, and let’s expand this guide together.
Update 2015-04-20: Added OmniPresence, OwnCloud. Expanded Kloudspeaker details.
Update 2015-04-21: Added MacMiniColo articles.
Header photo courtesy pwnEd365, from original photo on Flickr used under CC BY 2.0. Photo has been cropped and colorized.