For DevOps

TL;DR Emissary is built to be easy to install, easy to provision, and easy to run on any infrastructure.

The server has very few external dependencies, clusters well, and should be a good citizen in any DevOps environment.

Dependencies

Emissary requires only a MongoDB database to run. Other external dependencies (such as file storage and caching) are optional. The application itself is compiled (by Go) into a single executable that runs in any environment.

About MongoDB

Emissary is a multi-tenant system, but it does not store data in a multi-tenant database. Instead, the data for each website (or domain) is saved in a separate database that is dedicated to that domain. This should simplify maintenance and to make emissary “instances” more portable.

File Storage

Like most content managers, Emissary site owners and editors can upload files to their server (e.g. images, videos, audio, and more). Emissary has several options for file uploads, including NAS storage, and S3-compatable storage. More adapters are planned in the future, depending on people’s needs.

Caching

Emissary does not (yet) depend on an external caching server, but this might be added as an option in the future. See: https://trello.com/c/dLB2iMNk/35-better-caching-system