---
title: dkl-local-server
description: Dkl-local-server est le nom du service HTTP en charge de la génération des images et couches (*layers*) systèmes. Il a besoin d'un fichier *config.yaml* généré antérieurement par [dir2config]({{< ref "cli/dir2config" >}}).
---

## Direktil-local-server

Dkl-local-server est le nom du service HTTP en charge de la génération des images et couches (*layers*) systèmes. Il a besoin d'un fichier *config.yaml* généré antérieurement par [dir2config]({{< ref "cli/dir2config" >}}).

Les sources peuvent être trouvées sur [le repository git de Direktil](https://novit.tech/direktil/local-server).

## Build

La dernière version de dkl-local-server peut être compilée facilement grâce à un compilateur **go**.

```
git clone git@novit.tech:direktil/local-server.git
cd local-server/cmd/dkl-local-server
go build
```

## Usage

```
./dkl-local-server
```

Les paramètres par défaut importants impliquent que :
- **/var/lib/direktil** est le dossier data, c'est à dire là où doit se trouver le fichier *config.yaml*
- Le port d'écoute par défaut est **7606**

Ils peuvent être changés via les arguments en ligne de commande.

### Docker

Docker peut être utilisé pour démarrer un dkl-local-server sans avoir à le compiler soi-même. Voici une ligne de commande utilisant le dossier courant comme dossier de configuration (où doit se trouver le fichier *config.yaml*).

{{< highlight "bash" >}}
docker run --rm --net=host --name dls \
        -v /etc/ssl:/etc/ssl:ro \
        -v /etc/ca-certificates:/etc/ca-certificates:ro \
        -v .:/var/lib/direktil \
        -v /dev:/dev \
        --privileged \
        -e http_proxy="$http_proxy" \
        -e https_proxy="$https_proxy" \
        -e HTTP_PROXY="$HTTP_PROXY" \
        -e HTTPS_PROXY="$HTTPS_PROXY" \
        novit.tech/direktil/local-server:latest
{{< / highlight >}}

### Secret-data

Dkl-local-server maintient un fichier **secret-data.json** qui sera créé dans le dossier data (par défaut **/var/lib/direktil**) s'il n'est pas trouvé durant un lancement, et qui contient toutes les données sensibles d'une configuration, à savoir :
- Certificats CA de clusters et leurs clés privées
- Certificats TLS clients/serveurs et leurs clés privées
- Clés de ServiceAccount
- Tokens (admin, bootstrap, keepalived, etc...)

{{% notice warning %}}
Ce fichier doit, dans l'idéal, être sauvegardé régulièrement et de façon securisée. Sa perte impliquerait la création de nouveaux certificats CA ce qui invaliderait toutes les connexions TLS déjà en place sur d'éventuelles machines en production.
{{% /notice %}}
