Nextcloud AppAPI mit HaRP via Docker

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

luddi

Benutzer
Sehr erfahren
Registriert
05. Sep. 2012
Beiträge
3.328
Reaktionspunkte
649
Punkte
174
Hallo liebe Gemeinde,

seit Nextcloud Version 32 (Hub 25 Autumn) wurde AppAPI eingeführt um Nextcloud mit externen Apps erweitern zu können.
Die Applikation AppAPI ist nach dem Update auf Version 32 standardmäßig aktiviert und führt somit zum folgenden Fehler auf dem Nextcloud Server.

1767879625100.png


Um die AppAPI zu betreiben benötigt man einen Deploy-Deamon der hiermit interagiert um externe Apps installieren zu können.

Zur Einrichtung eines Deploy-Deamon via HaRP habe ich eine ziemlich gut Anleitung im Netz gefunden.
Siehe hier: https://decatec.de/home-server/nextcloud-mit-externen-apps-erweitern-appapi-mit-harp/

Dieser Anleitung bin ich gefolgt und bekomme beim registrieren des Deamons immer die Meldung "Verbindung zum Daemon fehlgeschlagen. Prüfen Sie die Protokolle."

Wenn ich die Konfiguration auf einem Raspberry Pi vornehme kappt die Einrichtung nach der verlinkten Vorgehensweise.

Das einzige was auf der Synology fehlt ist die Konfiguration des vhosts des Apache Servers.
Auf einem standard Unix System findet man die vhost Konfiguration unter /etc/apache2/sites-available/.

Aber wo befindet sich auf dem Synology NAS die Apache vhost config um dies einfügen zu können?
PHP:
<Location /exapps/>
    ProxyPreserveHost On
    ProxyPass http://127.0.0.1:8780/exapps/ nocanon
    ProxyPassReverse http://127.0.0.1:8780/exapps/
    RequestHeader set X-Real-IP %{REMOTE_ADDR}s
    RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s
    RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}
</Location>


Gibt es jemanden der hier bereits Erfahrungen hierzu hat und evtl. unterstützen kann?

Danke und Gruß
 
Auf die Meldung im Admin Panel bin ich auch gestoßen. Ich weiß aber nicht mehr genau, welchen Befehl ich da abgesetzt habe, damit die Meldung weg ist und ich finde es auch nicht mehr leider. Ich denke aber, dass ich die Api einfach deaktiviert habe.
Das mit dem 127.0.0.1 kann nur funktionieren, wenn beide Container im Hostnetz sind. Eine Angabe von Docker-Container-Namen ist leider nicht möglich, so wie ich das gelesen habe. Bzw. hat die API Probleme, wenn Hostnames im Spiel sind. Wenn die Container nicht im Hostnetz sind, müsste man denen dann wohl nach meinen Überlegungen eine statische IP im Bridge-Netz geben. Aber da ich das nicht im Einsatz habe, ist das nur eine Vermutung...
 
@plang.pl Du hast einfach nur die App in Nextcloud deaktiviert... ;)

appapi.png

Das reicht völlig.
 
Ich möchte aber nicht einfach die App AppAPI deaktivieren um die Fehlermeldung loszuwerden sondern ich möchte die AppAPI aktiv nutzen.

Also bei mir läuft Nextcloud nativ auf dem Webserver (kein Docker) und der AppAPI HaRP docker läuft im host mode.

Hier meine Docker compose config:
YAML:
# Run with: docker compose up -d

version: "3.8"

services:
  appapi-harp:
    image: ghcr.io/nextcloud/nextcloud-appapi-harp:release
    container_name: appapi-harp
    hostname: appapi-harp
    restart: unless-stopped
    network_mode: host
    environment:
      - HP_SHARED_KEY=my-secret-password
      - NC_INSTANCE_URL=https://my.domain.tld
      - HP_EXAPPS_ADDRESS=127.0.0.1:8780
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /volume1/docker/certs:/certs

Docker läuft healthy.
Code:
docker ps -a
CONTAINER ID   IMAGE                                             COMMAND                  CREATED       STATUS                 PORTS                                       NAMES
ca5bbb48fd9b   ghcr.io/nextcloud/nextcloud-appapi-harp:release   "start.sh"               4 hours ago   Up 4 hours (healthy)                                               appapi-harp

Und auf dem Port 8780 wird auch gelauscht.
Code:
netstat -ltn | grep 8780
tcp        0      0 127.0.0.1:8780          0.0.0.0:*               LISTEN

Die gleiche Konstellation verwende ich auch dem Raspberry auf dem es ja funktioniert. Das einzige Problem welches ich habe, dass die <Location /exapps/> Section in der vhost Konfiguration eingetragen werden muss. Aber genau hieran scheitere ich weil ich auf dem Synology NAS die Apache vhost config nicht finde.
 
Bei meiner Suche nach dem Problem bin ich auf folgende PHP Fehlermeldung gestoßen.

HTML:
AH01071: Got error 'PHP message: Client error: `GET http://127.0.0.1:8780/exapps/app_api/v1.44/_ping` resulted in a `400 Bad Request` response:\n{message":"client version 1.44 is too new. Maximum supported API version is 1.43"}\n\n'"

Das heißt wohl, dass der docker container "nextcloud-appapi-harp" die Api version 1.44 verwendet jedoch die Api version der verwendeten Docker Installation maximum 1.43 akzeptiert.

