Instead of the usual Sunday Selection, I’m going to present a more personal article today. I’ve been busy moving for most of last week and by Thursday night I finally had my college room mostly set up the way I wanted it. How better to celebrate a new room and relax after a few days of heavy lifting than to completely re-install a server OS and restore everything from backups, right? My server is an old G4 Powermac with 768MB of RAM and currently 80GB of hard disk space. I used it as a desktop for about a year before I got my hands on a Mac mini and decided to turn it into a server.
I had been running OS X Leopard on it for the last year and though it worked well enough, there were some things that were starting to get to me. I didn’t like having to use a Virtual network Client to get in and change settings and I wanted a simple command line way to install programs. Though tools like Fink would have let me do that, I decided that for a production server, I wanted to run Linux. Luckily for me Arch Linux has a PowerPC port so I decided to bite the bullet, wipe the hard disk clean and install Arch on it. Unfortunately, that didn’t quite go according to plan. Though I managed to start the installer and partition the hard drive, I simply could not install anything. I also tried an over-the-network install, but I couldn’t get things off the software repository servers either. After a good three hours of fighting, I decided to throw in the towel.
I’ve decided to use the Fedora 11 PowerPC distribution, but I’ll probably strip it down to the bare essentials. I have to wait until Monday to get physical access to my server and till then I’m stuck with just my Arch laptop and my Mac mini desktop. I’m just coming to realize just how much I’ve become used to having a personal server. I’ve started using as something of a personal cloud. I use it store and sync data between my machines (using Git) and I use it to test out my web designs. Since I move around computers regularly, I’m feeling rather crippled without having my server on.
The thing is, I value mobility and security very highly. I’ve gotten used to starting a document or some other project on my Mini, working on it till my back hurts from sitting on the terrible school chair and then moving to the lounge to sit on the couches. Just before the move I just commit my work to a Git repository, push it to a remote mirror on the server and then pull it down to my laptop and I can be up and running like nothing happened. If need be, I can use Google Docs, which I do if I’m on a lab machine, but I really like to have a secure, safe, version controlled copy of anything important that I’m working on and I simply can’t bring myself to rely on Google Docs exclusively. My server is both a safe haven and an electronic freight route.
As you can well imagine, having the server down throws that workflow out the window. All of yesterday (and most of today) I’ve been very lethargic and reluctant to do any real writing. I dislike being tied to my laptop or desktop and I’m afraid to start anything lest I feel the need to move and have a hard time actually making the move. That in turn means that I have stuff on just one machine, something which I’ve learned to be paranoid about. The effects of this paranoia manifested in the form of writer’s block. It took me a good few hours to get myself to actually sit down and write this.
I’ll be the first to admit that I’m probably going overboard with all this. In two days the world won’t end (hopefully) and even if I start something new, I probably won’t have anything that really needs to be backed up. I suppose the real truth is that I’ve become used to a rather eccentric, and for me, efficient way of working. I’ve found and learned to use tools that aren’t used by many people, including many tech enthusiasts. It is cloud computing in a way, but in my own personal cloud for the most part. I’ve made a trade-off, and it hasn’t been an easy one to make. I’ve sacrificed the ability to use a rock-solid well managed solution (like Google Docs) with something that is more flexible and suitable, but that I have to manage myself. It’s not a choice I regret, except maybe at times like this. In fact, I don’t think regret is quite the word. A few details would make the situation much better (ie using stock x86 hardware with Arch Linux) and I don’t make the necessary changes for reasons that are not really technical. I’ve become my own cloud, I have a few dark and gloomy patches, but I could become bright and shiny without too much trouble.
I’ll have my server back up and running, hopefully by lunchtime on Monday, with a fully functional Linux install. But this little incident has shown me that I need to give some serious thought to how I maintain my server in the future. The electrical engineer in me likes to have the actual physical device around (I’m putting in another hard drive once this problem is solved). But when I leave college in two years time, I’m not dragging the fairly heavy Powermac with me. At that point I will almost certainly switch over to using a hosted virtual server of some sort, maybe a Linode, depending on my budget. That will remove the need to have to personally maintain the hardware and deal with any resulting downtime.
The other question that needs answering is what software to run. Till Friday I ran OS X, but I’m pretty certain I’ll keep my servers to Linux from now on. I’ll run Fedora now, but when transition to virtual, I would like to run Arch Linux to have a more uniform computing environment. I intend to keep running an Apache server and using Git via SSH. However, if I keep using public computers the way I do, I’m going to have to find a way to get thing to Git without having to save in Google Docs first and then manually put in the repo. Luckily for me, most of the work I do is text and the Bespin text editor is coming along nicely. It’s a really nice online text editor and the backend already has support for version control systems like Mercurial and Subversion. I plan on running a local copy on my server and when it grows Git support, I’ll try to jump ship from Google Docs. Of course, for non text files I still need to use a proper Git install, but I do those rarely enough that it shouldn’t be a problem.
By the end of tomorrow I should have a fully operational Linux install ready to go. It’ll probably take a few more days of work to get everything I wanted installed and configured right and have all my git repositories set up properly again. After that I’ll begin looking into running Bespin and any other interesting personal cloud software I might find.