Handbuch — eigener Cloud-Speicher für AmigaOS 3.x und PC · Stand 08.11.2026 (Programmversion 0.10)
Dieses Handbuch gehört zu AmiCloud 0.10. Der schnelle Einstieg steht in der Schritt-für-Schritt-Anleitung.
AmiCloud verbindet den Amiga über HTTPS mit einem eigenen AmiCloud-Server.
Die Dateien darauf lassen sich per Kommandozeile, in einer interaktiven
Shell, mit einem Dateimanager oder als ganz normales Laufwerk
AMICLOUD: benutzen. Kommandozeilenprogramme und Dateimanager gibt
es auch für macOS, Linux und Windows. Dieses Handbuch entspricht inhaltlich
dem AmigaGuide-Handbuch AmiCloud.guide.
AmiCloud ist ein selbst betriebener Cloud-Speicher, der für den Amiga
gemacht ist. Ein kleiner PHP-Server auf einem Linux-Rechner hält die
Dateien, jeder Benutzer hat seinen eigenen Bereich. Alle Programme sprechen
den Server ausschließlich über HTTPS an; auf dem Amiga übernehmen das
bsdsocket.library und AmiSSL 5, auf dem PC libcurl.
┌────────────────────────┐ HTTPS ┌──────────────────────────────┐ │ amicloud, -shell, │◄─────────►│ Apache + PHP │ │ amicloud-sync, Commander │ │ api.php REST-API │ │ (Amiga und PC) │ │ web.php Weboberfläche │ └────────────────────────┘ │ MariaDB (Benutzer, Metadaten)│ ┌────────────────────────┐ HTTPS │ Speicher/<benutzer>/ │ │ AMICLOUD:-Handler (Amiga) │◄─────────►│ │ └────────────────────────┘ └──────────────────────────────┘
| Programm | Plattform | Zweck |
|---|---|---|
amicloud | Amiga + PC | Kommandozeilen-Client, ein Befehl je Aufruf |
amicloud-shell | Amiga + PC | interaktive Sitzung mit cd, ls, get, put … |
amicloud-sync | Amiga + PC | einmaliger Abgleich lokaler Ordner ↔ Cloud |
amicloud-commander | Amiga (MUI) + PC (Qt 6) | Dateimanager mit zwei Panels |
AmiCloudPrefs | Amiga | Einstellungs-Editor für amicloud.cfg |
amicloud-handler, amicloud-worker | Amiga | Laufwerk AMICLOUD: (Handler und Netzwerk-Prozess) |
Der Server merkt sich neben dem Dateiinhalt auch Amiga-Eigenschaften:
Protection-Bits, Dateikommentare und das Änderungsdatum. Über
AMICLOUD: funktionieren deshalb auch Protect,
FileNote und SetDate.
| Was | Wofür |
|---|---|
| AmigaOS 3.x, 68020 oder besser | alle Amiga-Programme |
TCP/IP-Stack mit bsdsocket.library (Version 4 oder neuer), z. B. Roadshow, AmiTCP, Miami | alle Programme außer AmiCloudPrefs |
AmiSSL 5 (amisslmaster.library) mit den CA-Zertifikaten der AmiSSL-Installation | alle Programme außer AmiCloudPrefs |
MUI 3.8 oder neuer (muimaster.library ab Version 19) | nur amicloud-commander |
| ein erreichbarer AmiCloud-Server | alle Programme außer AmiCloudPrefs |
Stack muss nicht eingestellt werden: die Programme fordern beim Start selbst 64 KB an, der Handler erhält 16 KB über seinen DOSDriver, der Worker 64 KB beim Start durch den Handler.
Speicher: Der AMICLOUD:-Handler hält eine
geöffnete Datei vollständig im Arbeitsspeicher. Für sehr große Dateien
lieber amicloud get/put benutzen, die direkt von
und auf die Platte übertragen.
Die Installationsschublade AmiCloud (zum Beispiel aus
AmiCloud.lha) enthält:


