In many cases, Redakt will be set up in a web project with the back office application and other features included. However, in more advanced scenarios, you can create different applications for web rendering, back office, automation, etc.

All-in-one web application

The most common setup is a web application that contains public website rendering as well as the Redakt back-office application. This is what you end up with after following the project setup guide. Follow that guide if this is your preferred setup. You can optionally install the headless Content Delivery API feature if you need website content via an API (e.g. for a single page application).

Separate back office

If you prefer to host the back office application standalone or behind a firewall, you can create a separate back-office web application project. You need to install the separate back office packages from the modules you require, such as the Redakt.ContentManagement.BackOffice and Redakt.UrlManagement.BackOffice packages. Additionally, you will need to install the Identity Server module as well, unless you have a separate identity server application. In this case, you will want to leave out the back office and identity server packages on the public website application.

This is also a good setup for load-balanced environments. In this case, the back office application would be hosted on a single instance, while the public website is load-balanced.

A load-balanced back-office application is technically possible, however, it is recommended to host the back office application on a single instance to avoid concurrency issues.

Single page application

If you are creating a single-page application (SPA), and do not need traditionally rendered web pages, you should install the Content Delivery API module and any required data modules only. You can install the back office in the same project as well if needed.

Console application

It is perfectly possible and supported to create a console application with Redakt CMS. A console application could be used for certain automation tasks, like importing from a 3rd party data store or responding to CMS events, without impacting the main website process.

When creating a console application, install the Redakt.Core package and any required data modules. Write your code using the service layer in the IRedaktApplication implementation taken from the IoC container.

Windows service

This would work in exactly the same way as with a console application, except the application is hosted in a service host.