Notes for a general webserver

I’ve got a pretty nice free setup for a webserver I’ve been taking for granted now. So for anyone starting off wanting to setup a server with email, webserver, and database here are some applications I’ve found reliable and somewhat easy to figure out.

OS

  • FreeBSD – Windows is Windows, OS X is just expensive FreeBSD, NetBSD is not as nice, and Linux randomly and horribly breaks itself

Webapps

  • Tapestry is wonderful for webapps. Too bad most cheap VPS cannot host Java and Oracle seems intent on discrediting Java.
  • Django is great for webapps if you like non-typed languages such as Python.

Webserver

  • Apache (for a general web server) and Tomcat (for Java apps) work fine
    • I quite like Tomcat, I’ve dropped Apache
  • NGINX web server
  • PHP-FPM for php with NGINX

NGINX and PHP-FPM seem quicker than Apache and mod_php. They also work well in low RAM situations compared to Apache. I tried Cherokee for a bit but gave up on it and went back to Apache until I found NGINX.

Website/CMS

  • Drupal for a website. I tried WordPress for a bit and didn’t like it. The drawback is it (as well as most other CMS) use PHP and goodness knows why anyone codes in PHP.

Email

  • Exim – mail transfer agent (MTA)
  • Dovecot – IMAP/POP

I find it odd how companies think they can charge for email when it’s so easy to setup email with Exim and Dovecot once you have a server up.

Database

  • PostgreSQL – very nice free database, features of commercial databases which cost lots of money
  • MariaDB – for when you can’t use PostreSQL and don’t want to use MySQL

I highly recommend going SQL. We had a guest speaker at my work who went into how all these NoSQL databases are a bunch of trendy phooey (and other things). I cannot agree more after years of coding in MUMPS at same company (well, a derivative of MUMPS which shall remain unnamed) which is NoSQL before NoSQL. Very, very good for getting data in quickly, not so for getting it out again in any sort of reportable fashion. OLAP works with SQL to make SQL even faster. The end point of storing tons of data is to later analyze it so you do need to get it out again.

Proxy

  • Squid is a fine proxy server, useful for a do it yourself child proofing of the internet
    • Search for Squid blacklists to start the child proofing

Mail consolidation thingie

  • Fetchmail is good for combining many email addresses into a single address

Leave a Reply

Your email address will not be published. Required fields are marked *