diff --git a/README.md b/README.md index 0f1891f..4cfea4a 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ This repository contains an easy to replicate recipe to spin up a [Kopano](https - after startup has succeeded you can access the Kopano WebApp by going to `https://kopano.demo/webapp` - there are already some users created in the demo ldap. These users all have a password that is identical to the username, e.g. the password for `user1` user `user1`. +If you want to get an impression how the containers interact/relate with each other have a look at the [architecture](architecture.md) description. + **Note:** There have been reports about the ldap demo not starting up on MacOS. It is recommended to use a Linux OS if you want to use the bundled LDAP image. The `docker-compose.yml` file by default pulls Docker containers from https://hub.docker.com/r/zokradonh/kopano_core/ and https://hub.docker.com/r/zokradonh/kopano_webapp/. These images are based on the [Kopano nightly builds](https://download.kopano.io/community/) and will contain the latest version available from the time the image was built. diff --git a/architecture.md b/architecture.md new file mode 100644 index 0000000..c9f5f52 --- /dev/null +++ b/architecture.md @@ -0,0 +1,103 @@ +# Architecture Overview + +Aka "How do the containers connect/relate/interact with each other?" + +## web + +- external entry point for users accessing Kopano + - reverse proxy for containers exposing a web interface +- can retrieve ssl certificate from Let's Encrypt +- redirects all requests to /webapp by default +- recommended to use as it makes web configuration easy and secure (manual configuration will be tendious and potentially less secure) + +## ldap + +- (optional) bundles OpenLDAP service +- kopano_server is using LDAP to manage users + +## ldap-admin and password-self-service + +- optional containers to manage users in ldap and let users change their password + +## mail + +- MTA stack with anti-spam and anti-virus +- connects against the ldap to verify users + +## db + +- (optional) bundles MariaDB for the Kopano database + +## kopano_ssl + +- helper container to generate ssl certificates for internal usage +- will create required files and then stop + +## kopano_server + +- main process of the Kopano deployment +- connects towards LDAP to get a list of users and verify user logins via bind + +## kopano_webapp + +- provides Kopano WebApp, so users can interact with their mailboxes via their browser + +## kopano_zpush + +- provides Z-Push, so users can sync their mailboxes to phones and tablets + +## kopano_grapi + +- groupware backend of the Kopano RestAPI + +## kopano_kapi + +- http endpoint of the Kopano RestAPI +- stores recent calls for the user in a key value stores (queried over Rest) + +## kopano_kdav + +- provides KDav, so users can sync their calendars and contacts via CalDAV and CardDAV + +## kopano_dagent + +- mail delivery part for kopano_server +- mta delivers mail to it, dagent delivers the mail into the desired inbox + +## kopano_spooler + +- mail sending part for kopano_server +- monitors outboxes of users, submits mails to the mta + +## kopano_gateway + +- provides Pop3 and IMAP access for users + +## kopano_ical + +- provides iCAL and CalDAV access for users (will be replaced with KDav in the future) + +## kopano_monitor + +- monitors mailbox usage and sends quota mails (by directly delivering a mail into the users inbox) + +## kopano_search + +- provides full text indexing for mailboxes + +## kopano_konnect + +- authentification component (OpenID Connect) +- required for apps interacting with the Kopano RestAPI (e.g. Kopano Meet) + +## kopano_kwmserver + +- WebRTC signalling server + +## kopano_meet + +- provides the Meet web application/frontend + +## kopano_scheduler + +- helper container to execute scheduled tasks within Kopano \ No newline at end of file diff --git a/examples/meet/architecture.md b/examples/meet/architecture.md new file mode 100644 index 0000000..ae16ba3 --- /dev/null +++ b/examples/meet/architecture.md @@ -0,0 +1,42 @@ +# Architecture Overview + +## web + +- external entry point for users accessing Kopano Meet + - reverse proxy for kopano_kapi, kopano_konnect, kopano_kwmserver and kopano_meet +- can retrieve ssl certificate from Lets Encrypt +- redirects all requests to /meet +- recommended to use as it makes web configuration easy and secure (manual configuration will be tendious and potentially less secure) + +## ldap + +- (optional) bundles OpenLDAP service +- Konnect and Grapi are using it + +## kopano_ssl + +- helper container to generate ssl certificates for internal usage +- will create required files and then stop + +## kopano_grapi + +- groupware backend of the Kopano RestAPI +- connects to LDAP to provide a global addressbook to users + +## kopano_kapi + +- http endpoint of the Kopano RestAPI +- stores recent calls for the user in a key value stores (queried over Rest) + +## kopano_konnect + +- authentification component (OpenID Connect) for Meet +- connects to the LDAP backend to verify user logins via bind + +## kopano_kwmserver + +- WebRTC signalling server + +## kopano_meet + +- provides the Meet web application/frontend \ No newline at end of file