CurseForge.com, WowAce.com, and SC2Mapster.com are all run on the same hardware. The distinction arises through different moderators, a different template scheme, different settings, and different games (though CurseForge supports all games, WowAce is WoW-only and SC2Mapster is Starcraft 2-only). They all run on the same web service and use the same database, though.
Software
- Python 2.5 is the language/framework we develop in.
- SQLAlchemy 0.5.1 for database access.
- Werkzeug 0.4.1 as our WSGI base. It provides useful utilities to wrap around WSGI, such as easy request/response objects and a full-featured routing system.
- WTForms 0.3.1 for forms handling.
- Jinja2 for HTML templates.
- Sass to make working with our CSS sane.
- Gypsy, an in-house open source project that ties together Werkzeug, WTForms, Jinja2, and SQLAlchemy.
- PostgresSQL 8.4 for our database.
- Apache 2.2 with mod_wsgi for our web server.
- nginx as our static file server.
- Ubuntu 7.04 is the operating system.
- We develop using Mercurial.
- Our IRC bot is a Supybot with some custom plugins.
Hardware
We have three servers, which are Dell PowerEdge 2950s.
Web server
Handles all the web requests. This includes both dynamic and static content.
DB server
The PostgreSQL DB runs here, is accessed by both the Web server and Repos server.
Repos server
The Subversion, Git, and Mercurial repositories are run on this machine.