AmiCloud/ Install-AmiCloud Installationsskript (Commodore-Installer) Install-AmiCloud.shell dasselbe als Shell-Skript Uninstall-AmiCloud Deinstallationsskript ReadMe Kurzbeschreibung LICENSE GNU GPL Version 3 THIRD-PARTY-NOTICES Lizenz der Fremdkomponente Parson (MIT) C/ alle Programme Docs/AmiCloud.guide Handbuch (AmigaGuide) Examples/ amicloud.cfg.example, AMICLOUD.mountlist Storage/DOSDrivers/AMICLOUD DOSDriver für AMICLOUD:
Alle Teile haben Workbench-Icons. Zum Installieren in der Schublade das
Icon Install-AmiCloud doppelt anklicken. Es startet den
Commodore-Installer (bei AmigaOS 3.2 in SYS:System, bei
älteren Systemen von der Install-Diskette nach C: kopieren).
Ohne Installer gibt es dasselbe als Shell-Skript:
CD AmiCloud Execute Install-AmiCloud.shell
Wer den Installer aus der Shell startet, wechselt vorher mit CD in die Schublade: Das Skript sucht seine Dateien relativ zum aktuellen Verzeichnis. Von einem anderen Verzeichnis aus bricht es mit einem Hinweis ab.
Aktualisieren: Eine neuere Version installiert man genauso –
Archiv auspacken, Installer erneut starten. Er vergleicht bei jedem Programm
die installierte Version mit der im Archiv. Als Einsteiger oder Geübter
Benutzer ersetzt er gleiche und ältere Versionen; eine neuere
installierte Version bleibt stehen und wird am Ende genannt. Im
Expertenmodus zeigt er bei jedem schon installierten Programm beide Versionen
und fragt. Vorhandene Icons (mit eigenen Tooltypes und Positionen) bleiben
erhalten. Die Shell-Variante fragt nur nach, wenn ein installiertes Programm
neuer ist als das im Archiv. Ist AMICLOUD: schon gemountet, arbeitet es bis zum
nächsten Neustart mit der alten Version weiter.
Das Skript fragt, welche Teile installiert werden sollen (im Installer per Auswahlliste, im Shell-Skript mit y oder n):
C:amicloud-commander nach SYS:ToolsAmiCloudPrefs nach SYS:PrefsAMICLOUD:-Handler nach L: und DEVS:DOSDriversDanach legt es ENVARC:amicloud.cfg und
ENV:amicloud.cfg aus der Beispieldatei an – aber nur, wenn es
sie noch nicht gibt. Eine vorhandene Konfiguration und ein vorhandener
DOSDriver DEVS:DOSDrivers/AMICLOUD werden nie überschrieben.
Anschließend bietet das Skript an, AmiCloudPrefs zu starten (dort Server,
Benutzer und Passwort eintragen und Speichern wählen) und
AMICLOUD: sofort zu mounten. Ist HELP: zugewiesen,
kopiert es das Handbuch nach HELP:AmiCloud.guide.
amicloud list / Dir AMICLOUD:
Für die Programme werden keine Icons mitgeliefert. Wer AmiCloudPrefs oder den Commander von der Workbench starten möchte, legt sich ein Icon an.
| Datei aus der Schublade | Ziel |
|---|---|
C/amicloud, C/amicloud-shell, C/amicloud-sync | C: |
C/amicloud-commander | SYS:Tools/ (oder beliebig) |
C/AmiCloudPrefs | SYS:Prefs/ |
C/amicloud-handler | L: (steht so im DOSDriver) |
C/amicloud-worker | L: – Name und Ort sind fest, der Handler startet ihn von dort |
Storage/DOSDrivers/AMICLOUD | DEVS:DOSDrivers/ |
Examples/amicloud.cfg.example | ENVARC:amicloud.cfg und ENV:amicloud.cfg (nur, wenn noch keine existiert) |
Docs/AmiCloud.guide | HELP: (oder beliebig) |
Copy C/amicloud C/amicloud-shell C/amicloud-sync C: Copy C/amicloud-commander SYS:Tools/ Copy C/AmiCloudPrefs SYS:Prefs/ Copy C/amicloud-handler C/amicloud-worker L: Copy Storage/DOSDrivers/AMICLOUD DEVS:DOSDrivers/ Copy Examples/amicloud.cfg.example ENVARC:amicloud.cfg ; nur ohne vorhandene Copy ENVARC:amicloud.cfg ENV:amicloud.cfg ; Konfiguration
Für den PC gibt es amicloud, amicloud-shell,
amicloud-sync und den Dateimanager amicloud-commander
(Qt 6). Sie werden aus den Quellen gebaut (Kapitel
16) und mit make install nach /usr/local/bin
installiert (PREFIX/DESTDIR werden unterstützt),
oder von Hand aus bin/pc/ kopiert.
Konfiguration: dieselben Schlüssel wie auf dem Amiga
(Kapitel 7), die Datei heißt
~/.amicloudrc (Windows-Builds ohne MSYS-Umgebung:
amicloud.cfg im aktuellen Verzeichnis). Der Qt-Commander liest
~/.amicloudrc (Windows ohne HOME:
%USERPROFILE%\.amicloudrc) und fragt fehlende Angaben in einem
Verbindungsdialog ab, speichert sie aber nicht.
cp config-examples/amicloud.cfg.example ~/.amicloudrc chmod 600 ~/.amicloudrc amicloud list /
Der Server liegt dem Archiv als Schublade Server bei und läuft auf
Linux mit Apache 2.4, PHP 7.4 oder neuer (Erweiterungen
pdo_mysql, fileinfo und mbstring, für
ZIP-Downloads zip) und MariaDB/MySQL. HTTPS
ist Pflicht: die API lehnt Klartext-HTTP mit 403 ab. Die vollständige
Anleitung mit allen Befehlen steht in INSTALL.md im Server-Paket; hier
die Kurzfassung für amicloud.example.com:
DocumentRoot /var/www/amicloud
und AllowOverride All anlegen. Der Server gehört an die Wurzel
des Hostnamens, weil web.php sich mit /web.php
verlinkt.sudo certbot --apache -d amicloud.example.comsudo cp -r server/. /var/www/amicloud/ – mit
Punkt, damit die .htaccess-Dateien mitkommen. Speicherverzeichnis
/var/amicloud-storage außerhalb des Web-Verzeichnisses
anlegen, beides dem Apache-Benutzer geben.config.php aus config.php.example
kopieren und ausfüllen (Tabelle unten).sudo mysql < /var/www/amicloud/sql/schema.sql,
dann einen DB-Benutzer mit SELECT, INSERT, UPDATE, DELETE auf
amicloud.* anlegen. sql/migrate_001.sql bis
migrate_004.sql sind nur für ältere Installationen.cd /var/www/amicloud sudo -u apache php bin/amicloud-admin.php user:add --admin bobWeitere Benutzer legt der Administrator in der Weboberfläche an.
curl -u bob:geheim "https://amicloud.example.com/api.php?action=status"
AC_SERVER=https://amicloud.example.com AC_USER=bob AC_PASS=geheim \
sh scripts/test_api.sh
Weboberfläche: https://amicloud.example.com/web.phpKonstante in config.php | Bedeutung |
|---|---|
AMICLOUD_TIMEZONE | Zeitzone aller Zeitangaben der API (bewusst nicht UTC, Standard Europe/Berlin); sollte zu gmt_offset/dst der Amiga-Clients passen |
DB_HOST, DB_NAME, DB_USER, DB_PASS | Datenbankzugang |
STORAGE_PATH | absoluter Pfad des Speicherverzeichnisses, außerhalb des Web-Verzeichnisses; je Benutzer entsteht automatisch ein Unterordner |
MAX_UPLOAD | größte Datei in Bytes; post_max_size (und memory_limit) in der php.ini passend wählen |
AMICLOUD_ALLOW_HTTP | erlaubt Klartext-HTTP – nur für einen lokalen Test mit php -S, nie in Produktion |
CGIPassAuth On
im <Directory>-Block.Unter https://amicloud.example.com/web.php bedient sich die
Cloud im Browser ähnlich wie ownCloud:





