Installation von Umbrel 1.1 verfolgen

Bonjour

Contexte : Installation sur un RPI4 avec SSD tournant sous Umbrel OS 1.1 (sorti il y a un mois).
L’intégration est en review ici, mais je voulais tester sur un vrai RPI (et pas en VM).

J’ai récemment restauré une sauvegarde Gladys Plus sur une installation Umbrel toute fraîche (pour tester le comportement sur cet OS).

J’ai l’erreur suivante à la fin de la restauration et j’ai dû lancer le container gladys à la main (tout fonctionne bien depuis).

2024-04-23T15:14:36+0200 <info> gateway.restoreBackup.js:39 (Gateway.restoreBackup) Backup restored. Need reboot now.
2024-04-23T15:14:36+0200 <info> system.shutdown.js:13 (System.shutdown) Database is probably already closed
2024-04-23T15:14:36+0200 <warn> system.shutdown.js:14 (System.shutdown) Error: SQLITE_MISUSE: Database is closed
    at /src/server/node_modules/sequelize/src/dialects/sqlite/connection-manager.js:31:79
    at node:internal/util:441:7
    at new Promise (<anonymous>)
    at node:internal/util:427:12
    at /src/server/node_modules/sequelize/src/dialects/sqlite/connection-manager.js:31:85
    at Array.map (<anonymous>)
    at ConnectionManager._onProcessExit (/src/server/node_modules/sequelize/src/dialects/sqlite/connection-manager.js:31:10)
    at ConnectionManager.close (/src/server/node_modules/sequelize/src/dialects/abstract/connection-manager.js:116:23)
    at Sequelize.close (/src/server/node_modules/sequelize/src/sequelize.js:1292:35)
    at System.shutdown (/src/server/lib/system/system.shutdown.js:11:26)
    at Gateway.restoreBackupEvent (/src/server/lib/gateway/gateway.restoreBackupEvent.js:18:23)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at EventEmitter.<anonymous> (/src/server/utils/functionsWrapper.js:13:7) {
  errno: 21,
  code: 'SQLITE_MISUSE'
}

Ah, c’est peut-être dû à l’option dans le docker-compose

restart: on-failure

Alors j’ai un comportement bizarre. Le container Gladys n’arrive pas à contacter localhost (ce qui pose problème pour contacter MQTT).

Le ping localhost me renvoie ping: bad address 'localhost'

Le ping 127.0.0.1 fonctionne.

J’ai tout vérifié (/etc/hosts, DNS, interface loopback, container en mode network: host). Je sèche

Salut @cicoub13 :slight_smile:

Effectivement, le mécanisme de restauration se base sur le fait que Gladys est relancée automatiquement si elle « s’auto-kill ». Si tu es en restart: on-failure, ça ne marche plus. Il faut être en restart: always !

ça j’avoue que je ne sais pas comment fonctionne Umbrel., il n’y a pas un network spécial umbrel dans leur config Docker, ou autre ?

Ich hatte es geschafft, alles zum Laufen zu bringen und die PR hier gemacht: https://github.com/getumbrel/umbrel-apps/pull/1044

Aber sie stellen viele Fragen zu unseren recht weitreichenden Zugriffsrechten. Ich werde antworten und versuchen zu erklären, warum wir sie benötigen (wie z. B. Home Assistant…).

Cool super @cicoub13 :slight_smile:

Ich habe die Fragen gesehen, tatsächlich ist es schon ziemlich erstaunlich, dass sie diese Fragen stellen, obwohl sie Home Assistant dieselben Berechtigungen geben: umbrel-apps/home-assistant/docker-compose.yml at master · getumbrel/umbrel-apps · GitHub

Lass mich wissen, wenn du Hilfe bei der Beantwortung brauchst

nmfretz (Nathan Fretz) · GitHub scheint mehr Expertise zu haben und versteht einen großen Teil der Parameter.

Ich habe kommentiert und weitere Details zu unseren Anforderungen hinzugefügt.

Ich stehe etwas auf dem Schlauch bei cgroup: host und privileged: true. Könntest du mir den Grund für diese Parameter erklären?

Danke @cicoub13 für die Antworten, ich habe meine Antworten für cgroup und privileged hinzugefügt

Negative Antwort bezüglich der Docker-Daemon-Exposition (zu riskant). Sie schlagen mehrere Lösungen hier vor: Add gladys assistant by cicoub13 · Pull Request #1044 · getumbrel/umbrel-apps · GitHub

Docker-in-Docker erscheint mir interessant (auch für uns), aber das scheint mir komplex und ich frage mich, ob es für Gladys außerhalb von Umbrel sinnvoll ist.

Hallo @cicoub13!

Ich habe die Antwort gesehen, aber für mich funktioniert Docker in Docker nicht und ist sogar sehr wackelig.

Kann ein Container Zigbee2mqtt innerhalb eines anderen Containers auf das System zugreifen (Privileged? USB-Port?)

Soweit ich das verstehe, möchte das Umbrel-Projekt Herr des Hosts bleiben und den Containern nicht das Recht geben, andere Container zu starten, genau das versuchen wir aber zu tun ^^

Wenn ihr Projekt dieses Verhalten nicht akzeptiert, ist es vielleicht besser, dieses Verhalten in diesen Installationen nicht zu ermöglichen, und der Benutzer kann einfach Z2M im Remote-Modus verwenden, genauso wie MQTT…

Aber es muss getestet werden!

Ich frage mich, ob diese Anwendungen (Portainer, Home Assistant) wirklich innerhalb von Umbrel verwendet werden?

Hallo @cicoub13 :slight_smile: Ich schaue mal, was es Neues zu diesem Thema gibt!

Aufgrund ihrer letzten Antwort habe ich es aufgegeben. Ich denke, die Investition von Entwicklerzeit lohnt sich heute nicht.
Was ich nicht verstehe, ist, warum es für HA okay ist und nicht für uns. Nun ja, sie versuchen, es besser zu machen, und deshalb kommen wir etwas zu spät :neutral_face:

Und wenn wir einfach den „Container-Start“-Teil aufgeben? Da wir uns jetzt mit einem bestehenden Zigbee2mqtt-Container verbinden können, ist das gut :slight_smile:

Da Gladys weiß, wann der Docker-Dämon nicht verfügbar ist, gibt es normalerweise keine Änderungen im Produkt?

Es ist nur eine einzige Zeile in der Umbrel-PR zu ändern