diff --git a/.idea/rust.xml b/.idea/rust.xml
new file mode 100644
index 0000000..7bc91ea
--- /dev/null
+++ b/.idea/rust.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Cargo.toml b/Cargo.toml
index 33b80ef..2bb358d 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -4,9 +4,9 @@ version = "0.1.0"
edition = "2024"
authors = ['DragonSlayer_14']
readme = "README.md"
-license-file = "LICENSE"
-repository = "https://gitea.creative-dragonslayer.de/Linuxapps/SmartMount"
-description = ""
+license = "GPL-3.0-or-later"
+repository = "https://gitea.creative-dragonslayer.de/Linuxapps/DockerUpdate"
+description = "Automatisches Aktualisieren von Docker-Compose-Anwendungen in /var/apps mit :latest-Images"
[dependencies]
time = { version="0.3.41", features = ["formatting", "macros", "local-offset"] }
@@ -19,8 +19,27 @@ libc = "1.0.0-alpha.1"
debug = "none"
[package.metadata.deb]
+name = "docker-update"
+maintainer = "DragonSlayer_14"
+copyright = "2026 Linuxapps"
section = "utils"
priority = "optional"
+depends = "$auto, sudo, docker.io | docker-ce"
+extended-description = """\
+DockerUpdate durchsucht Verzeichnisse (standardmäßig in /var/apps) nach
+Docker-Compose-Dateien mit ':latest'-Images, prüft auf neuere Images,
+lädt diese herunter und startet die betroffenen Container automatisch neu.\
+"""
+assets = [
+ ["target/release/docker-update", "usr/bin/docker-update", "755"],
+ ["README.md", "usr/share/doc/docker-update/README.md", "644"],
+ ["LICENSE", "usr/share/doc/docker-update/copyright", "644"],
+]
-provides = ["docker-update"]
-depends = ["$auto"]
+[package.metadata.generate-rpm]
+assets = [
+ { source = "target/release/docker-update", dest = "/usr/bin/docker-update", mode = "755" },
+ { source = "README.md", dest = "/usr/share/doc/docker-update/README.md", mode = "644", doc = true },
+ { source = "LICENSE", dest = "/usr/share/licenses/docker-update/LICENSE", mode = "644", license = true },
+]
+requires = { "sudo" = "*", "docker" = "*" }
diff --git a/README.md b/README.md
index 1819c42..d1d7fe4 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,193 @@
-# DockerUpdater
+# DockerUpdate (`docker-update`)
-Hilft dabei installierte Anwendungen über docker-compose.yaml in /var/apps aktuell zu halten.
\ No newline at end of file
+`docker-update` ist ein schlankes CLI-Werkzeug für Linux-Server, das Docker-Compose-basierte Applikationen automatisch
+auf neuere Versionen prüft, aktualisiert und neu startet.
+
+## Funktionsweise
+
+1. **Durchsuchen von Applikationsverzeichnissen**:
+ Standardmäßig scannt `docker-update` alle Unterverzeichnisse in `/var/apps/` (konfigurierbar) nach gültigen
+ Compose-Dateien (`docker-compose.yaml`, `docker-compose.yml`, `compose.yaml`, `compose.yml`).
+2. **Erkennung von `:latest`-Images**:
+ Services in den Compose-Dateien werden analysiert. Es werden gezielt Services berücksichtigt, deren Image das
+ `:latest`-Tag nutzt oder implizit auf `latest` verweist (kein Tag angegeben).
+3. **Prüfung auf neuere Images & Download**:
+ Das Programm führt für jedes betroffene Image einen `docker pull` durch und vergleicht die Image-IDs vor und nach dem
+ Pull.
+4. **Automatischer Neustart**:
+ Wurde ein neues Image heruntergeladen, wird die Applikation im jeweiligen Verzeichnis über `docker compose up -d`
+ (mit Fallback auf `docker-compose up -d`) aktualisiert und neu gestartet.
+5. **Bereinigung**:
+ Nach erfolgreichen Aktualisierungen werden ungenutzte Zwischen-Images automatisch mittels `docker image prune -f`
+ bereinigt.
+6. **Berechtigungen & Logging**:
+ Wird das Programm ohne Root-Rechte gestartet, startet es sich automatisch über `sudo` mit erhöhten Rechten neu.
+ Ausgaben werden auf der Konsole formatiert und zusätzlich tagesbasiert im System-Temp-Verzeichnis protokolliert (z.
+ B. `/tmp/docker-update-.../log-YYYY-MM-DD.log`).
+
+---
+
+## Voraussetzungen
+
+- **Betriebssystem**: Linux (x86_64, aarch64)
+- **Laufzeit-Abhängigkeiten**:
+ - `docker` (inkl. Docker Compose Plugin `docker compose` oder Standalone `docker-compose`)
+ - `sudo`
+- **Build-Abhängigkeiten** (nur zum Kompilieren/Paketieren):
+ - Rust & Cargo (Rust 2024 Edition / 1.85+)
+
+---
+
+## Manuelle Installation (Build from Source)
+
+```bash
+# Repository klonen
+git clone https://gitea.creative-dragonslayer.de/Linuxapps/DockerUpdate.git
+cd DockerUpdate
+
+# Release-Binary kompilieren
+cargo build --release
+
+# Binary ins Systemverzeichnis installieren
+sudo install -m 755 target/release/docker-update /usr/bin/docker-update
+```
+
+Anschließend kann das Programm direkt über `docker-update` ausgeführt werden:
+
+```bash
+docker-update
+```
+
+---
+
+## Konfiguration
+
+Die Konfigurationsdatei wird standardmäßig unter folgendem Pfad abgelegt:
+
+- **Root-Ausführung**: `/etc/docker-update/config.toml`
+- **Benutzer-Ausführung**: `~/.config/docker-update/config.toml`
+
+Wird keine Datei gefunden, verwendet `docker-update` die Standardwerte.
+
+### Beispiel-Konfiguration (`config.toml`)
+
+```toml
+[general]
+# Verzeichnis, in dem sich die Applikationsordner mit Compose-Dateien befinden
+apps_dir = "/var/apps"
+
+# Log-Level: "error", "warn", "info", "debug"
+log_level = "info"
+```
+
+---
+
+## Paketerstellung
+
+Für gängige Linux-Distributionen stehen vorbereitete Paketierungsdefinitionen zur Verfügung.
+
+### 1. Debian / Ubuntu (`.deb`)
+
+Das Debian-Paket kann mithilfe von [`cargo-deb`](https://github.com/kornelski/cargo-deb) erstellt werden:
+
+```bash
+# cargo-deb installieren (falls noch nicht vorhanden)
+cargo install cargo-deb
+
+# Release-Build und Debian-Paket erstellen
+cargo deb
+
+# Installation des erstellten Pakets
+sudo dpkg -i target/debian/docker-update_0.1.0-1_amd64.deb
+```
+
+Die Paketkonfiguration und Abhängigkeiten (`sudo`, `docker.io | docker-ce`) sind in `Cargo.toml` unter
+`[package.metadata.deb]` definiert.
+
+---
+
+### 2. Arch Linux (`PKGBUILD`)
+
+Für Arch Linux liegt ein `PKGBUILD` im Verzeichnis `packaging/arch/` bereit:
+
+```bash
+cd packaging/arch
+
+# Paket bauen und installieren
+makepkg -si
+```
+
+Alternativ kann das Binary auch manuell mit `pacman -U .pkg.tar.zst` installiert werden.
+
+---
+
+### 3. Fedora / RHEL / CentOS (`.rpm`)
+
+Für RPM-basierte Distributionen gibt es zwei Möglichkeiten:
+
+#### Option A: Mit `cargo-generate-rpm`
+
+```bash
+# cargo-generate-rpm installieren
+cargo install cargo-generate-rpm
+
+# Release bauen und RPM erzeugen
+cargo build --release
+cargo generate-rpm
+
+# Installation des erstellten RPM-Pakets
+sudo dnf install target/generate-rpm/docker-update-0.1.0-1.*.rpm
+```
+
+#### Option B: Mit `rpmbuild` und Spec-Datei
+
+Die RPM-Spec-Datei befindet sich in `packaging/fedora/docker-update.spec`:
+
+```bash
+# Erforderliche Build-Werkzeuge installieren
+sudo dnf install rpm-build
+
+# Paket über rpmbuild erstellen
+rpmbuild -ba packaging/fedora/docker-update.spec
+```
+
+---
+
+## Automatisierung (Cron)
+
+Um `docker-update` regelmäßig (z. B. täglich nachts um 03:30 Uhr) automatisch auszuführen, kann ein Cronjob eingerichtet
+werden. Da `docker-update` Root-Rechte benötigt, sollte der Cronjob mit Root-Rechten ausgeführt werden.
+
+### Option A: Über `/etc/cron.d/docker-update` (Empfohlen für Server)
+
+Erstelle eine Datei `/etc/cron.d/docker-update`:
+
+```bash
+sudo tee /etc/cron.d/docker-update << 'EOF'
+# Täglich um 03:30 Uhr docker-update als root ausführen
+30 3 * * * root /usr/bin/docker-update >/dev/null 2>&1
+EOF
+
+sudo chmod 644 /etc/cron.d/docker-update
+```
+
+### Option B: Über die Root-Crontab (`crontab -e`)
+
+Öffne die Crontab des Root-Benutzers:
+
+```bash
+sudo crontab -e
+```
+
+Füge folgende Zeile ein:
+
+```cron
+30 3 * * * /usr/bin/docker-update >/dev/null 2>&1
+```
+
+---
+
+## Lizenz
+
+Dieses Projekt ist unter der **GNU General Public License v3.0 or later (GPL-3.0-or-later)** lizenziert. Weitere
+Informationen finden sich in der Datei [LICENSE](LICENSE).
diff --git a/packaging/arch/PKGBUILD b/packaging/arch/PKGBUILD
new file mode 100644
index 0000000..084ca28
--- /dev/null
+++ b/packaging/arch/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: DragonSlayer_14
+
+pkgname=docker-update
+pkgver=0.1.0
+pkgrel=1
+pkgdesc="Automatisches Aktualisieren von Docker-Compose-Anwendungen in /var/apps mit :latest-Images"
+arch=('x86_64' 'aarch64')
+url="https://gitea.creative-dragonslayer.de/Linuxapps/DockerUpdate"
+license=('GPL-3.0-or-later')
+depends=('gcc-libs' 'glibc' 'sudo' 'docker')
+optdepends=('docker-compose: Unterstützung für Docker Compose v1')
+makedepends=('cargo')
+source=("$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz")
+sha256sums=('SKIP')
+
+prepare() {
+ cd "$srcdir/$pkgname-$pkgver" 2>/dev/null || cd "$srcdir/$pkgname" 2>/dev/null || cd "$srcdir"
+ export RUSTUP_TOOLCHAIN=stable
+ cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')" 2>/dev/null || cargo fetch || true
+}
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver" 2>/dev/null || cd "$srcdir/$pkgname" 2>/dev/null || cd "$srcdir"
+ export RUSTUP_TOOLCHAIN=stable
+ export CARGO_TARGET_DIR=target
+ cargo build --frozen --release --all-targets 2>/dev/null || cargo build --release
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver" 2>/dev/null || cd "$srcdir/$pkgname" 2>/dev/null || cd "$srcdir"
+ export RUSTUP_TOOLCHAIN=stable
+ cargo test --frozen 2>/dev/null || cargo test
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver" 2>/dev/null || cd "$srcdir/$pkgname" 2>/dev/null || cd "$srcdir"
+ install -Dm755 "target/release/$pkgname" "$pkgdir/usr/bin/$pkgname"
+ install -Dm644 "LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ install -Dm644 "README.md" "$pkgdir/usr/share/doc/$pkgname/README.md"
+}
diff --git a/packaging/fedora/docker-update.spec b/packaging/fedora/docker-update.spec
new file mode 100644
index 0000000..7db52ce
--- /dev/null
+++ b/packaging/fedora/docker-update.spec
@@ -0,0 +1,42 @@
+Name: docker-update
+Version: 0.1.0
+Release: 1%{?dist}
+Summary: Automatisches Aktualisieren von Docker-Compose-Anwendungen in /var/apps mit :latest-Images
+
+License: GPL-3.0-or-later
+URL: https://gitea.creative-dragonslayer.de/Linuxapps/DockerUpdate
+Source0: %{name}-%{version}.tar.gz
+
+BuildRequires: cargo
+BuildRequires: rust
+Requires: sudo
+Requires: (docker or moby-engine or docker-ce)
+Suggests: (docker-compose or docker-compose-plugin)
+
+%description
+DockerUpdate durchsucht Verzeichnisse (standardmäßig in /var/apps) nach
+Docker-Compose-Dateien mit ':latest'-Images, prüft auf neuere Images,
+lädt diese herunter und startet die betroffenen Container automatisch neu.
+
+%prep
+%autosetup
+
+%build
+cargo build --release
+
+%check
+cargo test
+
+%install
+install -D -p -m 0755 target/release/%{name} %{buildroot}%{_bindir}/%{name}
+install -D -p -m 0644 README.md %{buildroot}%{_docdir}/%{name}/README.md
+install -D -p -m 0644 LICENSE %{buildroot}%{_licensedir}/%{name}/LICENSE
+
+%files
+%license LICENSE
+%doc README.md
+%{_bindir}/%{name}
+
+%changelog
+* Sun Aug 23 2026 DragonSlayer_14 - 0.1.0-1
+- Erstveröffentlichung von docker-update