Statt des Kontopassworts gehört in amicloud.cfg am besten ein
eigenes App-Passwort je Gerät (Persönliche
Einstellungen → Geräte & App-Passwörter). Es hat die Form
xxxxx-xxxxx-xxxxx-xxxxx-xxxxx, wird nur einmal angezeigt (mit
fertigen Zeilen für amicloud.cfg) und lässt sich einzeln
widerrufen, wenn ein Gerät verloren geht.

Alle AmiCloud-Programme lesen dieselbe Datei. Jede Zeile hat die Form
schluessel=wert, Zeilen mit # am Anfang sind
Kommentare.
server=https://amicloud.example.com user=bob pass=geheim #basepath=/ #verify_ssl=1 #debug=T:amicloud.log #gmt_offset=60 #dst=0 #timeout=120 #cache_ttl=30
| Schlüssel | Standard | Bedeutung |
|---|---|---|
server | – (Pflicht) | Basis-URL des Servers, ohne /api.php |
user / username | – (Pflicht) | Benutzername |
pass / password | – (Pflicht) | Passwort (steht im Klartext in der Datei) – am besten ein App-Passwort |
basepath | / | Startverzeichnis auf dem Server; Pfade ohne führenden / beziehen sich darauf |
verify_ssl | 1 | 1 = Serverzertifikat prüfen, 0 = nicht prüfen (nur zum Testen) |
debug | leer | nur AMICLOUD:-Handler (amicloud-worker): Ziel für ein ausführliches HTTP/TLS-Protokoll, z. B. T:amicloud.log oder CON:0/0/640/200/AmiCloud Debug/CLOSE |
gmt_offset | 0 | nur Amiga: Abstand der Systemuhr zu UTC in Minuten (MEZ = 60) |
dst | 0 | nur Amiga: 1 = Sommerzeit, addiert 60 Minuten |
timeout | 120 | Netz-Timeout in Sekunden: so lange darf eine Verbindung ganz ohne Datenfluss bleiben, bevor sie als abgebrochen gilt. Die Dauer einer Übertragung ist nicht begrenzt – eine große Datei über ein Modem läuft, solange Daten fließen. |
cache_ttl | 30 | nur AMICLOUD:-Handler: wie viele Sekunden ein Verzeichnisinhalt zwischengespeichert wird; über ein Modem lohnen 120 bis 300 |
charset | (System) | nur Amiga: Zeichensatz der Dateinamen, z. B. ISO-8859-2 oder AmigaPL; leer = Zeichensatz des Systems |
Umlaute in Dateinamen (ab 0.3): Der Server speichert Namen in
UTF-8, der Amiga in seinem eigenen Zeichensatz. Alle Programme und der
AMICLOUD:-Handler wandeln um, über die codesets.library (ab
Version 6, Aminet util/libs/codesets). Fehlt sie, gilt ISO-8859-1.
Zeichen, die es im lokalen Zeichensatz nicht gibt (Emoji, chinesische Schrift),
erscheinen als _; die Datei bleibt unter diesem Namen erreichbar, und der
Abgleich ordnet sie wieder richtig zu.
Gleiche Namen bis auf Groß-/Kleinschreibung: Auf dem Server
können abc und ABC (auch Äpfel und
äpfel) nebeneinander liegen, auf dem Amiga wären sie eine Datei. Der
Handler zeigt dann die erste (nach Zeichencode) unter ihrem Namen, die anderen als
abc_2, abc_3 usw., vor der Endung (x_2.info);
ebenso zwei Namen, die beide als _ erscheinen würden. Unter diesen
Namen lassen sie sich lesen, schreiben, umbenennen und löschen. Der Abgleich,
get -r und das Kopieren im Commander (auch unter macOS und Windows)
holen solche Namen nicht, sondern melden sie.
gmt_offset und dst werden von
amicloud-shell und vom AMICLOUD:-Handler ausgewertet.
Die Amiga-Uhr kennt keine Zeitzone; ohne passende Werte stimmen die
Datumsangaben von Dateien nicht mit dem Server überein. Auf dem PC werden
beide Werte ignoriert.
| Programm | Gesucht wird (erste gefundene Datei gilt) |
|---|---|
amicloud, amicloud-shell, amicloud-sync (Amiga) | -c <datei>, sonst ENV:amicloud.cfg, sonst amicloud.cfg im aktuellen Verzeichnis |
amicloud, amicloud-shell, amicloud-sync (PC) | -c <datei>, sonst ~/.amicloudrc (Windows ohne MSYS: amicloud.cfg im aktuellen Verzeichnis) |
amicloud-commander (MUI) | ENV:amicloud.cfg, sonst amicloud.cfg im aktuellen Verzeichnis |
amicloud-commander (Qt) | ~/.amicloudrc, fehlende Angaben per Dialog |
amicloud-worker (AMICLOUD:) | nur ENV:amicloud.cfg, einmal beim Start |
| AmiCloudPrefs | ENV:amicloud.cfg, sonst ENVARC:amicloud.cfg |
ENV: ist nach einem Neustart leer; damit die Einstellungen
bleiben, gehört die Datei auch nach ENVARC: – AmiCloudPrefs
erledigt das mit Speichern. Kommandozeilenoptionen
(-s, -u, -p, -d,
-k) gehen den Werten aus der Datei vor.
Aufruf: SYS:Prefs/AmiCloudPrefs. Ein GadTools-Fenster mit
den Feldern Server, Benutzer, Passwort, Basis-Pfad, Zertifikat prüfen,
Debug-Ziel, GMT-Offset (Min) und Sommerzeit – also allen Schlüsseln aus
Kapitel 7.

