Implantação
Desenvolvimento
Tuber precisa de um banco de dados, um armazenamento de sessões e uma loja de empregos, além de um servidor da Web. Para testes e desenvolvimento, você pode usar um único banco de dados SQLite como banco de dados, armazenamento de sessões e loja de empregos enquanto estiver usando os servidores da Web de Build-In Python e Node para uma implantação muito simples. Sistemas maiores se beneficiarão muito do uso de uma instância dedicada ao banco de dados (geralmente Postgres), um servidor Redis para sessões e trabalhos e Nginx ou Apache como servidor da web.
Existem inúmeras maneiras de configurar as coisas, mas tentamos tornar o mais comum o mais simples possível de implementar.
A versão mais recente do Tuber é publicada nos pacotes do Github como ghcr.io/magfest/tuber-frontend:latest e ghcr.io/magfest/tuber-backend:latest . Você pode vê -los aqui.
Para implantar usando o Docker primeiro instalar o Docker em sua plataforma, conforme descrito aqui.
Com o Docker Daemon em execução, agora você pode puxar e correr Tuber:
docker-compose upIsso configurará uma pequena pilha de contêineres em estilo de produção, usando o PostGres para o banco de dados, o NGINX como proxy reverso e o Redis como sessão e loja de empregos. Quando terminar de começar, você poderá acessar sua instância em http: // localhost: 8081
NOTA: O arquivo Docker-Compose de amostra não está atualmente configura o SSL. Você deve configurar um proxy reverso para lidar com o SSL ou editar contrib/nginx.conf para usar seus certificados e editar docker-compose.yml para permitir o acesso à porta 443.
Depois de clonar este repositório, você precisará das seguintes dependências:
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 # MacOSNo Windows, você terá que instalar o NodeJS, Python3 e PostgreSQL. Adicione o NPM e o Python ao seu caminho durante a instalação.
Depois que as dependências forem instaladas, você poderá iniciar os servidores de back -end e de desenvolvimento de front -end:
O Tuber usa variáveis de ambiente para definir algumas configurações básicas.
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.exeO servidor agora deve iniciar e começar a ouvir na porta 8080 para solicitações de API.
Em um terminal separado do back -end, instale e sirva o Frontend Vue:
npm install --global yarn # Yarn is recommended for the frontend
cd frontend
yarn install
yarn run serveIsso iniciará o front -end na porta 8081. Você pode conectar seu navegador a http: // localhost: 8081 e preencher a página de configuração inicial para começar a usar o tubérculo.
Tanto o front-end quanto o back-end irão a quente como você alterará o código.
Se você deseja criar uma nova tabela ou modificar uma existente, precisará criar uma migração Alembic. Na maioria das vezes, você pode fazer isso autogenerando -o autogerente.
Primeiro, crie a definição da tabela em tubérculo/modelos/.py e verifique se ela é importada em tuberos/modelos/ inits .py.
Em seguida, use Alembic para criar o arquivo de migração:
venv/bin/alembic -c backend/tuber/alembic.ini revision --autogenerate -m " Added widget column to the whatsit table "Isso deve criar um arquivo de migração nas migrações/versões. Leia e ajuste as etapas conforme necessário. Na próxima vez que você reiniciar sua instância de desenvolvimento, ele executará a migração.
Você também pode acionar a atualização do banco de dados manualmente:
venv/bin/alembic -c backend/tuber/alembic.ini upgrade headCertifique -se de cometer a migração junto com o código que o usa!
Se você receber a seguinte mensagem de erro ambígua ao executar python setup.py develop : ld: library not found for -lssl
Tente definir o caminho do link para OpenSSL e executá-lo novamente: export LDFLAGS="-L/usr/local/opt/openssl/lib"
Às vezes, ao fundir um ramo que tenha suas novas migrações para o seu próprio ramo, você terá que dizer a Alembic o que fazer. Se você vir Alembic reclamando de várias cabeças, verifique aqui: https://blog.jerrycodes.com/multiple-weads-in-alembic-migrations/