OpenPaaS is out!

A technical dive inside the platform

Lukas
Linagora Engineering
4 min readMar 1, 2018

--

The developers at Linagora are thrilled to announce the first stable release of OpenPaaS, simply dubbed 1.0! This production-ready release is the result of four years of agile-driven work by our awesome developers and contributors from all around the world. Thanks to everyone for making it possible!

To celebrate this public release, this article will take a technical dive inside our platform. If you are looking for something less technical, please visit our website, test the demo, or watch this video. If you don’t care about pseudo-random strings of English words, then go to our GitHub repository, fork it, and start hacking into it. We warmly welcome contributions, comments and any other kind of feedbacks! Let our story begin!

OpenPaaS in a nutshell: open, modular and modern

OpenPaaS is an open, modern, modular and business-oriented collaboration platform. It relies on open standards and is built using many popular free software, as we will see below. The goal of OpenPaaS is twofold:

  1. First, it is a platform, and as such, it is designed to allow you to quickly deploy new applications, using so-called modules.
  2. Second, it wants to be the social and communication backbone of a company, and to help private and public organizations to get work done efficiently.

In OpenPaaS, modules come in the form of Node Package Manager, or npm-like components. They also have a couple of distinctive properties: they bring dependencies either by name, or by ability; they support asynchronous loading; they provide a lifecycle, and go through states during their initialization.

To wrap OpenPaaS up: as an administrator, you are able to choose which additional module you want to deploy and install; as a developer, you are able to manipulate common collaboration objects such as users, contacts, chat rooms, calendars, emails and to reuse them inside your own application; as a user, you can easily explore our solution, as it features a modern, sleek and responsive web interface embracing the material design guidelines.

Under the hood: the Core and the Suite

In short, OpenPaaS 1.0 can be divided into roughly two parts: on one hand, there is the Core containing cross-cutting features; on the other hand, there are main collaboration applications, that together form the Suite.

Coded in JavaScript, the Core of our PaaS is built upon a handful of critical components, which are all free — as in free love — . Let’s list them:

  • NodeJS is used as the JavaScript run-time environment for executing the OpenPaaS back-end application;
  • a MongoDB database is used to store application-related data, except emails;
  • a RabbitMQ message broker is put to work to deliver messages between applications;
  • Elasticsearch is indexing all data stored through OpenPaaS. Without it, we could not search inside the data stored by applications, including email messages;
  • Java Apache Mail Enterprise Server, also known simply as James, is used as a mail delivery agent for OpenPaaS, and to interact directly with the platform. James allows easy administration and load balancing of emails, alongside high availability. James not only supports protocols such as POP3 and IMAP, but also JMAP, the trending protocol that is meant to make emails cool again. Among other things, it allows the browser to talk directly with the mail server.
  • A Cassandra database, which is used to store emails. If you want to know more about Cassandra’s performance tuning in the context of OpenPaaS, let’s check this article;
  • Finally, a WebDAV Server based on SabreDAV, and which is managing calendars and contacts.

The suite

The front-end of the platform is crafted with AngularJS. As of now, the Suite is made of a collection of user-accessible applications, including a so-called unified inbox; a calendar; a contact manager; a community center; a chat system and a control center, for managing settings.

From an administration standpoint, OpenPaaS can be interfaced with existing directory services, such as OpenLDAP. If you would like to implement web-based single sign-on (SSO), you can also integrate it with LemonLDAP, as shown for example in this previous article.

What’s next?

This is only the beginning. Currently, a lot of efforts is being done to work out integration details with proprietary solutions. Then, an application market place will be released, which will contain business-oriented and third-party applications. CryptPad, a collaborative editor, will soon be merged into the production release, allowing users to collaborate on documents and presentations using end-to-end encryption. Finally, Hubl.in, our home-brewed video-conferencing system, will soon join the OpenPaaS family.

Conclusion

At Linagora, we are proud to offer an open solution developed with love and designed with ethics in mind. We hope you are going to enjoy using it. If you have any question, please do not hesitate to write a comment in the section below. If you want to contribute, let’ s follow this link.

Keep in touch with OpenPaaS on Twitter, Facebook, GitHub and with LinShare on Twitter and GitHub.

Interested in joining Linagora? Apply for job offers.

Are you currently a computer science student? Do you want to be part of the future of emails? If so, let’s follow this path.

--

--