| Knopf | Wirkung |
|---|---|
| Speichern | schreibt ENVARC:amicloud.cfg und ENV:amicloud.cfg (gilt sofort und dauerhaft) |
| Benutzen | schreibt nur ENV:amicloud.cfg (gilt bis zum Neustart) |
| Abbrechen | schreibt nichts |
Unterscheiden sich ENV: und ENVARC:, zeigt die
Statuszeile einen Hinweis; angezeigt werden dann die Werte aus
ENV:. Der AMICLOUD:-Handler liest die Datei nur einmal
beim Start – geänderte Einstellungen wirken dort erst nach einem
Neustart.
amicloud [Optionen] <Befehl> [Argumente]
| Option | Bedeutung |
|---|---|
-s <url> | Server-URL |
-u <name> | Benutzername |
-p <pass> | Passwort |
-d <pfad> | Basis-Pfad auf dem Server (Standard /) |
-c <datei> | andere Konfigurationsdatei |
-k | Zertifikat nicht prüfen (nur zum Testen) |
-v | ausführliches HTTP-Protokoll nach stderr (nur Amiga) |
--help | Kurzhilfe |
| Befehl | Bedeutung |
|---|---|
list [pfad] | Verzeichnis auflisten |
get [-f] <remote> [lokal] | Datei herunterladen; ohne lokalen Namen unter ihrem Namen ins aktuelle Verzeichnis |
put [-f] <lokal> [remote] | Datei hochladen; ohne Zielangabe unter ihrem Namen in den Basis-Pfad |
del <remote> | Datei oder leeres Verzeichnis löschen |
info <remote> | Größe, Datum, MD5 usw. anzeigen |
mkdir <pfad> | Verzeichnis anlegen |
rename <alt> <neu> | umbenennen oder verschieben |
search <muster> [pfad] (auch find) | rekursiv nach Namen suchen; ein Treffer je Zeile, Verzeichnisse mit /; Standard-Bereich ist der Basis-Pfad; höchstens 2000 Treffer |
quota (auch df) | Konto und belegten Speicher anzeigen |
version | Version anzeigen (ohne Server) |
Remote-Pfade mit führendem / sind absolut, alle anderen
beziehen sich auf den Basis-Pfad. Die MD5-Prüfsumme wird bei
get und put während der Übertragung geprüft.
Suchmuster: *, ? und die AmigaDOS-Form
#?. Rückgabewert: 0 bei Erfolg.
amicloud list / amicloud put S:Startup-Sequence /backup/Startup-Sequence amicloud get /backup/Startup-Sequence RAM:ss amicloud mkdir /archiv amicloud rename /backup/Startup-Sequence /archiv/ss-alt amicloud info /archiv/ss-alt amicloud search '#?.txt' / amicloud -s https://amicloud.example.com -u bob -p geheim list
put auf dem Server, bei
get lokal), fragen beide nach
('/bericht.txt' already exists on the server. Overwrite? [j/N]);
nur y überschreibt. Mit -f (auch
--force oder FORCE direkt nach
get/put) wird ohne Frage überschrieben. Ohne
Eingabe (z. B. in Skripten) wird nichts überschrieben und
amicloud endet mit Rückgabewert 1 – in Skripten also
-f verwenden. put fragt dazu den Server einmal
zusätzlich ab; ist das nicht möglich (Netz- oder Serverfehler), wird nichts
übertragen. Ist das Ziel auf dem Server ein Verzeichnis, bricht
put ab: den vollständigen Zielpfad samt Dateinamen angeben.Zielname: Ohne Zielangabe verwendet put den Teil hinter dem
letzten / oder : – aus DH0:bericht.txt
wird /bericht.txt, aus DH0:texte/bericht.txt
ebenfalls. Nur ein Pfad ohne Dateinamen (z. B. DH0:) wird
abgelehnt.
amicloud-shell [Optionen] – Optionen wie bei
amicloud (-s -u -p -d -c -k -v --help). Nach dem
Start zeigt die Shell Server, Serverversion, Benutzer sowie Remote- und
lokales Verzeichnis und wartet auf Befehle. Mit Cursor hoch/runter lassen
sich frühere Eingaben der Sitzung wiederholen.

