Einsatz
Entwicklung
Tuber benötigt eine Datenbank, einen Sitzungsspeicher und einen Job Store sowie einen Webserver. Für das Testen und die Entwicklung können Sie eine einzelne SQLite-Datenbank als Datenbank, Session Store und Job Store verwenden, während Sie die Gebäude-Python- und Knoten-Webserver für eine sehr einfache Bereitstellung verwenden. Größere Systeme profitieren stark von der Verwendung einer dedizierten Datenbankinstanz (im Allgemeinen Postgres), einem Redis -Server für Sitzungen und Jobs sowie Nginx oder Apache als Webserver.
Es gibt zahlreiche Möglichkeiten, Dinge zu konfigurieren, aber wir versuchen, am häufigsten zu implementieren.
Die neueste Version von Tuber wird in Github-Paketen als ghcr.io/magfest/tuber-frontend:latest und ghcr.io/magfest/tuber-backend:latest veröffentlicht. Sie können sie hier anzeigen.
Um mit Docker mit Docker zu bereitstellen, installieren Sie Docker, wie hier beschrieben, auf Ihrer Plattform.
Wenn der Docker -Daemon läuft, können Sie jetzt Tuber ziehen und ausführen:
docker-compose upDadurch wird ein kleiner Produktionsstapel von Containern eingerichtet, das Postgres für die Datenbank, Nginx als Reverse-Proxy und Redis als Sitzungs- und Job-Store verwendet. Sobald es abgeschlossen ist, sollten Sie in der Lage sein, auf Ihre Instanz unter http: // localhost: 8081 zugreifen zu können
HINWEIS: Die Beispiel-Docker-Compose-Datei konfiguriert derzeit SSL nicht. Sie sollten entweder einen Reverse-Proxy einrichten, um SSL zu verarbeiten, oder um Ihre contrib/nginx.conf zu verwenden, um Ihre Zertifikate zu verwenden, und docker-compose.yml zu bearbeiten, um den Zugriff auf Port 443 zu ermöglichen.
Nach dem Klonen dieses Repositorys benötigen Sie die folgenden Abhängigkeiten:
dnf install npm python3 python3-devel python3-pip # Fedora/RHEL/CentOS
apt install npm python3 python3-dev python3-pip # Debian/Ubuntu
brew install npm python postgresql # MacOSUnter Windows müssen Sie NodeJs, Python3 und PostgreSQL installieren. Stellen Sie sicher, dass Sie während der Installation sowohl NPM als auch Python zu Ihrem Weg hinzufügen.
Sobald die Abhängigkeiten installiert sind, können Sie die Backend- und Frontend Development -Server starten:
Tuber verwendet Umgebungsvariablen, um einige grundlegende Einstellungen zu konfigurieren.
DATABASE_URL=sqlite:///database.db
FLASK_ENV=production
REDIS_URL=
WORKERS=2
CIRCUITBREAKER_THREADS=2
CIRCUITBREAKER_TIMEOUT=5
ENABLE_CIRCUITBREAKER=truepython -m venv venv
source venv/bin/activate
cd backend
python -m pip install -e .
tuber
# Windows
python -m venv venv
venv S cripts a ctivate.bat
cd backend
python -m pip install -e .
.. v env S cripts t uber.exeDer Server sollte nun starten und mit dem Port 8080 nach API -Anfragen anhören.
Installieren und servieren Sie das Vue -Frontend in einem separaten Terminal vom Backend:
npm install --global yarn # Yarn is recommended for the frontend
cd frontend
yarn install
yarn run serveDadurch wird der Frontend auf Port 8081 gestartet. Sie können Ihren Browser mit http: // localhost: 8081 anschließen und die erste Setup -Seite abschließen, um mit der Verwendung von Tuber zu beginnen.
Sowohl das Frontend als auch das Backend werden beim Ändern des Codes heiß aufgeladen.
Wenn Sie eine neue Tabelle erstellen oder eine vorhandene ändern möchten, müssen Sie eine alembische Migration erstellen. Meistens können Sie dies tun, indem Sie es autogenerieren.
Erstellen Sie zunächst die Tabellendefinition in Tuber/Models/.py und stellen Sie sicher, dass sie in Tuber/Models/ init .py importiert wird.
Als nächstes erstellen Sie Alembic, um die Migrationsdatei zu erstellen:
venv/bin/alembic -c backend/tuber/alembic.ini revision --autogenerate -m " Added widget column to the whatsit table "Dies sollte eine Migrationsdatei in Migrationen/Versionen erstellen. Lesen Sie es durch und passen Sie die Schritte nach Bedarf an. Wenn Sie das nächste Mal Ihre Dev -Instanz neu starten, wird die Migration ausgeführt.
Sie können das Datenbank -Update auch manuell auslösen:
venv/bin/alembic -c backend/tuber/alembic.ini upgrade headStellen Sie sicher, dass Sie die Migration zusammen mit dem Code begehen, der sie verwendet!
Wenn Sie die folgende mehrdeutige Fehlermeldung beim Ausführen python setup.py develop : ld: library not found for -lssl
Versuchen Sie, den Linkpfad für OpenSSL festzulegen und erneut auszuführen: export LDFLAGS="-L/usr/local/opt/openssl/lib"
Manchmal müssen Sie bei der Verschmelzung einer Zweigstelle mit eigenen neuen Migrationen in Ihre eigene Filiale sagen, dass Sie Alembic sagen müssen, was zu tun ist. Wenn Sie sich über Alembic über mehrere Köpfe beschweren sehen