.. include:: global.rst
.. figure:: _static/images/banner.png
:align: left
:alt: Action Potential Prediction
Welcome to AP-Nimbus's documentation
====================================
:Project Home: https://github.com/CardiacModelling/ap-nimbus
:Documentation: https://ap-nimbus.readthedocs.io/
:Created: |today|
:Version: |release|
IMPORTANT
---------
This activity represents the next step in the development of the original
`AP-Portal `_ work -- towards a
container-based / cloud solution.
|AP-Nimbus| is available at https://github.com/CardiacModelling/ap-nimbus and is
being developed by the `University of Nottingham `_\ 's
`School of Mathematical Sciences `_ .
Preamble
--------
* Unlike `AP-Portal `_, this work
includes the installation of |ApPredict|, the cardiac simulation software.
* Also unlike |AP-Portal|, this work, by nature of containerisation, means that
|AP-Nimbus| work does not embody a single application, it is instead a
collection of containers where each can operate in isolation, e.g. as a
standalone |docker| or |singularity| container, or alternatively, orchestrated
in a microservice architecture (e.g. |kubernetes| or |docker_compose|).
Singularity
-----------
This documentation predominantly covers |docker| container environments, however
it has been relatively straightforward to create `Singularity `_
containers (e.g. ``singularity build app-manager.img docker://cardiacmodelling/ap-nimbus-app-manager:0.0.10``)
and use those [#f1]_.
Sample invocation scripts can be found at `ap-predict-online `_\'s
`app-manager --> tools `_ section.
Diagrammatic Representation
---------------------------
For the role each of the containers has in the overall |AP-Nimbus| activity please
see :ref:`activity-overview`.
.. _appredict_containers:
ApPredict containers
^^^^^^^^^^^^^^^^^^^^
`ApPredict `_ is the underlying cardiac
simulation engine.
Building or installing |ApPredict| is a complex and time-consuming
process and by distributing in container form it's possible to have it installed
in a fraction of the time [#f2]_.
.. figure:: _static/images/appredict-in-containers.png
:width: 700px
:alt: ApPredict in Containers.
.. _apnimbus_containers:
|AP-Nimbus| containers
^^^^^^^^^^^^^^^^^^^^^^
The following illustrates a Docker container setup.
.. figure:: _static/images/apnimbus-containers.png
:alt: AP-Nimbus containers.
It is equally feasible to run as .. :
* Containerised
* ``docker run ..`` a single |ap-nimbus-app-manager| container and
call it with |HTTP| ``POST`` and ``GET`` requests, or;
* ``docker run ..`` either of the |appredict-with-emulators| or
|appredict-no-emulators| containers directly from a |CLI| to run their internal
|ApPredict|\s, or;
* Non-containerised
* Running the various components without using containers is technically possible, but not reccomended or supported. See :ref:`developer` for suggestions on how to develop the components using containers.
.. seealso:: For instructions on how to run containers, see the more detailed section on
:ref:`running`.
Activity Overview
-----------------
.. toctree::
:maxdepth: 2
activity-overview/index
Installation
------------
.. toctree::
:maxdepth: 2
installation/index
Security
--------
.. toctree::
:maxdepth: 2
security/index
Running
-------
.. toctree::
:maxdepth: 2
running/index
Troubleshooting
---------------
.. toctree::
:maxdepth: 2
troubleshooting/index
Developer Section
-----------------
.. toctree::
:maxdepth: 2
developer/index
.. rubric:: Footnotes
.. [#f1] |singularity| containers (or rather, a |singularity| version of just
|ap-nimbus-app-manager| so far) have been trialled operating in isolation,
not in an orchestrated environment.
.. [#f2] So long as there's a container runtime, e.g. |docker|, running somewhere!