Application Architecture

Application Architecture

There is a large variety of applications currently running on the platform.
This page gives an overview of all these applications and also acts as a formal catalog. For that reason, this page will probably change a lot. All applications with date added 14-06-2020 are applications which were added when this page was written and add date was unknown.

Local machine

Application NameStatusPurposeNamespace (if existing)Folder linkUrl
Control - Docker JumphostJumphost on local dev machine to manage the cluster from WindowsLocal - ControlControlN/A
Jenkins CI/CDLocal Jenkins (with Config as code), sourced from git. Used to deploy ansible and kubernetes components (manual only)Local - ControlJenkinsN/A
VagrantVagrant (file) definitions, used to spin up test VM’s, used for virtual cluster tests such as for Ansible.Local - ControlVagrantN/A
QemuQEMU definitions, used to spin up test VM’s for Raspberry PI’s, used for virtual cluster tests such as for Ansible.Local - ControlQemuN/A

Ansible

Application NameStatusPurposeNamespace (if existing)Folder linkUrl
DnsMasqConfiguration of custom DNS Service from the serverAnsibleDnsMasqN/A
OVPNVPN Bare-Metal Service, hosts all major connectionsAnsibleOVPNhttp://ovpn.bas
Prometheus Node ExporterExports all metrics data from each server to PrometheusAnsiblePrometheus Node ExporterN/A
SambaFile storage server for local LAN use only, to access dataAnsibleSambaN/A
NFSFile storage server on external backup storage serversAnsible - PiNFSN/A

Kubernetes

Application NameStatusPurposeNamespace (if existing)Folder linkUrl
Backup jobsBi-weekly and monthly backup Kubernetes jobs on all storageBackupBackupN/A
Comms - WhatsAppREST Endpoint expose Whatsapp client through SeleniumCommsWhatsApphttp://whatsapp.bas
Comms - TelegramREST Endpoint exposed Telegram clientCommsTelegramhttp://telegram.bas
FindLF - Wifi TrackingIn-house wifi trackingeventFindLFN/A
influxdb - kafka sinkInfluxDB instance as data sink for KafkaeventInfluxDB SinkN/A
kafka - event architectureKafka cluster which tracks all (home-automation) eventseventKafkahttp://kafka.bas
Nifi - event orchestrationOrchestrating all trafic in the event-driven architectureeventNifihttp://nifi.bas
Mosquito - “raw” data sinkData sink for all event data which integrations with MQTTeventRawN/A
Zeppelin - Event-DrivenZeppelin analytics platform for running event-driven analyticseventZeppelin Eventhttp://zeppelin.bas
Zookeeper - ElectionSupport app for leader election of decentralized infraeventzookeeperhttp://zookeeper.bas
homeassistantHome Automation Instance, integrates with home automation toolshomeautomationHome Assistanthttp://homeassistant.bas
openhabSecundairy Home Automation Instance, integrates to homeassistanthomeautomationOpenhabhttp://openhab.bas
Kubernetes DashboardManagement dashboard to manage Kubernetes through a GUIkubernetes-dashboardKubernetes Dashboardhttp://kubernetes.bas
Traefik 2.xReverse Proxy, managing all domain requests on port 33555kube-systemTraefik 2.xhttp://treafik.bas
WeaveworksL3 Network overlay for Kuberneteskube-systemWeaveworksN/A
Weave-scopeManagement GUI for Weaveworks network overlaykube-systemWeave Scopehttp://weavescope.bas
Chronograf - MonitoringManagement UI for Chronograf for monitoringmonitoringChronograf Monitoringhttp://chronograf.bas
Exporter - openvpnOpenVPN metrics exporter for PrometheusmonitoringExporter OpenvpnN/A
Exporter - qbittorentQbittorrent metrics exporter for PrometheusmonitoringExporter QbittorentN/A
Exporter - tautulliTautulli metrics exporter for PrometheusmonitoringExporter TautulliN/A
Exporter - varkenPlex metrics exporter for PrometheusmonitoringExporter VarkenN/A
GrafanaGrafana Cluster Dashboards, dashboard for entire clustermonitoringGrafanahttp://grafana.bas
HeimdallCustomizable starting pagemonitoringHeimdallhttp://home.bas
InfluxDB - MonitoringData Store for Traefik (online & offline) and VarkenmonitoringInfluxDB MonitoringN/A
OpenVPN StatusOpenVPN static metric aggregator on OVPN management portmonitoringOpenVPN Statushttp://openvpn.bas
PrometheusMetrics collector and data storemonitoringPrometheushttp://prometheus.bas
Email - NextcloudSMTP Server for sending out emails from NextcloudnextcloudEmail Nextcloudhttp://email.bas
MariaDB - NextcloudMySQL Database for storing Nextcloud DatanextcloudMariaDB NextcloudN/A
NextcloudPrivate storage cloudnextcloudNextcloudhttp://cloud.bas
Redis - NextcloudRedis Cache for Nextcloud temp storagenextcloudRedis NextcloudN/A
Nginx - Nextcloud PublicPublic Exposure of some of the Nextcloud resources, filteredonlineNGINXhttp://cloud.basraven.nl
Traefik 2.x - PublicReverse Proxy for all public endpointsonlineTraefik 2.x Onlinehttp://treafik-online.bas
AutheliaAuthentication Proxy, to secure expose applicationssecurityAutheliahttp://aithelia.bas
OpenldapOpenLDAP IAM implementation, for centralized user managementsecurityOpenLDAPhttp://ldap.bas
PhpladpadminOpenLDAP Management UIsecurityPhpLdapAdminhttp://openldap.bas
CouchpotatoTorrent Movie download librarytorrentcoachpotatohttp://couch.bas
JackettTorrent Trackers ManagementtorrentJacketthttp://jackett.bas
PlexPlex Media ServertorrentPlexhttp://plex.bas
QbittorentBittorrent Download ClienttorrentQbittorenthttp://torrent.bas
RadarrMovie Torrent data aggregatortorrentRadarrhttp://radarr.bas
SonarrSeries Torrent data aggregatortorrentSonarrhttp://sonarr.bas

Brian - Experimental AI

Application NameStatusPurposeNamespace (if existing)Folder linkUrl
Doorbell image recognitionImage Recognition on video with Python 3.xBrian - Image recognitionImage RecognitionN/A
Zeppelin - AnalyticsZeppelin analytics platform for running spark jobsBrian - Zeppelin AnalyticsZeppelin Experimentalhttp://zeppelin.bas