I've replaced Dropbox with BitTorrent Sync. In order to do this I've have btsync running on a VPS (2CPU, 2GB, 400GB), my home server and assorted Arch Linux workstations.
I had a couple of reasons for migrating away from Dropbox.
The VPS I am running BitTorrent Sync on costs $50 per year and provides four times the storage. I run btsync on a VPS so that there is always a server "in the cloud" that is available to sync with so that my setup emulates what Dropbox used to do.
All my servers are running Debian and this is how I install btsync on Debian.sh -c "$(curl -fsSL http://debian.yeasoft.net/add-btsync-repository.sh)" sudo apt-get install btsync
This is how I respond to the prompts:
As you'll see, I don't use UPNP on my VPS. I elect a specific port (not actually 12345 by the way) and open that port up with ufw. I also only allow access to the WebUI port from another server I own which reverse proxies via nginx.
btsync works really well, I have it syncing hundreds of thousands of files that amount to several hundred gigabytes of data. On my Arch Linux workstations I use the brilliant btsync-gui and BitTorrent Sync is also available for Android.
That said, I still use a free Dropbox account to sync photos from mine and my wife's Android phones. I have a Dropbox instance running on my home file server and everyday it runs a script to automatically import these photos into Plex.
Such a shame, that at the time of writing, btsync is closed source :-( Maybe that will change but if it doesn't SyncThing may well be the answer when it has matured a little.References
Recently two companies have suffed problems due to compromised AWS credentials:
I'm just about to commit to using Amazon for hosting DNS for paying customers, so this is the kind of thing that makes me paranoid.
I'll be storing DNS-data in Git, and if the zones were nuked on the Amazon-side I could re-upload them, but users would be dead regardless - because they'd need to update the nameservers in whois before the re-uploaded data would be useful.
I suspect I need to upload to two DNS providers, to get more redundency.
Currently I have a working system which allows me to push DNS records to a Git repository, and that seamlessly triggers a DNS update (i.e. A webhook trigged by github/bitbucket/whatever).
Before I publish anything I need to write more code, more documentation, and agree on pricing details. Then I'll setup a landing-page at http://dns-api.com/.
I've been challenged to find paying customers before launching, and thus far have two, which is positive.
The DHCP.io site has now been freed. I'm no longer going to try to commercialize it, instead I will only offer the Git-based product as a commercial service. On that basis I upped the service so users could manage up to five names per account, more if you mail me privately and beg ;)
(ObRandom: Google does hosted DNS with an API. They're expensive. I'm surprised I'd not heard of them doing this.)
However, I'm working on a MATE project that is based on a Debian derivative. MATE has recently been accepted into the Debian Backports repository for Wheezy, so I decided to do a "MATE from scratch" on Debian using an old netbook to get familiar with the MATE package naming differences between Arch Linux and Debian.Install Debian
I installed Debian Wheezy from the netinst ISO to ensure the target install was as minimal as possible. I went with the defaults until the 'Software selection' dialogue, at this point unselect everything except "SSH server". Like this:[ ] Debian desktop environment [ ] Web server [ ] Print server [ ] SQL database [ ] DNS Server [ ] File server [ ] Mail server [X] SSH server [ ] Laptop [ ] Standard system utilities Debian ISO with Firmware
If you're installing on hardware that requires additional firmware in order for it to work with Linux then use the netinst ISO that includes firmware.
When the install is finished, reboot and configure Debian a little.Repositories
You'll need to install lsb-release for the following to work.apt-get install lsb-release
This is what I put in /etc/apt/sources.list.cat >/etc/apt/sources.list<<EOF deb http://ftp.uk.debian.org/debian/ $(lsb_release -cs) main contrib non-free deb-src http://ftp.uk.debian.org/debian/ $(lsb_release -cs) main contrib non-free deb http://security.debian.org/ $(lsb_release -cs)/updates main contrib non-free deb-src http://security.debian.org/ $(lsb_release -cs)/updates main contrib non-free # $(lsb_release -cs)-updates, previously known as 'volatile' deb http://ftp.uk.debian.org/debian/ $(lsb_release -cs)-updates main contrib non-free deb-src http://ftp.uk.debian.org/debian/ $(lsb_release -cs)-updates main contrib non-free EOF Backports
MATE is only available in the wheezy-backports repository.cat >/etc/apt/sources.list.d/backports.list <<EOF deb http://ftp.uk.debian.org/debian $(lsb_release -cs)-backports main contrib non-free deb-src http://ftp.uk.debian.org/debian $(lsb_release -cs)-backports main contrib non-free EOF
Update.sudo apt-get update
All backports are deactivated by default (i.e. the packages are pinned to 100 by using ButAutomaticUpgrades: yes in the Release files. If you want to install something from backports run:apt-get -t wheezy-backports install "package" Install MATE Desktop
First install the LightDM display manager.apt-get install accountsservice lightdm lightdm-gtk-greeter
Now for the MATE Desktop itself.apt-get -t wheezy-backports install mate-desktop-environment-extras NetworkManager
I typically use NetworkManager, so lets install that too.apt-get install network-manager-gnome Supplementary
Depending on your hardware you may require CPU frequency utilities or additional firmware.apt-get install cpufreqd cpufrequtil firmware-linux firmware-linux-nonfree
And, that's it! Reboot and you'll see the LightDM greeter waiting for your login credentials.References
I used to work for Bytemark, being a sysadmin and sometimes handling support requests from end-users, along with their clients.
One thing that never got old was marking DNS-related tickets as "resolved", or managing to slip that word into replies.
Similarly being married to a Finnish woman you'd be amazed how often Finnish and Finished become interchangable.
Anyway that's enough pun-discussion.
Over the past few days I've, obviously, been playing with DNS. There are two public results:
This is my simple Dynamic-DNS host, which has now picked up a few users.
I posted a token on previous entry, and I've had fun seeing how people keep changing the IP address of the host skx.dhcp.io.. I should revoke the token and actually claim the name - but to be honest it is more fun seeing it update.
What is most interesting is that I can see it being used for real - I see from the access logs some people have actually scheduled curl to run on an hourly basis. Neat.
This is a simple lookup utility, allowing queries to be made, such as:
Of the two sites this is perhaps the most useful, but again I expect it isn't unique.
That about wraps things up for the moment. It may well be the case that in the future there is some Git + DNS + Amazon integration for DNS-hosting, but I'm going to leave it alone for the moment.
Despite writing about DNS several times in the past the only reason this flurry of activity arose is that I'm hacking some Amazon & CPanel integration at the moment - and I wanted to experiment with Amazon's API some more.
So, we'll mark this activity as resolved, and I shall go make some coffee now this entry is Finnish.
ObRandomUpdate: At least there was a productive side-effect here - I created/uploaded to CPAN CGI::Application::Plugin::Throttle.
The simplest possible DNS-based service which I could write to explore Amazon's DNS offering has to be dynamic DNS, so I set one up..
The record skx.dhcp.io can be updated to point to your current IP by running:curl http://dhcp.io/set/efa6961c-f3dd-11e3-955b-00163e0816a2
Or to a fixed IP:curl http://dhcp.io/set/efa6961c-f3dd-11e3-955b-00163e0816a2/184.108.40.206
The code is modular and pretty nice, and the Amazon integration is simple.
(Although I need to write code to allow users to sign-up. I'll do that if it seems useful, I suspect there are already enough free ddns providers out there - though I might be the first to support IPv6 when I commit my next chunk of work!)