feature/homarr #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/homarr"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ansible Playbook for basic installation of the homarr board with a home board
To Dos:
feature/homarrto WIP: feature/homarrWIP: feature/homarrto feature/homarrSchon mal ein guter Start! Braucht aber noch ein paar Changes @Tobias-Wuest
@ -0,0 +11,4 @@homarr_service_name: homarrhomarr_docker_compose_dir: "{{ docker_compose_base_dir }}/{{ homarr_service_name }}"homarr_docker_volume_dir: "{{ docker_volume_base_dir }}/{{ homarr_service_name }}"homarr_appdata_dir: "{{ homarr_docker_volume_dir }}/{{ homarr_service_name }}/appdata"Nit: Der wird nur einmalig verwendet, brauchen wir eigentlich nicht abstrahieren
angepasst und ist jetzt fix homarr drinn
@ -0,0 +12,4 @@homarr_docker_compose_dir: "{{ docker_compose_base_dir }}/{{ homarr_service_name }}"homarr_docker_volume_dir: "{{ docker_volume_base_dir }}/{{ homarr_service_name }}"homarr_appdata_dir: "{{ homarr_docker_volume_dir }}/{{ homarr_service_name }}/appdata"homarr_db_dir: "{{ homarr_appdata_dir }}/db/db.sqlite"Angeschrieben mit dir, aber verweisst auf eine Datei
variable auf homarr_db angepasst
@ -0,0 +17,4 @@# Service configurationhomarr_domain: "homarr.local.test"homarr_image: "ghcr.io/homarr-labs/homarr:latest"homarr_secret_encryption_key: "4fc2f54f54be3f4439b728da81b743fb0ee6317fd1a24f4096611f68019fa5a7"Könnte man hier evt ein value nehmen, bei dem es deutlich ist das es ein placeholder ist? Oder wird hier eine Validation drauf ausgeführt?
entsprechender kommentar ist drinn
@ -0,0 +25,4 @@homarr_base_url: "https://home.local.test"# OIDC Konfigurationoidc_issuer: "https://auth.digitalboard.ch/realms/Digitalboard"Diese Vars sollten genau wie die anderen auch mit homarr geprefixed werden. Dann ist später bei einer Überschreibung im Projekt deutlich wo es herkommt.
ist aktuell als lehre env drinn
@ -0,0 +10,4 @@ansible.builtin.package:name:- sqlite3- python3-dockerpython3-docker braucht es eigentlich nicht nur für diese Rolle -> Sollte in die base Rolle
@ -0,0 +62,4 @@timeout: 60when: not db_exists.stat.exists- name: Wait for database schema to be initializedda kannst du ansible until verwenden, anstatt ein loop. Macht es etwas lesbarer.
https://docs.ansible.com/projects/ansible/latest/playbook_guide/playbooks_loops.html#retrying-a-task-until-a-condition-is-met
bsp:
angepasst
@ -0,0 +77,4 @@changed_when: falsewhen: not db_exists.stat.exists- name: Ensure python3-bcrypt is installedDas installierst du in Zeile 14 auch bereits, sollte aber eigentlich in die base-role
die task zum check von bcypt ist raus
@ -0,0 +83,4 @@state: present- name: Generate bcrypt hash for admin passwordansible.builtin.shell: |Brauchst hier nicht auf python/shell aus zu weichen, ansible kann das direkt über Filter: https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/password_hash_filter.html. bsp:
funktioniert aufgrund einer inkompabilität von passlib 1.7.4 und bcript 5.0 nicht. hab die task noch etwas aktualisiert.
@ -0,0 +101,4 @@# =====================================================================- name: Check if onboarding is already completedansible.builtin.shell: |Nit: hier würde ansible.builtin.command eigentlich ausreichen, da 1 binary (spawnt keine shell(/bin/sh) und führt es dann aus, sondern geht direkt aufs binary).
ersetzt durch:
ansible.builtin.command:
cmd: sqlite3 "{{ homarr_db }}" "SELECT id FROM user WHERE id='user-local-admin';"
register: admin_exists
changed_when: false
failed_when: false
@ -0,0 +111,4 @@ansible.builtin.shell: |sqlite3 "{{ homarr_db_dir }}" << 'SEEDSQL'-- SERVER SETTINGSINSERT OR REPLACE INTO serverSetting (setting_key, value)SQL Skript in eine template Datei auslagern. Macht es massiv lesbarer.
bsp:
@ -0,0 +235,4 @@('board-default', 'group-credentials-admin', 'full-access');-- =====================================================================-- APPSApps sollten wir konfigurierbar/überschreibbar machen über vars im Projekt
ist über die defaults konfigurierbar
@ -0,0 +245,4 @@'Nextcloud','Cloud Storage & Collaboration','https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/nextcloud.png','https://cloud.digitalboard.ch'bsp wieso es konfigurierbar sein sollte. Das stimmt bereits bei den Demo-Envs nicht mehr
ist über die defaults konfigurierbar in der app sektion
@ -0,0 +324,4 @@# =====================================================================- name: Restart Homarr to apply database changesansible.builtin.shell:Das kann direkt über das docker modul gemacht werden. Noch schöner wäre ein hook https://docs.ansible.com/projects/ansible/latest/playbook_guide/playbooks_handlers.html.
Bsp https://git.digitalboard.ch/Digitalboard/digitalboard.core/src/branch/main/roles/collabora/handlers/main.yml +
notify: restart collaboraAkte
angepasst wie vorgeschalgen
@ -0,0 +330,4 @@when: seed_result is changed- name: Wait for Homarr to be readyansible.builtin.shell:direkt aufs docker compose module gehen, anstatt shell
entsprechend angepasst.
@ -0,0 +339,4 @@until: homarr_ready.rc == 0changed_when: false- name: Display completion messageDie Debugs und msgs würde ich entfernen. PW-s ausgeben ist nicht so cool, da sie hier auch ausgegeben werden, wenn sie über bspw vault übergeben werden. Sollten auch, wenn möglich, alles auf EN umsetzen
@ -0,0 +383,4 @@Nächste Schritte:1. Stelle sicher, dass in Keycloak die Gruppe "{{ oidc_admin_group }}" existiert2. Füge deinen User zur Gruppe "{{ oidc_admin_group }}" hinzuFunktioniert das so bei Homarr 🤔?
lol, da hab ich wohl noch comments drinn gehabt die so nicht rein sollten... ist raus
@ -0,0 +17,4 @@NEXTAUTH_URL: "{{ homarr_base_url }}"SECRET_ENCRYPTION_KEY: "{{ homarr_secret_encryption_key }}"# Auth: Credentials + OIDCAUTH_PROVIDERS: "credentials,oidc"Sollten wir konfigurierbar machen, evt wollen nicht alle Anwender OIDC
entfernt
422b196831to23ea8dafc9