.. _docker_install:

=========================
Install Fleio with Docker
=========================


.. important::

  **Docker deployment of Fleio is now the recommended method to install Fleio.**

  2021.05.1 was the last release to include deb and rpm system packages.

For a list of supported Linux distributions and other requirements see :doc:`/installing/requirements`. 

It is recommended to install Fleio on a clean, newly deployed machine that is not running other services. This avoids
possible conflicts (e.g. the ``fleio`` user created automatically must have UID 625 and the ``fleio`` group GID 625).

Update all system packages before proceeding (e.g. ``apt update && apt upgrade`` or ``dnf upgrade``).

You also need the following system packages:

* ``bash``
* ``curl``
* ``sudo``
* ``bc`` - command line calculator, used by the ``fleio backup`` command
* ``bash-completion`` package is recommended to take advantage of ``fleio`` commands autocompletion, but not required.

You will be asked the **license ID** (a 16 characters string, e.g. *yupn5yilio3qiquw*) and the **license key** (e.g.
*WERPWM24HV7PUADHXYBJOIL2LMJVCYYCXORA2CH0EIX===*) during the installation process. You will receive the licensing
details after `purchasing a license <https://fleio.com/pricing>`_. Note that for every purchased license you are also
entitled to an additional license for a non-production environment (staging or development).


.. _docker_install_script:

Install Fleio in one step
=========================

To install Fleio just run the following command:

.. code-block:: bash

    curl -s -o install https://fleio.com/install && sudo bash install


.. note::

    The ``install`` script without any parameters installs the latest stable version.

    You can specify the version number, e.g. ``install 2020.11.1``.

    Or run ``install --include-beta`` (works with versions post-2021.01.0) to consider the beta versions when
    determining "latest". This still installs a stable version, if a stable version is the latest.
    If a beta version is the latest, it will install it.


The script installs Docker and Docker Compose (if not already installed), creates the ``fleio`` local user and group
and creates all the configuration files needed to run Fleio via Docker Compose.

You can inspect the Docker compose configuration at ``/home/fleio/compose/docker-compose.yml``, but DO NOT edit this
file as it may be overwritten on Fleio upgrades.

You can add customizations in file ``/home/fleio/compose/docker-compose.override.yml`` this will not be overwritten by
Fleio and it is already included when you run a ``fleio`` command or ``docker compose`` command (through directive
``COMPOSE_FILE=docker-compose.yml:docker-compose.override.yml`` from file ``.env``).

If you want to know more about what the Docker Fleio deployment script does, see :ref:`docker_deploy_notes`.