| Befehl | Bedeutung |
|---|---|
help | Übersicht |
pwd / lpwd | Remote- / lokales Verzeichnis zeigen |
cd [pfad] | Remote-Verzeichnis wechseln (ohne Pfad: zurück zum Basis-Pfad) |
lcd [pfad] | lokales Verzeichnis wechseln (ohne Pfad: zurück zum Startverzeichnis); .. eine Ebene höher, : oder \ Wurzel |
ls|dir|list [pfad] [-n|-s|-d|-m] | Remote-Verzeichnis auflisten |
lls|ldir|llist [pfad] [-n|-s|-d|-m] | lokales Verzeichnis auflisten |
get [-r] [-f] <remote/muster> [lokal] | herunterladen (fragt vor dem Überschreiben) |
put [-r] [-f] <lokal/muster> [remote] | hochladen (fragt vor dem Überschreiben) |
del|rm|delete [-r|-f] <pfad> | löschen |
mkdir|makedir <pfad> | Verzeichnis anlegen |
rename|mv <alt> <neu> | umbenennen / verschieben |
info|stat <pfad> | Metadaten anzeigen |
search|find <muster> [pfad] | rekursiv suchen, Standard: aktuelles Remote-Verzeichnis |
md5 <remote> / lmd5 <lokal> | MD5 einer Datei auf dem Server / lokal |
quota|df | Konto und belegten Speicher anzeigen |
history [clear] | Verlauf anzeigen / löschen |
quit|exit|bye | beenden |
Listen-Optionen: -n nur Namen, -s mit Größe,
-d mit Datum, -m mit MD5 (lokal jedes Mal neu
berechnet); ohne Option Name, Größe, Datum und Typ. Gleichwertig sind
-r, --recursive, RECURSIVE,
ALL (rekursiv) sowie -f, --force,
FORCE (ohne Rückfrage: löschen bzw. überschreiben). Muster
(* ? #?) sind bei get und
put erlaubt. Auf dem Amiga bedeutet lcd ..
dasselbe wie lcd /. Befehle lassen sich auch aus einer Datei
lesen: amicloud-shell <befehle.txt.
Überschreiben: get und put
fragen, bevor sie eine vorhandene Datei ersetzen. Bei einer einzelnen Datei
genügt y oder n. Bei Mustern und -r
zeigt die Shell Größe, Datum und – wenn bekannt – ob der Inhalt gleich ist,
und bietet an: y überschreiben, n überspringen,
a alle weiteren überschreiben, s alle weiteren
überspringen, c ganzen Vorgang abbrechen; einfach Return
überspringt. Mit -f wird ohne Frage überschrieben. Liest die
Shell ihre Befehle aus einer Datei, ist keine Antwort möglich: Dann wird
nichts überschrieben (Einzeldatei: nein, Muster/-r: Abbruch),
und die Shell weist auf -f hin.
/> cd archiv /archiv> lcd RAM: /archiv> get -r fotos /archiv> put #?.txt /archiv> ls -d /archiv> quit
amicloud-sync [Optionen] <lokaler-ordner> <remote-ordner>
| Option | Bedeutung |
|---|---|
-s, -u, -p, -c | wie bei amicloud |
-k | Zertifikat nicht prüfen (nur zum Testen) |
-n | Probelauf: zeigt, was passieren würde, ändert nichts |
-f, FORCE | löscht ohne Rückfrage, auch viele Dateien auf einmal (für Skripte, ab 0.3) |
--help | Kurzhilfe |
amicloud-sync gleicht einen lokalen Ordner einmalig in beide Richtungen mit einem Ordner auf dem Server ab und beendet sich dann – kein Hintergrunddienst. So wird entschieden:
Name_KJJMMTT-HHMM.ext
(z. B. brief_K261031-2237.txt) und ebenfalls hochgeladen.
Sind beide Fassungen inhaltsgleich, passiert nichts.Den Stand des letzten Abgleichs merkt sich amicloud-sync in der Datei
.amicloudsync im lokalen Ordner. Beim ersten Abgleich werden
fehlende Ordner auf beiden Seiten angelegt (nicht beim Probelauf).
Rückgabewert 1, wenn Fehler auftraten, sonst 0.
.amicloudsync zu einem anderen Server, Benutzer
oder Server-Ordner, wird der Stand verworfen. Der Abgleich führt dann nur
zusammen und löscht nichts..DS_Store, ._*,
Thumbs.db, desktop.ini, ~$*,
*.part sowie Namen mit Backslash oder Steuerzeichen.Viele Löschungen auf einmal (ab 0.3): Würde ein
Abgleich auf einer Seite mehr als 20 Einträge und mehr als die Hälfte
des letzten Stands löschen (etwa weil ein Ordner versehentlich geleert wurde),
fragt er vorher nach. Wer verneint, behält die Dateien: der nächste Abgleich
kopiert sie auf die geleerte Seite zurück. Im Probelauf (-n) gibt
es stattdessen eine Warnung. In Skripten ohne Rückfrage: -f bzw.
FORCE (vor oder hinter den Ordnern).
Die Abschlusszeile zählt Konfliktkopien („1 Konfliktkopie(n)“) und nicht ausgeführte Löschungen („20 Loeschung(en) zurueckgehalten“) mit.
Lokale Dateien bekommen die Ortszeit nach gmt_offset und
dst aus amicloud.cfg (die Sommerzeit wird von Hand
umgestellt).
Schneller bei großen Ordnern (ab 0.3): Hat sich auf dem Server
etwas geändert, holt der Abgleich nur noch die Liste der Änderungen seit dem
letzten Mal, statt jeden Ordner einzeln abzufragen. Jeder 20. Abgleich liest
trotzdem alles, ebenso nach einem Konflikt, nach mehr als 30 Tagen Pause oder wenn
der Server-Ordner selbst umbenannt wurde. Das braucht den Server ab
migrate_006.sql.
Virenprüfung (ab 0.3, optional): Ist die xvs.library
installiert (Aminet util/virus), prüfen Abgleich, Kommandozeile, Shell und
Dateimanager jede Datei bis 2 MB vor dem Hochladen und vor dem Ablegen eines
Downloads. Eine verseuchte Datei wird weder übertragen noch gelöscht, sondern als
Fehler mit dem Namen des Virus gemeldet. Ohne die Bibliothek wird nicht geprüft.
amicloud-sync -n Work:Texte /texte ; erst schauen amicloud-sync Work:Texte /texte ; dann abgleichen
AmiCloud Desktop gleicht wie der
ownCloud-Client einen Ordner im Hintergrund ab. Es sitzt als Wolke in der
Menüleiste und nutzt denselben Abgleich wie amicloud-sync, mit allen
Schutzregeln oben (Konfliktkopien, Rückfrage bei vielen Löschungen). Es
läuft auf Macs mit Apple-Chip ab macOS 26. Das Programm gehört nicht zum
Aminet-Archiv; ein öffentlicher Download folgt mit der Veröffentlichung auf
GitHub, Windows und Linux später.






~/AmiCloud) und der Auswahl./) und darunter ein Baum mit Häkchen. Gespeichert wird, was
abgewählt ist; neue Server-Ordner sind also automatisch dabei. Wird ein
Ordner abgewählt, der schon auf dem Mac liegt, fragt das Programm: in den
Papierkorb oder behalten (dann wird er nicht mehr abgeglichen). Auf dem Server
bleibt er in jedem Fall. Ein später wieder gewählter Ordner wird zusammengeführt
wie beim ersten Abgleich, gelöscht wird dabei nichts.~/Library/Preferences/AmiCloud/AmiCloud
Desktop/credentials), nicht im Schlüsselbund.AmiCloud-Desktop-0.7.dmg öffnen und das
Programm auf „Programme“ ziehen. Es ist nicht von Apple beglaubigt: Beim ersten
Start unter Systemeinstellungen → Datenschutz & Sicherheit „Trotzdem öffnen“
wählen.Ein Dateimanager mit zwei Panels nebeneinander. Jedes Panel zeigt über seinen Umschalter entweder lokale Dateien (Local) oder die Cloud (AmiCloud). Das zuletzt angeklickte Panel ist das aktive.



