402 lines
13 KiB
ReStructuredText
402 lines
13 KiB
ReStructuredText
Technological knowledge requirements
|
|
====================================
|
|
|
|
Basic system
|
|
-------------
|
|
|
|
Components which are installed directly as part of the basic virtual machine.
|
|
|
|
Alpine linux
|
|
^^^^^^^^^^^^
|
|
|
|
- **General description:** Operating system
|
|
- **Tech. description:** Lightweight linux distribution based on musl C libraries
|
|
- **Depends on:** -
|
|
- **Used by:** Everything
|
|
- **Related skills:** EXTLINUX / ISOLINUX, git, linux administration (cron, filesystems, iptables, networking, user/group mgmt etc.), LUKS, LVM, OpenRC init system, POSIX standards, s6 init system, shell scripting
|
|
|
|
Acme.sh
|
|
^^^^^^^
|
|
|
|
- **General description:** Certificate renewal tool
|
|
- **Tech. description:** Shell-based Automated Certificate Management Environment client
|
|
- **Depends on:** -
|
|
- **Used by:** nginx, VMMgr
|
|
- **Related skills:** shell scripting, SSL/TLS
|
|
|
|
Nginx
|
|
^^^^^
|
|
|
|
- **General description:** Web server
|
|
- **Tech. description:** Lightweight HTTP server
|
|
- **Depends on:** -
|
|
- **Used by:** All application containers, VMMgr
|
|
- **Related skills:** HTTP (proxying, rewriting)
|
|
|
|
LXC
|
|
^^^
|
|
|
|
- **General description:** Container virtualization host
|
|
- **Tech. description:** Operating system-level container virtualization host
|
|
- **Depends on:** -
|
|
- **Used by:** All containers
|
|
- **Related skills:** container virtualization fundamentals, linux kernel (cgroups, overlayfs, seccomp), shell scripting
|
|
|
|
Postfix
|
|
^^^^^^^
|
|
|
|
- **General description:** Mail server
|
|
- **Tech. description:** Outbound mail transfer agent
|
|
- **Depends on:** -
|
|
- **Used by:** All application containers
|
|
- **Related skills:** SMTP
|
|
|
|
SPOC
|
|
^^^^
|
|
|
|
- **General description:** Container virtualization manager
|
|
- **Tech. description:** Convenience abstraction layer on top of LXC
|
|
- **Depends on:** LXC, Python 3
|
|
- **Used by:** All containers, VMMgr
|
|
- **Related skills:** JSON, python frameworks and modules (cryptography, requests, subprocess), LXC, shell scripting
|
|
|
|
VMMgr
|
|
^^^^^
|
|
|
|
- **General description:** Virtual machine and application manager web interface
|
|
- **Tech. description:** In-house Werkzeug-based virtual machine and application manager WSGI application
|
|
- **Depends on:** Nginx, LXC, Python 3
|
|
- **Used by:** User
|
|
- **Related skills:** JSON, python frameworks and modules (cryptography, jinja2, requests, subprocess, werkzeug), shell scripting, WSGI application development
|
|
|
|
Runtimes
|
|
--------
|
|
|
|
Components which are supplied as LXC overlay layers but don't run as standalone containers
|
|
|
|
Java
|
|
^^^^
|
|
|
|
- **General description:** Java runtime environment
|
|
- **Tech. description:** Java OpenJDK 8 runtime environment
|
|
- **Depends on:** -
|
|
- **Used by:** ActiveMQ, DHIS2, FrontlineSMS, Tomcat, CrisisCleanup, MifosX, Motech, OpenDataKit, OpenMapKit, Sigmah, Solr
|
|
- **Related skills:** -
|
|
|
|
Nodejs
|
|
^^^^^^^
|
|
|
|
- **General description:** JavaScript runtime environment
|
|
- **Tech. description:** Server-side Nodejs 8 JavaScript runtime environment
|
|
- **Depends on:** -
|
|
- **Used by:** CrisisCleanup, GNU Health, Odoo, OpenDataKit Build, OpenMapKit
|
|
- **Related skills:** HTTP (proxying), JavaScript (language overview)
|
|
|
|
PHP
|
|
^^^
|
|
|
|
- **General description:** PHP 7 runtime environment
|
|
- **Tech. description:** PHP 7 hypertext preprocessor scripting runtime
|
|
- **Depends on:** -
|
|
- **Used by:** Kanboard, SeedDMS, Ushahidi
|
|
- **Related skills:** HTTP (proxying), PHP 7 (language overview), PHP-FPM
|
|
|
|
Python 2
|
|
^^^^^^^^
|
|
|
|
- **General description:** Python 2 runtime environment
|
|
- **Tech. description:** Python 2 runtime environment and standard libraries
|
|
- **Depends on:** -
|
|
- **Used by:** CTS, OpenMapKit
|
|
- **Related skills:** linux compilation toolchain (header files, gcc, make etc.), pip, python (language overview)
|
|
|
|
Python 3
|
|
^^^^^^^^
|
|
|
|
- **General description:** Python 3 runtime environment
|
|
- **Tech. description:** Python 3 runtime environment and standard libraries
|
|
- **Depends on:** -
|
|
- **Used by:** CKAN, CKAN DataPusher, GNU Health, Odoo, Pan.do/ra, Sahana Eden, SeedDMS, Taarifa Waterpoints, VMMgr (doesn't use container)
|
|
- **Related skills:** linux compilation toolchain (header files, gcc, make etc.), pip, python (language overview)
|
|
|
|
Ruby
|
|
^^^^
|
|
|
|
- **General description:** Ruby runtime environment
|
|
- **Tech. description:** Ruby 2.4 runtime environment and gem package installer
|
|
- **Depends on:** -
|
|
- **Used by:** CrisisCleanup, Decidim, OpenDataKit Build
|
|
- **Related skills:** linux compilation toolchain (header files, gcc, make etc.)
|
|
|
|
Tomcat
|
|
^^^^^^
|
|
|
|
- **General description:** Lightweight Java application server
|
|
- **Tech. description:** Java application JSP and servlet container
|
|
- **Depends on:** Java
|
|
- **Used by:** MifosX, Motech, OpenDataKit, Sigmah
|
|
- **Related skills:** JVM tuning, shell scripting
|
|
|
|
Components
|
|
----------
|
|
|
|
Components which are supplied as LXC containers required by other applications but aren't exposed directly to the end user
|
|
|
|
ActiveMQ
|
|
^^^^^^^^
|
|
|
|
- **General description:** Message broker middleware
|
|
- **Tech. description:** Java-based message broker and messaging server
|
|
- **Depends on:** Java
|
|
- **Used by:** Motech
|
|
- **Related skills:** JVM tuning, XML
|
|
|
|
MariaDB
|
|
^^^^^^^
|
|
|
|
- **General description:** MySQL database server
|
|
- **Tech. description:** MySQL-compatible relational database management system
|
|
- **Depends on:** -
|
|
- **Used by:** MifosX, Ushahidi
|
|
- **Related skills:** SQL (language overview)
|
|
|
|
MongoDB
|
|
^^^^^^^
|
|
|
|
- **General description:** NoSQL database server
|
|
- **Tech. description:** NoSQL JSON/BSON document-based database management system
|
|
- **Depends on:** -
|
|
- **Used by:** Taarifa Waterpoints
|
|
- **Related skills:** JSON
|
|
|
|
Postgres
|
|
^^^^^^^^
|
|
|
|
- **General description:** PostgreSQL database server
|
|
- **Tech. description:** PostgreSQL relational database management system
|
|
- **Depends on:** -
|
|
- **Used by:** CKAN, CrisisCleanup, CTS, Decidim, DHIS2, GNU Health, Kanboard, Motech, Odoo, OpenDataKit, OpenDataKit Build, OpenMapKit, Pan.do/ra, Sahana Eden, SeedDMS, Sigmah
|
|
- **Related skills:** SQL (language overview)
|
|
|
|
RabbitMQ
|
|
^^^^^^^^
|
|
|
|
- **General description:** Message broker middleware
|
|
- **Tech. description:** Erlang-based message broker and messaging server
|
|
- **Depends on:** -
|
|
- **Used by:** Pan.do/ra
|
|
- **Related skills:** -
|
|
|
|
Redis
|
|
^^^^^
|
|
|
|
- **General description:** Key-value NoSQL database server
|
|
- **Tech. description:** In-memory NoSQL key-value data structure object store
|
|
- **Depends on:** -
|
|
- **Used by:** CKAN
|
|
- **Related skills:** -
|
|
|
|
Solr
|
|
^^^^
|
|
|
|
- **General description:** Full-text search server
|
|
- **Tech. description:** Apache Lucene-based full-text search and indexing platform
|
|
- **Depends on:** Java
|
|
- **Used by:** CKAN
|
|
- **Related skills:** shell scripting, JVM tuning
|
|
|
|
|
|
Applications
|
|
------------
|
|
|
|
Components which are supplied as LXC containers exposed directly to the end user
|
|
|
|
CKAN
|
|
^^^^
|
|
|
|
- **General description:** Data management and data store system
|
|
- **Tech. description:** Flask-based data store application
|
|
- **Depends on:** CKAN DataPusher, Postgres, Python 3, Redis, Solr
|
|
- **Used by:** User
|
|
- **Related skills:** PostGIS, python frameworks and modules (flask, paster, setuptools), Solr core configuration
|
|
|
|
CKAN DataPusher
|
|
^^^^^^^^^^^^^^^
|
|
|
|
- **General description:** Data file parser for CKAN
|
|
- **Tech. description:** Python-based data file parser service for CKAN
|
|
- **Depends on:** Python 3
|
|
- **Used by:** CKAN
|
|
- **Related skills:** MIME types identification, WSGI application development
|
|
|
|
CrisisCleanup
|
|
^^^^^^^^^^^^^
|
|
|
|
- **General description:** Disaster response and relief coordination
|
|
- **Tech. description:** Ruby-on-Rails-based application with Nodejs-generated frontend assets
|
|
- **Depends on:** LibXML, Nodejs, Postgres, Ruby
|
|
- **Used by:** User
|
|
- **Related skills:** Nodejs build systems (npm, yarn), Ruby build systems and frameworks (Bundle, Devise, Gems, Rails, Rake)
|
|
|
|
CTS
|
|
^^^
|
|
|
|
- **General description:** Commodity tracking system
|
|
- **Tech. description:** Django-based forms applicaton
|
|
- **Depends on:** Postgres, Python 2
|
|
- **Used by:** User
|
|
- **Related skills:** python frameworks (Django), WSGI application development
|
|
|
|
Decidim
|
|
^^^^^^^
|
|
|
|
- **General description:** Platform for citizen participation
|
|
- **Tech. description:** Ruby on Rails-based forms and polls applicaton
|
|
- **Depends on:** Nodejs, Postgres, Ruby
|
|
- **Used by:** User
|
|
- **Related skills:** Nodejs build systems (npm, yarn), Ruby build systems and frameworks (Bundle, Devise, Gems, Rails, Rake)
|
|
|
|
DHIS2
|
|
^^^^^
|
|
|
|
- **General description:** Platform for collecting, managing, analyzing, visualizing and sharing medical data
|
|
- **Tech. description:** Spring-based RESTful API backend with Nodejs-packed frontend
|
|
- **Depends on:** Java, Nodejs, Postgres
|
|
- **Used by:** User
|
|
- **Related skills:** Nodejs build systems (npm), Java build systems and frameworks (Maven, Apache Struts, Spring)
|
|
|
|
FrontlineSMS
|
|
^^^^^^^^^^^^
|
|
|
|
- **General description:** Bulk text messaging
|
|
- **Tech. description:** Spring-based application for modem device access
|
|
- **Depends on:** Java
|
|
- **Used by:** User
|
|
- **Related skills:** Java build systems and frameworks (grails, Spring), Jetty, linux modem/tty handling, Xorg (X server)
|
|
|
|
GNU Health
|
|
^^^^^^^^^^
|
|
|
|
- **General description:** Hospital information system (ERP)
|
|
- **Tech. description:** Tryton-based form application RPC backend with Nodejs-based frontend
|
|
- **Depends on:** Nodejs, Postgres, Python 3
|
|
- **Used by:** User
|
|
- **Related skills:** Nodejs build systems (grunt, npm), python modules (setuptools, virtualenv)
|
|
|
|
Kanboard
|
|
^^^^^^^^
|
|
|
|
- **General description:** Kanban project management
|
|
- **Tech. description:** Symfony-based forms application
|
|
- **Depends on:** PHP, Postgres
|
|
- **Used by:** User
|
|
- **Related skills:** PHP build systems and frameworks (Composer, Symfony)
|
|
|
|
MifosX
|
|
^^^^^^
|
|
|
|
- **General description:** Microfinancing for development projects
|
|
- **Tech. description:** Spring-based forms application RPC backend with Nodejs-packed frontend
|
|
- **Depends on:** MariaDB, Tomcat
|
|
- **Used by:** User
|
|
- **Related skills:** Java frameworks (Spring), Nodejs and JavaScript development (Angular, Bower, Grunt)
|
|
|
|
Motech
|
|
^^^^^^
|
|
|
|
- **General description:** Communication automation (Emails, SMS etc.)
|
|
- **Tech. description:** Apache Felix-based forms application
|
|
- **Depends on:** ActiveMQ, Postgres, Tomcat
|
|
- **Used by:** User
|
|
- **Related skills:** Java frameworks (Apache Felix, Spring)
|
|
|
|
Odoo
|
|
^^^^
|
|
|
|
- **General description:** Company management application suite
|
|
- **Tech. description:** Werkzeug-based forms application RPC backend with Nodejs-based frontend
|
|
- **Depends on:** Nodejs, Postgres, Python 3
|
|
- **Used by:** User
|
|
- **Related skills:** WSGI application development
|
|
|
|
OpenDataKit
|
|
^^^^^^^^^^^
|
|
|
|
- **General description:** Form data collection server
|
|
- **Tech. description:** Spring and OpenRosa-based data store application
|
|
- **Depends on:** Postgres, Tomcat
|
|
- **Used by:** User
|
|
- **Related skills:** Java build systems and frameworks (Gradle, Spring)
|
|
|
|
OpenDataKit Build
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
- **General description:** Form data collection designer
|
|
- **Tech. description:** Ruby-based forms application with Nodejs-based data converter
|
|
- **Depends on:** Nodejs, Ruby
|
|
- **Used by:** User
|
|
- **Related skills:** Nodejs build systems (npm), Ruby build systems and frameworks (Bundler, Rake)
|
|
|
|
OpenMapKit
|
|
^^^^^^^^^^
|
|
|
|
- **General description:** Map data collection server
|
|
- **Tech. description:** Nodejs-based forms application with python dependencies
|
|
- **Depends on:** Nodejs, Postgres, Python 2
|
|
- **Used by:** User
|
|
- **Related skills:** JavaScript development, Nodejs build systems (Yarn)
|
|
|
|
Pan.do/ra
|
|
^^^^^^^^^
|
|
|
|
- **General description:** Multimedia library and archive
|
|
- **Tech. description:** Python-based media store with Javascript-based frontend
|
|
- **Depends on:** Postgres, Python 3, RabbitMQ
|
|
- **Used by:** User
|
|
- **Related skills:** ffmpeg, imagemagick, JavaScript development (oxjs)
|
|
|
|
Sahana Eden
|
|
^^^^^^^^^^^
|
|
|
|
- **General description:** Management of humanitarian activities
|
|
- **Tech. description:** Web2py-based forms application
|
|
- **Depends on:** Postgres, Python 3
|
|
- **Used by:** User
|
|
- **Related skills:** PostGIS, python frameworks and modules (requests, selenium, Web2py)
|
|
|
|
SeedDMS
|
|
^^^^^^^
|
|
|
|
- **General description:** Document management system
|
|
- **Tech. description:** PHP-based data store application with Lucene-based fulltext index
|
|
- **Depends on:** PHP, Postgres
|
|
- **Used by:** User
|
|
- **Related skills:** Apache Lucene, ghostscript, LibreOffice (unoconv), imagemagick, MIME types identification
|
|
|
|
Sigmah
|
|
^^^^^^^
|
|
|
|
- **General description:** Donation management
|
|
- **Tech. description:** Apache Commons-based forms application
|
|
- **Depends on:** Postgres, Tomcat
|
|
- **Used by:** User
|
|
- **Related skills:** Java development (hibernate, log4j)
|
|
|
|
Taarifa Waterpoints
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
- **General description:** Waterpoint management system
|
|
- **Tech. description:** Python RESTful API backend with nodejs-packed frontend
|
|
- **Depends on:** MongoDB, Nodejs, Python 3
|
|
- **Used by:** User
|
|
- **Related skills:** Nodejs build systems (npm, grunt, bower)
|
|
|
|
Ushahidi
|
|
^^^^^^^^
|
|
|
|
- **General description:**
|
|
- **Tech. description:** Laravel-based RPC backend with Angular-based frontend
|
|
- **Depends on:** MariaDB, PHP
|
|
- **Used by:** User
|
|
- **Related skills:** JavaScript build tools and frameworks (Angular, Babel, WebPack), PHP build tools and frameworks (composer, Laravel, phinx)
|