Deep diving

Check out, how rootli works under the hood.

We want to eliminate the hassle when it comes to server management. So we used known technical patterns to create a product, which is also usable for non-programmers. And this is, how we did that.

The event log

Under the hood, rootli writes all changes related to your projects, including servers, sites and databases, to an event store. This event log is append-only, as you might know it from accounting. As every single change is stored, the state of that project can be queried for every moment that this project existed.

This is not only a nice auditing feature, it also opens up new possibilities: Each server's status can be cloned to a new server based on a given date.

Of course, we ensured to handle sensitive data like passwords or personal information with extra caution. Your personal data are not part of the event log.

Applying infrastructure and configuration

As you now know, the state of your project is stored in a series of events, which make up the current state of your project. This state can be expressed as structured data.

When it is required to apply changes to your infrastructure or your servers (e.g., if you added a new server or deleted a database), an isolated deployment runner makes sure that your infrastructure (servers, firewalls, networking) matches the defined state.

Additionally, each server's state is applied. This basically means that this process tries its best to not only apply changes, but also to revert changes that are not defined in the beforementioned structured server-state.

Source of truth

This also means that rootli is the only source of truth. All structural changes like changing the root-user's password, adding custom firewall-configuration etc. can be reverted by rootli. By design, we prefix our content with rootli_, which implies that you should prevent to add anything with that reserved prefix.

This includes Linux users starting like rootli_usr_custom or databases like rootli_db_custom. If you absolutely need to modify your systems, avoid the usage of this prefix.