Aufruf: amicloud-commander [-v] (braucht MUI 3.8).
Server und Zugangsdaten kommen aus ENV:amicloud.cfg (sonst
amicloud.cfg im aktuellen Verzeichnis); fehlt dort
server, user oder pass, meldet der
Commander das und beendet sich. Beim Start zeigt links das aktuelle
Verzeichnis, rechts der Basis-Pfad in der Cloud.
| Taste/Knopf | Aktion |
|---|---|
| F2 | Neu laden |
| F3 | Info zum gewählten Eintrag |
| F4 | Suchen: Muster (* ? #?), rekursiv ab dem Pfad des aktiven Panels; Treffer in eigenem Fenster, Doppelklick oder „Gehe zu“ springt hin |
| F5 | Kopieren ins andere Panel (Mehrfachauswahl möglich) |
| F6 | Verschieben des gewählten Eintrags ins andere Panel – nur zwischen Local und AmiCloud, mit Rückfrage |
| F7 | Verzeichnis anlegen |
| F8 | Löschen des gewählten Eintrags, mit Rückfrage; Verzeichnisse in der Cloud samt Inhalt, lokale nur, wenn sie leer sind |
| F10 | Beenden |
| Menü Projekt | Über AmiCloud Commander… (Amiga-?), Prüfsumme anzeigen (Amiga-M, MD5 der Auswahl), Umbenennen (Amiga-R), Suchen… (Amiga-S), Beenden (Amiga-Q) |
Der Commander gibt normalerweise nichts auf der Konsole aus. Zur
Fehlersuche: -v beim Start aus der Shell, oder beim Start von
der Workbench das Tooltype DEBUG im Icon. Die MUI-Fassung ist
auf echter Hardware noch wenig erprobt.
Aufruf: amicloud-commander [-v|--verbose]. Liest
~/.amicloudrc; fehlen Angaben, fragt ein Verbindungsdialog
danach (ohne zu speichern). Gleiche Funktionstasten F2–F10 (zusätzlich
Tab wechselt das Panel, Entf löscht, Esc
beendet). Unterschiede:
Der Handler macht den eigenen Cloud-Bereich zu einem AmigaDOS-Laufwerk
AMICLOUD:; auf der Workbench erscheint es als Datenträger
AmiCloud. Installation: amicloud-handler und
amicloud-worker nach L:, der DOSDriver
AMICLOUD nach DEVS:DOSDrivers/, dazu eine vollständige
ENV:amicloud.cfg (Kapitel 3).

Mount AMICLOUD: ; sofort (sonst beim nächsten Systemstart automatisch) Dir AMICLOUD: MakeDir AMICLOUD:Texte Copy DH0:bericht.txt AMICLOUD:Texte/ Copy AMICLOUD:Texte/bericht.txt RAM: Rename AMICLOUD:Texte/bericht.txt AMICLOUD:Texte/alt.txt Protect AMICLOUD:Texte/alt.txt +p FileNote AMICLOUD:Texte/alt.txt "Mein Kommentar" SetDate AMICLOUD:Texte/alt.txt today Delete AMICLOUD:Texte ALL
Was funktioniert: Lesen, Schreiben, Anlegen, Löschen und
Umbenennen von Dateien und Verzeichnissen, Protection-Bits,
Dateikommentare (bis 79 Zeichen), Datum setzen, Workbench-Fenster auf
AmiCloud.
So arbeitet er: Der Handler selbst
(amicloud-handler) beantwortet nur die DOS-Pakete. Die gesamte
Netzwerkarbeit erledigt ein zweiter Prozess, amicloud-worker,
den der Handler beim Mounten aus L: startet (er wartet bis zu
30 Sekunden darauf). Der Worker liest ENV:amicloud.cfg
einmal beim Start und baut die Netzverbindung erst bei der ersten Anfrage
auf – das Mounten beim Booten klappt deshalb auch, wenn der TCP/IP-Stack
später startet. Verzeichnisinhalte werden 30 Sekunden
zwischengespeichert (cache_ttl). Beim Lesen holt der Handler nur
die Teile einer Datei, die ein Programm tatsächlich liest – zeigt die Workbench
„Alle Dateien“ an, kostet eine Datei ohne Icon nur 4 KB, nicht ihre ganze
Größe. Wird eine Datei geändert, lädt er sie ganz in den Speicher und lädt sie
beim Schließen wieder hoch.
AMICLOUD: bleibt bis zum Neustart gemountet.
Neue Programmversionen und geänderte Einstellungen wirken erst danach.AMICLOUD: trotzdem alles, was ohne Server
geht: Info, Lesen und Schreiben bereits geöffneter Dateien,
Inhalte frisch gelesener Verzeichnisse. Alles andere wartet, bis die
Übertragung fertig ist.timeout Sekunden lang (Standard 120) keine Daten
oder bricht die Verbindung ab, scheitert die Anfrage mit „No disk
present“; DOS bietet dann Wiederholen an. Abgebrochene Downloads
setzt der Worker selbst an der Abbruchstelle fort. Eine laufende
Übertragung lässt sich mit Break abbrechen (Status
zeigt die Nummer von amicloud-worker).Close() einen Fehler, und der Inhalt liegt in
T:AmiCloud-unsaved/ – so geht nichts verloren.Delete … ALL funktioniert (DOS löscht Eintrag für
Eintrag).Info AMICLOUD: zeigt die Belegung des eigenen Kontos: bei einem
Speicherkontingent dessen Größe, sonst belegt plus freier Platz auf dem
Server. Die Zahlen kommen mit dem nächsten Verzeichnislesen und sind bis zu
30 Sekunden alt; vorher (und bei älteren Servern) erscheint eine feste
Kapazität. Manche alten Programme rechnen den freien Platz in 32 Bit und
zeigen über 4 GB falsch an.debuglog im Wurzelverzeichnis der Cloud
ist über AMICLOUD: nicht erreichbar (der Name ist für die Diagnose
reserviert, siehe Fehlersuche).| Problem | Abhilfe |
|---|---|
| „server URL required“, „username required“, „password required“ | Konfiguration fehlt oder ist unvollständig: ENV:amicloud.cfg bzw. ~/.amicloudrc prüfen, auf dem Amiga AmiCloudPrefs starten und Speichern wählen. |
| „network initialisation failed“ | TCP/IP-Stack läuft nicht (bsdsocket.library fehlt) oder AmiSSL 5 ist nicht installiert. Mit -v zeigen amicloud und amicloud-shell auf dem Amiga, wo es scheitert. |
| Zertifikatsfehler | Uhrzeit des Amiga prüfen (ein falsches Datum macht Zertifikate ungültig) sowie die AmiSSL-Installation samt CA-Zertifikaten. Nur zum Testen: -k bzw. verify_ssl=0. |
| Anmeldung abgelehnt (401) | Benutzername/Passwort prüfen – App-Passwort widerrufen oder Konto gesperrt? Serverseitig bei PHP-FPM CGIPassAuth On (Kapitel 6). AMICLOUD: meldet dann „Disk not validated“. |
| „Zu viele Fehlversuche“ (429) | Nach 5 falschen Anmeldungen sperrt der Server 15 Minuten. Meist hat ein anderes Gerät noch ein altes Passwort in amicloud.cfg. |
| „Quota exceeded“ (507) | Speicherkontingent voll: amicloud quota zeigt die Belegung; Dateien löschen oder den Administrator fragen. |
| Datum von Dateien stimmt nicht | gmt_offset/dst passend zur Amiga-Uhr setzen und mit AMICLOUD_TIMEZONE des Servers vergleichen. |
Mount AMICLOUD: schlägt fehl | Liegt amicloud-worker in L:? Der Handler wartet bis zu 30 Sekunden auf den Worker. |
AMICLOUD: reagiert nicht wie erwartet | In ENV:amicloud.cfg z. B. debug=T:amicloud.log eintragen, neu starten, Fehler auslösen und das Protokoll ansehen – der Worker protokolliert jeden Schritt vom Öffnen der Bibliotheken bis zur HTTP-Anfrage. Zusätzlich zeigt Type AMICLOUD:debuglog das Protokoll der Handler-Seite. |
| Commander startet nicht | MUI 3.8 installiert? Konfiguration vollständig? Zur Fehlersuche mit -v aus der Shell starten. |
| Langsame Verbindung (Modem), Übertragungen brechen ab | Alle Timeouts greifen nur, wenn gar keine Daten fließen. Bricht es trotzdem ab, timeout=300 in amicloud.cfg setzen. Abgebrochene Downloads werden an der Abbruchstelle fortgesetzt, nicht neu begonnen. Ctrl-C bricht eine laufende Übertragung in amicloud, amicloud-shell und amicloud-sync ab. Für AMICLOUD: lohnt cache_ttl=300. Serverseitig: INSTALL.md im Server-Paket, Abschnitt „Langsame Clients“. |
Pfeiltasten in amicloud-shell wirken nicht | Die Shell braucht ein interaktives Konsolenfenster; bei Eingabe aus Datei oder Pipe gibt es keine Zeilenbearbeitung. |
Amiga: in der Installationsschublade Execute Uninstall-AmiCloud.
Das Skript löscht die Programme aus C:, SYS:Tools,
SYS:Prefs und L:, den DOSDriver und
HELP:AmiCloud.guide; die Konfiguration nur nach Rückfrage. Ein
gemountetes AMICLOUD: verschwindet erst mit dem nächsten
Neustart. Von Hand:
Delete C:amicloud C:amicloud-shell C:amicloud-sync Delete SYS:Tools/amicloud-commander SYS:Prefs/AmiCloudPrefs Delete L:amicloud-handler L:amicloud-worker Delete DEVS:DOSDrivers/AMICLOUD HELP:AmiCloud.guide Delete ENV:amicloud.cfg ENVARC:amicloud.cfg ; nur wenn gewünscht
PC: amicloud, amicloud-shell,
amicloud-sync, amicloud-commander aus dem
Installationsverzeichnis und ggf. ~/.amicloudrc löschen.
Die Quellen liegen auf GitHub: github.com/dangelrk/AmiCloud; die Amiga-Programme gibt es auch als Archiv auf Aminet. Die gemeinsamen Bibliotheken stecken im Projekt
AmiCloudCore, das als
Git-Submodul core/ eingebunden ist. Alle Einzelheiten stehen in
docs/BUILD.md.
git clone --recurse-submodules https://github.com/dangelrk/AmiCloud.git cd AmiCloud make pc # PC: amicloud, amicloud-shell, amicloud-sync (libcurl) make qt # PC: Qt-Commander (Qt 6, CMake) export VBCC=/pfad/zu/vbcc make amiga # Amiga-Programme per vbcc -> bin/amiga/ make dist-amiga # Installationsschublade build/dist/AmiCloud/
Nativ auf dem Amiga (vbcc, AmiSSL-, Roadshow- und MUI-SDK) im
Projektverzeichnis Execute Build-Amiga; die SDK-Pfade stehen
oben im Skript (AMISSL_INC, NET_INC,
MUI_INC) oder werden über die Zuweisungen AmiSSL:,
NetInclude:, MUI: gesetzt. Das Skript ist auf
echter Hardware noch ungetestet.
Vollständige Referenz: api/API.md im Server-Paket. Basis-URL
https://amicloud.example.com/api.php, HTTP Basic Auth bei jeder
Anfrage. Antworten: {"status":"ok",…} bzw.
{"status":"error","code":N,"message":"…"};
download liefert die Rohdaten.
| Action | Bedeutung |
|---|---|
status | Version, Serverzeit, Änderungszähler, Konto und Speicherkontingent |
list | Verzeichnis auflisten inkl. Protection-Bits, Kommentar, MD5 |
download | Datei herunterladen (auch Teilbereiche mit offset/length) |
upload | Datei hochladen (POST-Rumpf, optional md5=, 422 bei Abweichung) |
delete | löschen (recursive=1 für nicht leere Verzeichnisse) |
info | Metadaten einer Datei oder eines Verzeichnisses |
mkdir, rename | Verzeichnis anlegen, umbenennen/verschieben |
setcomment, setprotect, setdate | Dateikommentar, Protection-Bits, Änderungsdatum setzen |
search | Namen rekursiv suchen (* ? #?), höchstens 2000 Treffer |
changes | Änderungen seit einem Zählerstand |
AMICLOUD_ALLOW_HTTP),
Zertifikatsprüfung in den Clients standardmäßig an.. und Sonderzeichen werden
abgelehnt.htaccess sperrt config.php, includes/,
sql/ und bin/SameSite=Strict,
CSRF-Token in allen Formularenamicloud.cfg
bzw. ~/.amicloudrc – Datei entsprechend schützen und ein
widerrufbares App-Passwort verwendenAmiCloud – Copyright © 2026 Ronny Krueger.
AmiCloud ist freie Software. Sie dürfen es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder verändern, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version.
Maßgeblich ist allein der englische Lizenztext in der Datei
LICENSE. Der enthaltene JSON-Parser
Parson (© Krzysztof Gabis)
steht unter der MIT-Lizenz; ihr Wortlaut liegt als
THIRD-PARTY-NOTICES in der Installationsschublade.
AmiCloud wurde geschrieben von Ronny Krueger. Fehlermeldungen und Vorschläge: amitools@planet-rk.de. Quellen und Fehlerberichte: github.com/dangelrk/AmiCloud.
Verwandte Projekte: AmiCloudCore (gemeinsame Bibliotheken), AmiOwnCloud (OwnCloud/Nextcloud per WebDAV), AmiVCS (Versionsverwaltung).
AMICLOUD: legt leere Dateien jetzt auch auf dem Server an: Copy einer leeren Datei erzeugte vorher gar nichts, und eine mit MODE_NEWFILE geleerte Datei behielt auf dem Server ihren alten Inhalt. Wird eine Datei mit SetFileSize verlängert, sind die neuen Bytes Nullen. amicloud-commander rechnet lokale Dateizeiten mit gmt_offset und dst um. Server: Löschen und gleichzeitiges Hochladen derselben Datei kommen sich nicht mehr in die Quere; Hochladen unterhalb einer Datei ergibt 409, eine ungültige Range wird ignoriert, das Web meldet ein volles Kontingent mit 507. Hinweis auf den experimentellen Status ergänzt.AMICLOUD: zeigt den zweiten als name_2, jeder führt zu seiner
Datei; Abgleich, get -r/get mit Muster und die Commander holen
solche Namen nicht, sondern melden sie. Commander: Verschieben löscht die Quelle nur
noch nach erfolgreicher Kopie. AmiCloud Desktop: ab macOS 26.AMICLOUD:: SetDate und Copy CLONE
übernehmen das Datum (vorher wurde daraus immer der 01.01.1978). Der Server
liegt dem Amiga-Archiv bei (Schublade Server).codesets.library, sonst
ISO-8859-1); Leerzeichen und Sonderzeichen in Pfaden. Abgleich: bei
Konflikten bleiben beide Fassungen erhalten, Rückfrage vor dem Löschen
vieler Dateien, optionale Virenprüfung über xvs.library,
schneller bei großen Ordnern (Änderungsliste des Servers). Neu:
AmiCloud Desktop für macOS. Server: Änderungsliste seitenweise und mit
Umbenennungen (Migration 006).amicloud-sync) sicherer: Abbruch bei Lesefehlern,
Ctrl-C ohne Löschungen, kein leeres Neuanlegen eines verschwundenen
Server-Ordners, Upload nur auf den beim Abgleich gesehenen Stand; zu lange und
nur in der Schreibung verschiedene Namen werden übersprungen. Ortszeit für
lokale Dateien. Mindestens 68020. Server: Upload mit Bedingung
(if_revision, create_only).amicloud, amicloud-shell,
amicloud-commander (MUI und Qt), amicloud-sync,
AmiCloudPrefs und der AMICLOUD:-Handler; Suche in allen Programmen;
Keep-Alive-Verbindungen auf dem Amiga. Benutzerverwaltung,
App-Passwörter, Speicherkontingente und öffentliche Links; Weboberfläche im
Stil von ownCloud; quota in CLI und Shell, Belegung in den
Commander-Statuszeilen und bei Info AMICLOUD:. Für langsame
Verbindungen: Timeouts nur bei Stillstand (timeout), Fortsetzen
abgebrochener Downloads, Ctrl-C bricht ab, AMICLOUD:
bleibt während einer Übertragung bedienbar.timeout, cache_ttl,
Ctrl-C, Fortsetzen von Downloads,
T:AmiCloud-unsaved.quota.