The live site is served from a Nginx server that sits behind a Varnish server to cache web content. The live site's API is served directly from Nginx to bypass Varnish's cache. The site's code sits on a separate PHP-FPM server to offload web and API requests to a dedicated instance. A separate, dedicated backend VPS instance runs several scheduled tasks from crontab that populate the site's data. This instance handles most of the heavy lifting to allow the PHP-FPM server to use its resources solely for web requests. Redis and Postgres are also hosted on separate VPS instances. All instances communicate with each other over a private network that is not accessible publicly. Inter-server communications are done via SSL; either by SSL configuration (Postgres) or via stunnel.
The following diagram illusrates how the live site's architecture is laid out:
Necro Lab uses jQuery 3.1.1 and Bootstrap 3.3.1 as its frontend backbone. All tables on the site use a library,
NecroTable, to interact with its data via AJAX calls to the API.
NecroTable is powered by jQuery DataTables 1.10.13.
To access the source code for this site navigate to these links: