diff --git a/LICENSE b/LICENSES/AGPL-3.0-or-later.txt
similarity index 100%
rename from LICENSE
rename to LICENSES/AGPL-3.0-or-later.txt
diff --git a/README.md b/README.md
index 9a6e680..487ceff 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,21 @@
-# ki-ansible
+
+
+# Kompetenzinventar ⚒ Ansible Rolle
+
+## Variablen:
+
+| Name | Beschreibung | Beispiel |
+| --- | --- | --- |
+| `ki_frontend_image` | KI Frontend Image | `registry.wtf-eg.net/ki-frontend:23` |
+| `ki_frontend_uri` | URI zum Frontend | `https://ki-wtf-eg.de/` |
+| `ki_frontend_port` | Docker-Port für das Frontend | `13337` |
+| `ki_backend_image` | KI Backend Image | `registry.wtf-eg.net/ki-backend:42` |
+| `ki_backend_uri` | URI zum Backend | `https://ki-wtf-eg.de/api` |
+| `ki_backend_port` | Docker-Port für das Backend | `13338` |
+| `ki_db_image` | Datenbank-Image | `mariadb:10.6.3` |
+| `ki_db_root_password` | KI DB Root Passwort | |
+| `ki_db_password` | KI DB Anwendungspasswort | |
diff --git a/tasks/main.yml b/tasks/main.yml
new file mode 100644
index 0000000..6ad5645
--- /dev/null
+++ b/tasks/main.yml
@@ -0,0 +1,76 @@
+# SPDX-FileCopyrightText: 2021 WTF Kooperative eG
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+---
+- name: be sure the ki network exists
+ community.general.docker_network:
+ name: ki
+
+- name: "be sure the {{ item }} volume exists"
+ docker_volume:
+ name: "{{ item }}"
+ with_items:
+ - ki_data
+ - ki_db
+
+- name: be sure the ki config directory exists
+ become: true
+ file:
+ path: /etc/ki
+ state: directory
+ owner: root
+ group: root
+ mode: "0755"
+
+- name: be sure the ki-frontend config file is in place
+ become: true
+ template:
+ src: frontend.js
+ dest: /etc/ki/frontend.js
+ owner: root
+ group: root
+ mode: "0655"
+
+- name: be sure the ki_database container is running
+ community.general.docker_container:
+ name: ki_db
+ image: "{{ ki_db_image }}"
+ restart_policy: unless-stopped
+ env:
+ MYSQL_ROOT_PASSWORD: "{{ ki_db_root_password }}"
+ MYSQL_DATABASE: ki
+ MYSQL_USER: ki
+ MYSQL_PASSWORD: "{{ ki_db_password }}"
+ volumes:
+ - ki_db:/var/lib/mysql/
+ networks:
+ - name: ki
+
+- name: be sure the ki_backend container is running
+ community.general.docker_container:
+ name: ki_backend
+ image: "{{ ki_backend_image }}"
+ restart_policy: unless-stopped
+ env:
+ SQLALCHEMY_DATABASE_URI: "mariadb+pymysql://ki:{{ ki_db_password }}@ki_db:3306/ki"
+ FLASK_ENV: "development"
+ KI_LOGLEVEL: "10"
+ KI_AUTH: "file"
+ CORS_ORIGINS: "{{ ki_frontend_uri }}"
+ ports:
+ - "{{ ki_backend_port }}:5000"
+ volumes:
+ - ki_data:/app/data/
+ networks:
+ - name: ki
+
+- name: be sure the ki_frontend container is running
+ community.general.docker_container:
+ name: ki_frontend
+ image: "{{ ki_frontend_image }}"
+ restart_policy: unless-stopped
+ ports:
+ - "{{ ki_frontend_port }}:80"
+ volumes:
+ - /etc/ki/frontend.js:/usr/share/nginx/html/config.js
diff --git a/templates/frontend.js b/templates/frontend.js
new file mode 100644
index 0000000..44a9133
--- /dev/null
+++ b/templates/frontend.js
@@ -0,0 +1,7 @@
+// SPDX-FileCopyrightText: 2021 WTF Kooperative eG
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
+window.ki = {
+ apiUrl: '{{ ki_backend_uri }}'
+}