Déploiement
Développement
Tuber a besoin d'une base de données, d'un magasin de session et d'un magasin de travail ainsi que d'un serveur Web. Pour les tests et le développement, vous pouvez utiliser une seule base de données SQLITE comme base de données, magasin de session et magasin de travail tout en utilisant les serveurs Back-In Python et Node pour un déploiement très simple. Les systèmes plus grands bénéficieront grandement de l'utilisation d'une instance de base de données dédiée (généralement Postgres), d'un serveur Redis pour les sessions et les travaux, et Nginx ou Apache en tant que serveur Web.
Il existe de nombreuses façons de configurer des choses, mais nous essayons de rendre le plus courant était aussi simple que possible à implémenter.
La dernière version de Tuber est publiée dans les packages GitHub sous le nom de ghcr.io/magfest/tuber-frontend:latest et ghcr.io/magfest/tuber-backend:latest . Vous pouvez les voir ici.
Pour déployer à l'aide de Docker d'installez d'abord Docker sur votre plate-forme, comme décrit ici.
Avec le Docker Daemon en cours d'exécution, vous pouvez maintenant tirer et courir le tuber:
docker-compose upCela mettra en place une petite pile de conteneurs de style de production, en utilisant Postgres pour la base de données, Nginx comme proxy inverse et Redis comme session et le magasin de travail. Une fois le début, vous devriez pouvoir accéder à votre instance sur http: // localhost: 8081
Remarque: L'exemple de fichier Docker-Compose ne configure pas actuellement SSL. Vous devez soit configurer un proxy inversé pour gérer SSL, soit modifier contrib/nginx.conf pour utiliser vos certificats et modifier docker-compose.yml pour permettre l'accès au port 443.
Après le clonage de ce référentiel, vous aurez besoin des dépendances suivantes:
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 # MacOSSur Windows, vous devrez installer NodeJS, Python3 et PostgreSQL. Assurez-vous d'ajouter à la fois NPM et Python à votre chemin pendant l'installation.
Une fois les dépendances installées, vous pouvez démarrer les serveurs de développement backend et frontend:
Tuber utilise des variables d'environnement pour configurer certains paramètres de base.
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.exeLe serveur doit maintenant démarrer et commencer à écouter sur le port 8080 pour les demandes d'API.
Dans un terminal séparé du backend, installez et servez le frontend Vue:
npm install --global yarn # Yarn is recommended for the frontend
cd frontend
yarn install
yarn run serveCela commencera le frontend sur le port 8081. Vous pouvez connecter votre navigateur à http: // localhost: 8081 et compléter la page de configuration initiale pour commencer à utiliser Tuber.
Le frontend et le backend seront relevés à chaud lorsque vous changez de code.
Si vous souhaitez créer une nouvelle table ou en modifier celle existante, vous devrez créer une migration alembique. La plupart du temps, vous pouvez le faire en lenerant automatiquement.
Tout d'abord, créez la définition du tableau dans Tuber / Models / .py et assurez-vous qu'elle est importée dans Tuber / Models / init .py.
Ensuite, utilisez Alembic pour créer le fichier de migration:
venv/bin/alembic -c backend/tuber/alembic.ini revision --autogenerate -m " Added widget column to the whatsit table "Cela devrait créer un fichier de migration dans les migrations / versions. Lisez-le et ajustez les étapes si nécessaire. La prochaine fois que vous redémarrez votre instance de développement, elle exécutera la migration.
Vous pouvez également déclencher la mise à jour de la base de données manuellement:
venv/bin/alembic -c backend/tuber/alembic.ini upgrade headAssurez-vous de commettre la migration avec le code qui l'utilise!
Si vous recevez le message d'erreur ambigu suivant lors de l'exécution python setup.py develop : ld: library not found for -lssl
Essayez de définir le chemin du lien pour OpenSSL et de l'exécuter à nouveau: export LDFLAGS="-L/usr/local/opt/openssl/lib"
Parfois, lors de la fusion d'une branche qui a ses propres migrations dans votre propre branche, vous devrez dire ce qu'il faut faire. Si vous voyez Alembic se plaindre de plusieurs têtes, vérifiez ici: https://blog.jerrycodes.com/multiple-heads-in-alembic-migrations/