2025-10-28 02:50:31 +01:00
% SPDX-License-Identifier: Apache-2.0
(install-page)=
# Installation Guide
2025-12-30 22:08:21 +01:00
This guide provides different methods to install Akkudoktor-EOS:
2025-11-03 17:40:25 +01:00
2025-11-16 13:25:45 +01:00
- Installation from Source (GitHub) (M1)
- Installation from Release Package (GitHub) (M2)
- Installation with Docker (DockerHub) (M3)
- Installation with Docker (docker-compose) (M4)
2025-12-30 22:08:21 +01:00
- Installation in Home Assistant (M5)
2025-11-03 17:40:25 +01:00
Choose the method that best suits your needs.
:::{admonition} Tip
:class: Note
If you need to update instead, see the [Update Guideline ](update-page ). For reverting to a previous
release see the [Revert Guideline ](revert-page ).
:::
2025-10-28 02:50:31 +01:00
## Installation Prerequisites
Before installing, ensure you have the following:
2025-12-30 22:08:21 +01:00
### For Source / Release Installation (M1/M2)
2025-10-28 02:50:31 +01:00
2026-02-23 20:59:03 +01:00
- Python 3.11+
- uv (recommended)
2025-11-03 17:40:25 +01:00
- Git (only for source)
- Tar/Zip (for release package)
2025-10-28 02:50:31 +01:00
2025-12-30 22:08:21 +01:00
### For Docker Installation (M3/M4)
2025-10-28 02:50:31 +01:00
2025-11-03 17:40:25 +01:00
- Docker Engine 20.10 or higher
- Docker Compose (optional, recommended)
2025-10-28 02:50:31 +01:00
2025-12-30 22:08:21 +01:00
:::{admonition} Tip
:class: Note
2025-11-16 13:25:45 +01:00
See [Install Docker Engine ](https://docs.docker.com/engine/install/ ) on how to install docker on
your Linux distro.
2025-12-30 22:08:21 +01:00
:::
### For Installation in Home Assistant (M5)
- [Home Assistant Operating System ](https://www.home-assistant.io/installation/ )
:::{admonition} Warning
:class: Warning
Akkudoktor-EOS is a [Home Assistant add-on ](https://www.home-assistant.io/addons/ ).
[Home Assistant Container ](https://www.home-assistant.io/installation/ ) installations don’ t
have access to add-ons.
:::
2025-11-16 13:25:45 +01:00
2026-02-23 20:59:03 +01:00
## Install uv (one-time setup)
```{eval-rst}
.. tabs::
.. tab:: Windows
.. code-block:: powershell
irm https://astral.sh/uv/install.ps1 | iex
.. tab:: Linux
.. code-block:: bash
curl -LsSf https://astral.sh/uv/install.sh | sh
` ``
2025-11-03 17:40:25 +01:00
## Installation from Source (GitHub) (M1)
Recommended for developers or users wanting the latest updates.
### 1) Clone the Repository (M1)
2025-10-28 02:50:31 +01:00
` ``{eval-rst}
.. tabs::
.. tab:: Windows
.. code-block:: powershell
git clone https://github.com/Akkudoktor-EOS/EOS.git
cd EOS
.. tab:: Linux
.. code-block:: bash
git clone https://github.com/Akkudoktor-EOS/EOS.git
cd EOS
` ``
2025-11-03 17:40:25 +01:00
### 2) Create a Virtual Environment and install dependencies (M1)
2025-10-28 02:50:31 +01:00
` ``{eval-rst}
.. tabs::
.. tab:: Windows
.. code-block:: powershell
2026-02-23 20:59:03 +01:00
uv sync --extra dev
2025-10-28 02:50:31 +01:00
.. tab:: Linux
.. code-block:: bash
2026-02-23 20:59:03 +01:00
uv sync --extra dev
2025-10-28 02:50:31 +01:00
` ``
2025-11-03 17:40:25 +01:00
### 3) Run EOS (M1)
2025-10-28 02:50:31 +01:00
` ``{eval-rst}
.. tabs::
.. tab:: Windows
.. code-block:: powershell
2026-02-23 20:59:03 +01:00
uv run python -m akkudoktoreos.server.eos
2025-10-28 02:50:31 +01:00
.. tab:: Linux
.. code-block:: bash
2026-02-23 20:59:03 +01:00
uv run python -m akkudoktoreos.server.eos
2025-10-28 02:50:31 +01:00
` ``
2025-11-03 17:40:25 +01:00
EOS is now available at:
- API: [http://localhost:8503/docs](http://localhost:8503/docs)
- EOSdash: [http://localhost:8504](http://localhost:8504)
2025-10-28 02:50:31 +01:00
If you want to make EOS and EOSdash accessible from outside of your machine or container at this
stage of the installation provide appropriate IP addresses on startup.
<!-- pyml disable line-length -->
` ``{eval-rst}
.. tabs::
.. tab:: Windows
.. code-block:: powershell
2026-02-23 20:59:03 +01:00
uv run python -m akkudoktoreos.server.eos --host 0.0.0.0 --eosdash-host 0.0.0.0
2025-10-28 02:50:31 +01:00
.. tab:: Linux
.. code-block:: bash
2026-02-23 20:59:03 +01:00
uv run python -m akkudoktoreos.server.eos --host 0.0.0.0 --eosdash-host 0.0.0.0
2025-10-28 02:50:31 +01:00
` ``
<!-- pyml enable line-length -->
2025-11-03 17:40:25 +01:00
### 4) Configure EOS (M1)
2025-10-28 02:50:31 +01:00
2025-11-03 17:40:25 +01:00
Use EOSdash at [http://localhost:8504](http://localhost:8504) to configure EOS.
2025-10-28 02:50:31 +01:00
2025-11-03 17:40:25 +01:00
## Installation from Release Package (GitHub) (M2)
2025-10-28 02:50:31 +01:00
This method is recommended for users who want a stable, tested version.
2025-11-03 17:40:25 +01:00
### 1) Download the Latest Release (M2)
2025-10-28 02:50:31 +01:00
2025-11-03 17:40:25 +01:00
Visit the [Releases page](https://github.com/Akkudoktor-EOS/EOS/tags) and download the latest
2025-11-09 09:07:04 +01:00
release package (e.g., ` akkudoktoreos-v0.2.0.tar.gz` or ` akkudoktoreos-v0.2.0.zip`).
2025-10-28 02:50:31 +01:00
2025-11-03 17:40:25 +01:00
### 2) Extract the Package (M2)
2025-10-28 02:50:31 +01:00
` ``bash
2025-11-09 09:07:04 +01:00
tar -xzf akkudoktoreos-v0.2.0.tar.gz # For .tar.gz
2025-10-28 02:50:31 +01:00
# or
2025-11-09 09:07:04 +01:00
unzip akkudoktoreos-v0.2.0.zip # For .zip
2025-10-28 02:50:31 +01:00
2025-11-09 09:07:04 +01:00
cd akkudoktoreos-v0.2.0
2025-10-28 02:50:31 +01:00
` ``
2025-11-03 17:40:25 +01:00
### 3) Create a virtual environment and run and configure EOS (M2)
2025-10-28 02:50:31 +01:00
2025-11-03 17:40:25 +01:00
Follow Step 2), 3) and 4) of method M1. Start at
` 2) Create a Virtual Environment and install dependencies`
2025-10-28 02:50:31 +01:00
2025-11-03 17:40:25 +01:00
### 4) Update the source code (M2)
To extract a new release to a new directory just proceed with method M2 step 1) for the new release.
You may remove the old release directory afterwards.
## Installation with Docker (DockerHub) (M3)
2025-10-28 02:50:31 +01:00
This method is recommended for easy deployment and containerized environments.
2025-11-03 17:40:25 +01:00
### 1) Pull the Docker Image (M3)
2025-10-28 02:50:31 +01:00
` ``bash
docker pull akkudoktor/eos:latest
` ``
For a specific version:
` ``bash
2025-11-03 17:40:25 +01:00
docker pull akkudoktor/eos:v<version>
2025-10-28 02:50:31 +01:00
` ``
2025-11-03 17:40:25 +01:00
### 2) Run the Container (M3)
2025-10-28 02:50:31 +01:00
**Basic run:**
` ``bash
docker run -d \
--name akkudoktoreos \
-p 8503:8503 \
-p 8504:8504 \
-e OPENBLAS_NUM_THREADS=1 \
-e OMP_NUM_THREADS=1 \
-e MKL_NUM_THREADS=1 \
-e EOS_SERVER__HOST=0.0.0.0 \
-e EOS_SERVER__PORT=8503 \
-e EOS_SERVER__EOSDASH_HOST=0.0.0.0 \
-e EOS_SERVER__EOSDASH_PORT=8504 \
--ulimit nproc=65535:65535 \
--ulimit nofile=65535:65535 \
--security-opt seccomp=unconfined \
akkudoktor/eos:latest
` ``
2025-11-03 17:40:25 +01:00
### 3) Verify the Container is Running (M3)
2025-10-28 02:50:31 +01:00
` ``bash
docker ps
docker logs akkudoktoreos
` ``
EOS should now be accessible at [http://localhost:8503/docs](http://localhost:8503/docs) and EOSdash
should be available at [http://localhost:8504](http://localhost:8504).
2025-11-03 17:40:25 +01:00
### 4) Configure EOS (M3)
2025-10-28 02:50:31 +01:00
2025-12-30 22:08:21 +01:00
Use EOSdash at [http://localhost:8504](http://localhost:8504) to configure EOS. In the dashboard,
go to:
` ``bash
Config
` ``
2025-10-28 02:50:31 +01:00
2025-11-03 17:40:25 +01:00
## Installation with Docker (docker-compose) (M4)
### 1) Get the akkudoktoreos source code (M4)
You may use either method M1 or method M2 to get the source code.
### 2) Build and run the container (M4)
` ``{eval-rst}
.. tabs::
.. tab:: Windows
.. code-block:: powershell
docker compose up --build
.. tab:: Linux
.. code-block:: bash
docker compose up --build
` ``
### 3) Verify the Container is Running (M4)
` ``bash
docker ps
docker logs akkudoktoreos
` ``
EOS should now be accessible at [http://localhost:8503/docs](http://localhost:8503/docs) and EOSdash
should be available at [http://localhost:8504](http://localhost:8504).
2025-12-30 22:08:21 +01:00
The configuration file is in ` ${HOME}/.local/share/net.akkudoktor.eos/config/EOS.config.json`.
2025-11-03 17:40:25 +01:00
2025-12-30 22:08:21 +01:00
### 4) Configure EOS (M4)
Use EOSdash at [http://localhost:8504](http://localhost:8504) to configure EOS. In the dashboard,
go to:
` ``bash
Config
` ``
You may edit the configuration file directly at
` ${HOME}/.local/share/net.akkudoktor.eos/config/EOS.config.json`.
## Installation in Home Assistant (M5)
[](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2FAkkudoktor-EOS%2FEOS)
### 1) Add the repository URL (M5)
In Home Assistant, go to:
` ``bash
Settings → Add-ons → Add-on Store → ⋮ (top-right menu) → Repositories
` ``
and enter the URL of this Git repository:
` ``bash
https://github.com/Akkudoktor-EOS/EOS
` ``
### 2) Install the add-on (M5)
After adding the repository, the add-on will appear in the Add-on Store. Click ` Install`.
### 3) Start the add-on (M5)
Once installed, click ` Start` in the add-on panel.
### 4) Access the dashboard (M5)
Click ` Open Web UI` in the add-on panel.
### 5) Configure EOS (M5)
In the dashboard, go to:
` ``bash
Config
` ``
2025-11-03 17:40:25 +01:00
## Helpful Docker Commands
2025-10-28 02:50:31 +01:00
2025-12-30 22:08:21 +01:00
### View logs
2025-10-28 02:50:31 +01:00
` ``bash
docker logs -f akkudoktoreos
` ``
2025-12-30 22:08:21 +01:00
### Stop the container
2025-10-28 02:50:31 +01:00
` ``bash
docker stop akkudoktoreos
` ``
2025-12-30 22:08:21 +01:00
### Start the container
2025-10-28 02:50:31 +01:00
` ``bash
docker start akkudoktoreos
` ``
2025-12-30 22:08:21 +01:00
### Remove the container
2025-10-28 02:50:31 +01:00
` ``bash
docker rm -f akkudoktoreos
` ``
2025-12-30 22:08:21 +01:00
### Update to latest version
2025-10-28 02:50:31 +01:00
` ``bash
docker pull Akkudoktor-EOS/EOS:latest
docker stop akkudoktoreos
docker rm akkudoktoreos
# Then run the container again with the run command
` ``
2025-12-30 22:08:21 +01:00
### Solve docker DNS not working
Switch Docker to use the real resolv.conf, not the stub.
1️⃣ Replace /etc/resolv.conf symlink
` ``bash
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
` ``
This file contains the actual upstream DNS servers (e.g. your Fritz!Box).
2️⃣ Restart Docker
` ``bash
sudo systemctl restart docker
` ``
3️⃣ Verify
` ``bash
docker run --rm busybox nslookup registry-1.docker.io
` ``
You should now see a valid IP address.