!!Podman und ~NextcloudPi für die Joplin-Notizen-App dank Thomas Bayen

(erstellt am 28.11.2021, Stand: 29.11.2021)

__Vielen Dank an Thomas Bayen__ für die Pionierarbeit der Dokumentation der Docker Alternative "Podman" hier im LUG-Krefeld-Wiki: [Podman]!!

__Übrigens__, Update am 26.12.2022: 
Nextcloud-aufsetzen geht mit Podman laut Ferdinand Thommes jetzt noch einfacher, siehe NextcloudPodmanReloaded.

Ich habe im Sommer 2021 eine Notizen-App für Android gesucht.
Dabei bin ich relativ schnell wegen Datenhoheit und OpenSource bei [Joplin|https://joplinapp.org/] gelandet. (Mehr dazu auch auf [Joplin])
Joplin kann die erfassten Daten im md-Format 
* hübsch aufbereiten
* [intern|https://www.yourhtmlsource.com/text/internallinks.html] mit href-navigieren lassen
* auf- und zu-[klappen|https://discourse.joplinapp.org/t/feature-request-folding-sections-of-text/5752/3]
* Notizen im Filesystem synchronisieren.

Der letzte Punkt hat mir einigen Info-Nachholbedarf aufgezeigt.
Die direkte Ablage der Notizen im Android-Filesystem habe ich in der aktuellen Joplin-App (Version 2.6.3)
nicht ans Rennen gebracht. Das Protokoll sagt: 
{{{
Error: Directory could not be created.
Path: ./Android/data/net.cozic.joplin/files/test
}}} ... also WebDAV!

'' '''Thomas Bayen''' möchte hier anmerken, das er u.a. durch diesen Artikel auch auf [Joplin] gekommen ist, dann das [WebDAV]-Problem aber anders gelöst hat: [WebDav im Container]. Vielleicht ist das als Alternative ja auch einen Blick wert.''

Zur Synchronisation ist (nach meinem Verständnis der Suchmaschinentreffer) am besten [WebDav per Nextcloud|https://www.hosting.de/blog/mit-joplin-notizen-erstellen-und-mit-nextcloud-synchronisieren/]-geeignet.\\
Da ich Google-Drive, ~OneDrive, ~DropBox and the like als externen Datensenken nicht über den Weg traue,
habe ich mein Glück mit einer eigenen ~NextCloud in einem Notebook (ohne ~RaspberryPi) versucht.\\
Dazu kann man sich hier orientieren: 
* https://ownyourbits.com/2017/06/08/nextcloudpi-docker-for-raspberry-pi/ ("docker" durch "podman" ersetzen)
* https://docs.nextcloudpi.com/en/how-to-configure-nextcloudpi/

Mit der Vorarbeit von Thomas im o.g. [Podman]-Artikel war ein Container im Vergleich zur Lebenszeit
einer Schildkröte schnell aufgesetzt (innerhallb einer Woche). Zur Beschleunigung für Euch und zur Umschiffung von
möglichen Stolperfallen, möchte ich hier die wesentlichen Schritte auf Manjaro-Linux (Arch) zusammenfassen.
Die wesentlichen Strategien sind hoffentlich auf Debian oder OSX übertragbar.

1. Kommandozeile: pacman -S podman 

2. rootless-Einstellungen, wie im [Podman]-Artikel von Thomas beschrieben, vornehmen
   D.h.
   
{{{
sudo usermod --add-subuids 10000-75535 [Username]
sudo usermod --add-subgids 10000-75535 [Username]
}}}

oder

{{{
sudo su
echo [Username]:10000:65536 >> /etc/subuid
echo [Username]:10000:65536 >> /etc/subgid
}}}

__Ich fand zudem folgende Info hilfreich:__

https://wiki.archlinux.org/title/Podman -> podman bzw. podman-docker für arch-linux; beachte: Abschnitt "Troubleshooting" mit "No image found". Also:

{{{
/etc/containers/registries.conf.d/00-unqualified-search-registries.conf

unqualified-search-registries = ["docker.io"]
}}} 
und 
{{{
/etc/containers/registries.conf.d/01-registries.conf

[[registry]]
location = "docker.io"
}}}
This is equivalent to the default docker configuration.


3. Container erstellen:
{{{
podman run -d -p 4443:4443 -p 443:443 -p 80:80 -v ncdata:/data --name nextcloudpi ownyourbits/nextcloudpi localhost
}}} 

und 100 weitere Schritte außerhalb und innerhalb ~NextcloudPi (~ToDo: dokumentieren)
Unter Anderem:

Einklinken in die Bash des erzeugten Containers:
{{{
podman exec -it nextcloudpi bash
}}}

ncp-config auf der Kommandozeile im Container aufrufen und zu Trusted-Domains in der config.php hangeln: \\
xyz-pc.fritz.box\\

Persistente Daten liegen im Volume, das beim ersten podman-Aufruf zugewiesen wurde

__Noch etwas__: ich bin ''nicht'' mit __avahi__ und __nss-mdns__ klargekommen. Deshalb die "fritz.box" als lokale Domäne weiter unten.

4. mkcert installieren (Auf dem ~NextcloudPi-Host, nicht im Container):
{{{
sudo pacman -S mkcert
}}}
5. mkcert initialisieren:
{{{
mkcert -install
}}}
6. lokale mkcert-Zertifikate für die IP des Nextcloud-Rechners erstellen, 
__''x''__ und __''y''__ bitte entsprechend füllen:
{{{
mkcert fritz.box "*.fritz.box" localhost 192.168.x.y 127.0.0.1 ::1
}}}
7. WebDAV-URL in Nextcloud-User-Dashboard in der Abteilung "File" bzw. im deutschen Pendant "Dateien" ablesen.\\
Beispiel: 
{{{https://xyz-PC.fritz.box/remote.php/dav/files/ncp}}}

8. Eintragen der unter dem vorherigen Punkt ermittelten ~WebDav-URL in der Joplin-Konfiguration (Symbol:"Zahnrad").\\
8.1 Synchronisationsziel: Nextcloud\\
8.2 Nextcloud-~WebDAV-URL: siehe vorherige Angabe\\
8.3 Nextcloud-Benutzername: ncp\\
(The username/password for [ncp-web|https://github.com/nextcloud/nextcloudpi/wiki/FAQ#what-are-pre-set-userspasswords-on-nextcloudpi] is ncp/ownyourbits)\\
8.4 Nextcloud-Passwort: ownyourbits oder ein im Dashboard o.ä. alternativ generiertes Ungetüm.

9. Bitte im Joplin-Hamburgermenü den Punkt "Synchronisation" anwerfen
Im Erfolgsfall zählt Joplin die Prozente der synchronisierten Notizen hoch und zeigt zum Abschluss 
die vergeudete Zeit an.(Zur Fehlersuche bietet die Joplin-Konfiguration einen Protokollbutton)

10. Die synchronisierten Notizen sind bei mir im Podman-Volume unter folgendem physikalischen  
Dateipfad gelandet. \\
Den Dateinamen habe ich im Nextcloud-Dashboard bei Ansicht der "neuesten" Dateien gefunden:
{{{
find ~|grep 5445.md
./.local/share/containers/storage/volumes/ncdata/_data/nextcloud/data/ncp/files/...5445.md
}}}

[{Tag ServerDienste Cloud EigeneWolke Container}]