Gegenfeld
2 min read

Wie man Appwrite selbst hostet mit Docker

Wie man Appwrite selbst hostet mit Docker

Appwrite ist ein kostenloses und quelloffenes Backend-as-a-Service (BaaS), das als Alternative zu Firebase dient und selbst gehostet werden kann. Dieser Leitfaden zeigt dir Schritt für Schritt, wie du Appwrite mit Docker bereitstellst.

Was Sie benötigen

Sie benötigen eine aktuelle Version von Docker und Docker Compose, installiert auf Ihrem Webserver (z. B. Ubuntu 20.04), sowie eine Domain, die auf die IP-Adresse Ihres Servers zeigt.

  • Docker bereits auf Ihrem Server installiert

  • Ein Domainname, der auf die IP-Adresse Ihres Servers verweist

Wir haben eine Partnerschaft mit UpCloud geschlossen und bieten Ihnen 25 € Guthaben gratis an – starten Sie jetzt mit Cloud-Servern für Self-Hosting und mehr!

Hinweis: In diesem Leitfaden verwenden wir UpCloud als Hosting-Anbieter, Sie können jedoch auch jeden anderen Anbieter nutzen.

Schritt 1: Aktualisieren Sie Ihren Server und installieren Sie docker-compose

Kopieren Sie einfach den folgenden Code in Ihr Terminal und folgen Sie den Anweisungen:

Paketlisten aktualisieren, alle Pakete upgraden und das Docker Compose Plugin installieren
bash
apt update && apt -y upgrade 
apt install docker-compose-plugin

Schritt 2: Erstellen Sie ein neues Appwrite-Verzeichnis auf Ihrem Server

Erstellen Sie ein Verzeichnis für die Appwrite-Installation und wechseln Sie in dieses Verzeichnis:

Ein Verzeichnis „Appwrite“ erstellen und in dieses wechseln
bash
mkdir Appwrite && cd Appwrite

Hinweis: Der Befehl mkdir erstellt ein neues Verzeichnis mit dem Namen Appwrite, während cd in das Verzeichnis wechselt.

Schritt 3: Laden Sie die benötigten Appwrite-Konfigurationsdateien herunter

Sie benötigen zwei Dateien, die docker-compose.yml und die .env-Datei, um Appwrite korrekt auszuführen. Verwenden Sie dafür folgenden Befehl:

Docker-Compose-Datei und Umgebungsdatei für Appwrite herunterladen
bash
curl -o docker-compose.yml https://raw.githubusercontent.com/appwrite/appwrite/master/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/appwrite/appwrite/master/.env

Hinweis: curl ist ein Kommandozeilenwerkzeug, u. a. zum Herunterladen von Daten über URLs.

Schritt 4: Öffnen Sie die .env-Datei, um Umgebungsvariablen anzupassen

Verwenden Sie Ihren bevorzugten Texteditor (hier wird nano gezeigt), um die Umgebungsvariablen und ihre Werte zu ändern:

Umgebungsdatei .env im Nano-Editor öffnen und bearbeiten
bash
nano .env

Häufig genutzte Umgebungsvariablen, die Sie in .env ändern könnten:

  • _APP_ENV: Auf ‘production’ setzen für Produktionsumgebung

  • _APP_DOMAIN: Ihr Domainname (z. B. https://app.example.com)

  • _APP_REDIS_PASSWORD: Redis-Passwort

  • _APP_DB_ROOT_PASSWORD: Datenbank-Root-Passwort

  • _APP_USAGE_STATS: Nutzungstatistiken aktivieren/deaktivieren

Schritt 5: Starten Sie Appwrite mit Docker Compose

Führen Sie im Verzeichnis „Appwrite“ folgenden Befehl aus:

Container im Hintergrund starten
bash
docker compose up -d

Dadurch werden alle erforderlichen Appwrite-Dienste im Hintergrund gestartet. Der erste Start kann einige Minuten dauern, da Appwrite alle Docker-Images herunterlädt und die Dienste initialisiert.

Schritt 6: Öffnen Sie Appwrite in einem Browser

Sobald die Dienste ausgeführt werden, öffnen Sie Ihren Browser und rufen Sie die Domain oder IP-Adresse auf, die Sie in Ihrer .env-Datei konfiguriert haben. Zum Beispiel: https://app.example.com

Falls Sie noch keine Domain eingerichtet haben, können Sie auch die IP-Adresse Ihres Servers mit HTTPS verwenden. Appwrite generiert automatisch ein selbstsigniertes SSL-Zertifikat für lokale Tests. Für den Produktivbetrieb wird jedoch die Verwendung eines gültigen SSL-Zertifikats (z. B. von Let’s Encrypt) empfohlen.

Schließen Sie die Webeinrichtung ab

Wenn Sie die URL öffnen, zeigt Appwrite einen Einrichtungsassistenten an, in dem Sie:

  • das erste Administratorkonto (E-Mail-Adresse und Passwort) erstellen

  • die Domäne und weitere Einstellungen bestätigen

Geschrieben von

G

Gegenfeld Team

Gegenfeld Team