aktuelle Version

Deploye deine Git-Repositories auf deinem eigenen Server.

uploy läuft als einzelner Dienst neben deinen Apps. Es pullt nach Zeitplan aus Git, führt Migrationen aus, startet Container oder Prozesse neu und rollt zurück, wenn ein Deploy fehlschlägt. Server, Daten und Schlüssel bleiben bei dir.

  • Downloads sind Ed25519-signiert und im Installer gepinnt.
  • Automatische Update-Checks pro App — mit manueller Freigabe vor jedem Deploy.
  • Secrets werden verschlüsselt gespeichert; nichts verlässt deinen Server.

Schnell-Installation

Auf dem Server ausführen, der deine Apps hosten soll. Komplette Anleitung unten im Installations-Guide.

curl -fsSL https://uploy.app/releases/install.sh | sh

Lieber selbst herunterladen? Manueller Download.

Was uploy für dich tut

Drei Dinge, die den Unterschied zwischen „händisch deployen“ und „ruhig schlafen“ ausmachen.

Automatische Updates

uploy prüft nach Zeitplan, ob dein Repository einen neuen Stand hat — pro App, mit manueller Freigabe vor jedem Deploy.

Rollback bei Fehlern

Schlägt ein Deploy fehl, stellt uploy den vorherigen Commit wieder her und spielt das Datenbank-Backup zurück — die App bleibt auf der letzten funktionierenden Version.

Signierte Releases

Jedes Artefakt ist Ed25519-signiert; der Installer pinnt den Schlüssel und verweigert manipulierte Downloads — bei der Installation und bei jedem Update.

Das brauchst du vorher

Ein einzelner kleiner Server reicht. Jeder Punkt unten ist in wenigen Minuten erledigt.

Server oder Rechner mit Linux, Windows oder macOS

Debian 11/12 und Ubuntu 22.04+ sind die getesteten Linux-Ziele. Ein vCPU und 2 GB RAM tragen uploy plus ein paar kleine Apps; 50 GB Speicher sind ein sinnvoller Start.

Node.js 18 oder neuer und git

Node betreibt den uploy-Dienst selbst; git zieht deine Repositories. Prüfen mit node -v und git --version.

Optional, je nach Projekttyp: Docker

Docker-Compose-Apps brauchen docker und das docker compose-Plugin. Node.js-, Python- und statische Apps nicht. Installiere Docker mit dem offiziellen Script, wenn du Container deployen willst.

Zugriff auf deinen Git-Provider

Ein Personal Access Token für private Repositories (GitHub, GitLab oder jedes git-Remote). Öffentliche Repos funktionieren ohne Token.

als root, auf dem Server
# Node.js 20 von NodeSource
curl -fsSL https://deb.nodesource.com/setup_20.x | sh -
apt-get install -y nodejs git

# optional: Docker Compose für Container-Apps
curl -fsSL https://get.docker.com | sh

Installation und erstes Deployment

Fünf Schritte von einem leeren Server zu einer laufenden App. Jeder Schritt zeigt, was du sehen solltest, wenn er geklappt hat.

1

Installer ausführen

Der Installer lädt das signierte Release herunter, prüft Signatur und SHA-256-Checksumme gegen einen gepinnten Schlüssel und packt es aus. Schlägt die Verifikation fehl, bricht er ab — ein beschädigter oder manipulierter Download wird nie entpackt.

curl -fsSL https://uploy.app/releases/install.sh | sh

Installiert nach /opt/uploy (als root) oder ~/.uploy-app (sonst); auf Windows nach %LOCALAPPDATA%\uploy. Der Befehl uploy wird — wenn möglich — nach /usr/local/bin verlinkt; erscheint stattdessen eine PATH-Anweisung, kopiere diese Zeile in deine Shell und öffne sie neu.

2

Dienst starten

Ein Befehl startet den Daemon und das Web-Dashboard.

uploy start
Du solltest sehen: „uploy listening on http://0.0.0.0:8765“. Öffnest du http://SERVER-IP:8765 im Browser, erscheint der Einrichtungsdialog.

Erreicht der Browser den Port nicht, öffne ihn in deiner Firewall (auf vielen VPS-Images: ufw allow 8765).

3

Ersteinrichtung abschließen

Der Einrichtungsdialog fragt nach Admin-Benutzername und -Passwort, dann nach der gewünschten Schnittstelle: HTTP fürs lokale Netzwerk oder HTTPS mit selbstsigniertem bzw. Let's-Encrypt-Zertifikat, sobald eine Domain auf den Server zeigt. Zwei-Faktor-Authentifizierung lässt sich für das Admin-Konto direkt dort aktivieren.

Du solltest sehen: das Dashboard mit leerer App-Liste.
4

Erste App hinzufügen

Im Dashboard: Neue App, Repository-URL einfügen, Projekttyp wählen (Auto-Erkennung deckt Docker Compose, Node.js und weitere ab) und das Prüfintervall festlegen. Beim ersten Deploy pullt uploy das Repository, führt den Deploy-Adapter aus und prüft den Health-Check. Schlägt der Deploy fehl, wird der Code automatisch auf den vorherigen Commit zurückgerollt.

Du solltest sehen: die App-Karte wird grün („Running“), sobald der Health-Check besteht.
5

Lizenz aktivieren

Nach dem Kauf erhältst du einen Lizenzschlüssel per E-Mail. Im Dashboard öffne Einstellungen → Lizenz und füge ihn ein. Der Server validiert online — oder per Lizenzdatei, wenn er keinen Internetzugang hat.

Noch kein Schlüssel? Plan auswählen.

Nach einem Reboot bleibt der Dienst aus, bis du ihn persistent machst. Der nächste Abschnitt behandelt das.

Dauerhaft am Laufen halten

Drei Dinge, die du einmal einrichtest und danach nie wieder anfasst.

Beim Boot starten

uploy autostart install registriert einen systemd-Dienst (Linux), eine geplante Aufgabe (Windows) oder einen LaunchDaemon (macOS). Status mit uploy autostart status, Entfernen mit uploy autostart uninstall.

Updates für uploy selbst

Im Dashboard gibt es unter Einstellungen einen Update-Check. Update-Checks sind Opt-in; bei ausgeschaltetem Auto-Update löst du jedes Upgrade selbst aus. Neue Releases sind mit demselben gepinnten Schlüssel signiert wie die Erstinstallation.

Alltag über die CLI

uploy list, uploy deploy APP-ID, uploy restart APP-ID, uploy logs APP-ID -f. uploy doctor prüft das lokale Setup: Git-Erreichbarkeit, Docker, Speicherplatz, Berechtigungen.

Download ohne Installer

Direkt per Plattform-Button oder als Einzelteile. Jedes Artefakt ist signiert — prüfe mindestens die Checksumme gegen den gepinnten Public Key (siehe Verifizieren).

Nicht jede Plattform ist zu jedem Zeitpunkt veröffentlicht — die Route meldet 404, solange kein aktuelles Manifest existiert. ARM64/macOS-Builds entstehen auf Anfrage.

Linux x86-64

install manifest · install.sh

Windows x86-64

install manifest · install.ps1

Linux ARM64 · macOS (Intel und Apple Silicon)

Auf Anfrage gebaut. Schreibe an hello@uploy.app oder prüfe ob bereits ein ARM64-Manifest existiert.

Download verifizieren

Der Installer verifiziert automatisch. Hast du das Tarball von Hand geladen, führe den Verifier selbst aus, bevor du es entpackst.

node install-verify.mjs \
  --manifest install-manifest-linux-x64.json \
  --archive uploy-0.1.4-linux-x64.tar.gz \
  --pubkey "$(cat uploy-release-public-key.b64)"

Exit-Code 0 heißt: Signatur und Checksumme stimmen. 2 heißt: das Archiv passt nicht zu seiner Checksumme, 3 heißt: die Signatur verifiziert nicht. Verwerfe in beiden Fällen den Download und lade ihn neu.

Fragen, die tatsächlich gestellt werden

Etwas anderes: hello@uploy.app.

Wo speichert uploy meine Daten?
Alles liegt unter ~/.uploy auf dem Server, der den Daemon ausführt: eine JSON-Datenbank, verschlüsselte Secrets, Git-Working-Copies und Backups. Eine Deinstallation löscht dort nichts — außer du entfernst das Verzeichnis selbst.
Muss der Server aus dem Internet erreichbar sein?
Nur für das Dashboard, und nur wenn du es von außerhalb deines Netzes erreichen willst. Die Deploy-Richtung ist ausgehend: uploy pullt von deinem Git-Provider. Bleibt das Dashboard im LAN, funktionieren Deployments trotzdem.
Läuft das auch in einem Air-Gap-Netzwerk?
Ja. Der Air-Gap-Modus deaktiviert alle ausgehenden Aufrufe, inklusive Update-Checks und Lizenz-Validierung; aktiviert wird dann mit einer signierten Lizenzdatei aus dem Portal. Jeder Netzwerkzugriff in uploy ist Opt-in.
Was passiert, wenn ein Deploy fehlschlägt?
uploy hält am fehlschlagenden Schritt an, stellt den vorherigen Commit wieder her und — falls bereits eine Datenbank-Migration gelaufen war — das Pre-Migrations-Backup. Die App bleibt auf der letzten bekannten guten Version, der Fehler landet im Dashboard-Log.