The server (infdot.com, infdot.com/redmine, rlaanemets.com) is currently running Debian Squeeze which became old-stable in May 2013. My plan is to move to Debian Wheezy and upgrade most of the software running on the server. The upgrade will also bring some changes in the services I run.
Switching to Nginx from Apache
All new servers I set up run Nginx already. It’s easy to configure (easier than Apache I would say) and more resource efficient. There aren’t many reasons to run Apache anymore. I have no applications that require legacy
The one reason why I should still run Apache is the Subversion access over HTTP. However, I only have a single more-less active project using Subversion. All my new projects already use Git. I will probably convert the repo into Git (and split it into parts if necessary).
My current version of Redmine is 2.0.3, patched against the horror 0-days found some time ago (YAML serialization holes etc.). So far, Redmine has worked pretty well for me, however, upgrading it can be a total pain, expecially when you use plugins. Redmine is built on the Rails framework and Rails has never put much attention to backwards compatibility. Bundler is another mess. Fortunately, Redmine is the only Ruby application I run on this server. I will keep using the Phusion Passenger as it also works with Nginx (haven’t tried, but according to docs it should).
Upgrading other software
Not sure what brings the migration to version 3.0. Might use the packaged one in Wheezy (2.3).
Exim4, SquirrelMail, Courier(-imap)
Hopefully nothing changes functionality wise.
MySQL (Redmine’s dep) to MariaDB
NodeJS 0.8 to 0.10-0.11
Executing the upgrade
Linode (where I run my VPS) has a feature that lets you switch IP addresses of two machines. This is the way how I did upgrade the last time. With two machines I can easily check that the new setup works. During the final switch it takes about 30 minutes of downtime to migrate the last changes from the old machine to the new.
Sometimes I have thought why should I run my own server at all. I could switch most services to various SaaS providers. Bitbucket or paid GitHub could replace Gitolite, possibly Redmine too. Toggl could be used for time tracking. Some document management system could replace Redmine’s DMSF plugin. I could use some mail provider (like GMail) for email, buy in DNS service and all that. Anyway, I’m happy with my current setup. I do upgrade packages weekly (with apticron periodically remaining me to do so) to keep the system secure and once in 2-3 years I do a major upgrade.