Hier der Auszug der Docker Version des Synology NAS:
Code:
Client:
 Version:           24.0.2
 API version:       1.43
 Go version:        go1.20.4
 Git commit:        610b8d0
 Built:             Thu Sep 25 10:08:01 2025
 OS/Arch:           linux/amd64
 Context:           default

Server:
 Engine:
  Version:          24.0.2
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.4
  Git commit:       bd0a34d
  Built:            Thu Sep 25 10:09:08 2025
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.7.1
  GitCommit:        fea6458b8abe502f6228eab2e5a6678fcb5c3fb0
 runc:
  Version:          v1.1.7
  GitCommit:        0320c58
 docker-init:
  Version:          0.19.0
  GitCommit:        ed96d00


Und auf dem Raspeberry auf dem es ohne Probleme funktioniert ist eine neuere Version im Einsatz.
Code:
Client: Docker Engine - Community
 Version:           29.1.3
 API version:       1.52
 Go version:        go1.25.5
 Git commit:        f52814d
 Built:             Fri Dec 12 14:49:15 2025
 OS/Arch:           linux/arm64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          29.1.3
  API version:      1.52 (minimum version 1.44)
  Go version:       go1.25.5
  Git commit:       fbf3ed2
  Built:            Fri Dec 12 14:49:15 2025
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          v2.2.1
  GitCommit:        dea7da592f5d1d2b7755e3a161be07f43fad8f75
 runc:
  Version:          1.3.4
  GitCommit:        v1.3.4-0-gd6d73eb8
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Jetzt die alles entscheidende Frage, wie kann ich die Docker Engine auf dem Synology NAS aktualisieren?
Denn im Paketzentrum ist wohl diese Version die neueste.
1767889849678.png

Wie immer ist Synology weit hinterher... :rolleyes:
 
  • Like
Reaktionen: Crashandy
einfach nur die App in Nextcloud deaktiviert
Ich glaube ja. Aber mit der CLI. Ich hab über Nextcloud aktuell nur Card- & CalDAV abgebildet, daher kenne ich mich da nicht soo gut aus.

Wenn NC nativ läuft und der eine Container im Host Mode, sollte das mit 127.0.0.1 schon funktionieren...

Synology war da tatsächlich noch mal viel weiter hinterher. Die haben glaube erst mit DSM 7 auf Docker 24 aktualisiert.
Ich kenne nur eine Anleitung bezügl. manueller Installation auf Hardware, die von Synology nicht mit Docker ausgestattet werden darf aber es von der Architektur grundsätzlich kann: https://cynarski.eu/docker-on-synlogy-32bit/
Wenn man hinter dem DL-Link aus dem Artikel ein Verzeichnis zurückspringt, findet man auch Downloads für x86: https://download.docker.com/linux/static/stable/x86_64/
Eventuell kommt man damit weiter. Ob das stabil läuft, kann ich nicht beurteilen.
 
Das heißt wohl, dass der docker container "nextcloud-appapi-harp" die Api version 1.44 verwendet jedoch die Api version der verwendeten Docker Installation maximum 1.43 akzeptiert.
Genau so ist es.

Ich habe viele Stunden mit allen möglichen Tests verbracht und am Ende habe ich auch die App in der Nextcloud deaktiviert.

Eine Nextcloud-Instanz läuft bei mir als VM auf dem NAS und dort funktioniert AppAPI auch perfekt, mit erfolgreichem Bereitstellungstest.

Nach wie vor läuft meine produktive Nextcloud-Instanz nativ auf dem NAS und zurzeit mit der PHP Version 8.3.27 nahezu perfekt, eben ohne AppAPI.
 
  • Like
Reaktionen: luddi
Hi @Crashandy danke für die Bestätigung. Auch bei mir läuft meine produktive Nextcloud-Instanz nativ auf dem NAS aktuell mit PHP 8.2.28 und auch nahezu perfekt. Dann werde ich wohl ein Feature Request auf ein Upgrade des Container Manager bei Synology einreichen.
 
  • Like
Reaktionen: Crashandy
aktuell mit PHP 8.2.28
Für Nextcloud Version 32 (Hub 25 Autumn) wird PHP 8.3 empfohlen und Synology hat tatsächlich seit Dezember 2025 PHP 8.3 und PHP 8.4 im Paket-Zentrum verfügbar. Meine Nextcloud ist mit PHP 8.3 definitiv noch etwas schneller geworden.

https://docs.nextcloud.com/server/32/admin_manual/installation/system_requirements.html

https://archive.synology.com/download/Package/PHP8.3/8.3.27-0004

https://archive.synology.com/download/Package/PHP8.4/8.4.14-0003
 
Okay super, danke für den Hinweis. Ich habe mich wohl seit langem nicht um ein PHP Update bemüht. Aber ich denke es ist Zeit zumindest auf PHP 8.3 zu wechseln.
 
Ich habe nun auch wie von Nextcloud für Version 32 (Hub 25 Autumn) empfohlen auf PHP 8.3 aktualisiert. Es scheint auch bei mir nach dem Update bisher alles stabil zu laufen.

Einen Feature request bezüglich Container Manger Update habe ich bei Synology auch bereits eingereicht.
Mal sehen ob sie sich dazu bewegen lassen. Eigentlich ist es an der Zeit die Docker Engine auf den neuesten Stand zu bringen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Tuxnet und Crashandy
  • Like
Reaktionen: luddi und Crashandy
Man sollte vielleicht auch die neuste Docker Version da mit aufnehmen. Das wäre dann 29.1.3.
 

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat