Giter VIP home page Giter VIP logo

dev.localhost's Introduction

Setup Ambiente de Desenvolvimento

o ambiente de desenvolvimento é composto por 3 repositórios: - ambiente - api - portal-professor

O ambiente é a base para os demais repositórios, contendo as configurações de ambiente, docker-compose e scripts de inicialização.


0. Instalando dependencias

  • WSL (pelo powershell como admin executar)
wsl --install

1. Preparando AMBIENTE inicial

1.1 clonar repositório dev.localhost

AWS_USER_ID é o ID do usuário da AWS, que pode ser obtido no console da AWS, na aba IAM, na seção "Usuários", clicando no nome do usuário e copiando o ID do usuário.

Configurar o Git para usar a chave/user da AWS adicionando o trecho abaixo no arquivo ~/.ssh/config:

Host git-codecommit.*.amazonaws.com
  User AWS_USER_ID
  IdentityFile ~/.ssh/id_rsa

Escolha um diretório, preferencialmente sem espacos no nome, evitando por exemplo "Área de Trabalho" e execute o comando abaixo:

    git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/dev.localhost

1.2 entrar no diretório clonado

    cd dev.localhost

A partir daqui, levar em consideração que o diretório atual é o "dev.localhost"


2. API

2.1 clonar repositorio da api

    git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/api

2.2 copiar os arquivos da pasta "ambiente/envs" para dentro da pasta da "api"

    cp -r ./ambiente/envs/.* ./api/

2.3 adicionar as chaves (secrets) recebidas por email no do arquivo .env de DENTRO da pasta api

    nano ./api/.env
APP_KEY="base64:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
JWT_SECRET="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
GOOGLE_MAPS_API_KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

2.4 instalar as dependencias do composer

    docker compose -f ./api/docker-compose.yml run --rm composer install

3. portal-professor

3.1 clonar repositorio do portal-professor

    git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/portal-professor

3.2 criar o arquivo environments/environment.dev.ts ("TODO": colocar arquivo no repositorio para nao precisar desse passo)

echo "export const environment: any = {
    production: false,
};" > ./portal-professor/src/environments/environment.dev.ts

3. portal-aluno

3.1 clonar repositorio do portal-aluno

    git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/portal-aluno

5. Certificados HTTPS MKcert:

5.1 Baixar o aplicativo MKCERT no Windows WSL:

wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64

mv mkcert-v1.4.4-linux-amd64 ./ambiente/certs/mkcert

sudo chmod +x ./ambiente/certs/mkcert

./ambiente/certs/mkcert --install

5.2 Gerar o certificado com os domínios desejados:

./ambiente/certs/mkcert -cert-file ./ambiente/certs/local-cert.pem -key-file ./ambiente/certs/local-key.pem \
    "docker.localhost" "*.docker.localhost" \
    "dev.localhost" "*.dev.localhost" \
    "prod.localhost" "*.prod.localhost" \
    "ext.localhost" "*.ext.localhost" \
    "*.mairiporaeducasim.prod.localhost" "*.mairiporaeducasim.dev.localhost" "*.mairiporaeducasim.ext.localhost" \
    "*.educafrancodarocha.prod.localhost" "*.educafrancodarocha.dev.localhost" "*.educafrancodarocha.ext.localhost" \
    "*.educaita.prod.localhost" "*.educaita.dev.localhost" "*.educaita.ext.localhost" \
    "*.educailhabela.prod.localhost"  "*.educailhabela.dev.localhost" "*.educailhabela.ext.localhost" \
    "*.nilopoliseduca.prod.localhost" "*.nilopoliseduca.dev.localhost" "*.nilopoliseduca.ext.localhost" \
    "*.educaitapecerica.prod.localhost" "*.educaitapecerica.dev.localhost" "*.educaitapecerica.ext.localhost" \
    "*.segundotempoaruja.prod.localhost" "*.segundotempoaruja.dev.localhost" "*.segundotempoaruja.ext.localhost" \
    "*.escolaonlineguara.prod.localhost"  "*.escolaonlineguara.dev.localhost" "*.escolaonlineguara.ext.localhost" \
    "*.educapindamonhagaba.prod.localhost" "*.educapindamonhagaba.dev.localhost" "*.educapindamonhagaba.ext.localhost" \
    "*.educaaruja.prod.localhost" "*.educaaruja.dev.localhost" "*.educaaruja.ext.localhost"

5.3 Instalar o rootCA no Windows

Por padrão o mkcert não instala o rootCA no Windows, para isso é necessário executar o mkcert.exe do Windows. Antes, vamos anotar o diretório do rootCA instlado no passo anterior:

./ambiente/certs/mkcert -CAROOT

Deve aparecer algo como:

/home/UsernameLinux/.local/share/mkcert

5.4 Baixar o executável

- [MKcert.exe](https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-windows-amd64.exe)
- renomear para "mkcert.exe"
ren "mkcert-v1.4.4-windows-amd64.exe" mkcert.exe

5.5 Configurar o CAROOT nos navegadores do Windows

No cmd.exe do Windows (rodando como Administrador), executar o comando, substituindo o "UsernameWindows" pelo nome do usuário do Windows e o caminho pelo caminho do CAROOT (4.3) gerado no WSL2:

C:\Users\UsernameWindows\Desktop> set CAROOT=\\wsl.localhost\Ubuntu\home\UsernameLinux\.local\share\mkcert
C:\Users\UsernameWindows\Desktop> mkcert.exe -CAROOT
C:\Users\UsernameWindows\Desktop> mkcert.exe -install
Using the local CA at "\\wsl.localhost\Ubuntu\home\UsernameLinux\.local\share\mkcert" ✨
The local CA is now installed in the system trust store! ⚡️
Note: Firefox support is not available on your platform. ℹ️

6. Iniciando o ambiente

6.1 criar uma rede no docker para o proxy

docker network create proxy

6.2 subir todo o sistema

docker compose up -d

7. Ambientes disponíveis

7.1 Infraestrutura

- [Traefik](https://traefik.docker.localhost)
- [Portainer](https://portainer.docker.localhost)

7.2 Desenvolvimento - API

Endereços para acesso à API (backend) de cada municipio, utilizando a API LOCAL e o BANCO DE DADOS LOCAL - Franco da Rocha - API - DEV - Mairiporã - API - DEV - Itanhaém - API - DEV - Nilópolis - API - DEV - Ilhabela - API - DEV - Guarátinguetá - API - DEV - Arujá - API - DEV - Arujá - API - DEV - Itapecerica da Serra - API - DEV - Pindamonhagaba - API - DEV

7.3 Desenvolvimento - Portal Professor

Endereços para acesso ao portal do professor de cada municipio, utilizando o Portal do Professor LOCAL e a API LOCAL - Franco da Rocha - Prof - DEV - Mairiporã - Prof - DEV - Itanhaém - Prof - DEV - Nilópolis - Prof - DEV - Ilhabela - Prof - DEV - Guarátinguetá - Prof - DEV - Arujá - Prof - DEV - Arujá - Prof - DEV - Itapecerica da Serra - Prof - DEV - Pindamonhagaba - Prof - DEV

7.4 Produção - Portal Professor

Endereços para acesso ao portal do professor de cada municipio, utilizando o Portal do Professor LOCAL e a API DE PRODUÇÃO - Franco da Rocha - Prof - PROD - Mairiporã - Prof - PROD - Itanhaém - Prof - PROD - Nilópolis - Prof - PROD - Ilhabela - Prof - PROD - Guarátinguetá - Prof - PROD - Arujá - Prof - PROD - Arujá - Prof - PROD - Itapecerica da Serra - Prof - PROD - Pindamonhagaba - Prof - PROD


8. Bancos de dados de Desenvolvimento (Fake)

8.1 Fazer o download de cada dump do utilizando a url "/admin/dumps" em cada servidor de producao e colocar na pasta dumps

8.2 Descompactar cada dump para o banco de dados

gzip -d ./dumps/franco.sql.gz
gzip -d ./dumps/mairipora.sql.gz
gzip -d ./dumps/itanhaem.sql.gz
gzip -d ./dumps/nilopolis.sql.gz
gzip -d ./dumps/ilhabela.sql.gz
gzip -d ./dumps/guaratingueta.sql.gz
gzip -d ./dumps/aruja.sql.gz
gzip -d ./dumps/itapecerica.sql.gz

8.3 Importar cada dump para o banco de dados

docker exec -i devlocalhost.mariadb sh -c 'exec mariadb -uroot -ppassword --max-allowed-packet=1073741824 --database franco' < ./dumps/franco.sql
docker exec -i devlocalhost.mariadb sh -c 'exec mariadb -uroot -ppassword --max-allowed-packet=1073741824 --database mairipora' < ./dumps/mairipora.sql
docker exec -i devlocalhost.mariadb sh -c 'exec mariadb -uroot -ppassword --max-allowed-packet=1073741824 --database itanhaem' < ./dumps/itanhaem.sql
docker exec -i devlocalhost.mariadb sh -c 'exec mariadb -uroot -ppassword --max-allowed-packet=1073741824 --database nilopolis' < ./dumps/nilopolis.sql
docker exec -i devlocalhost.mariadb sh -c 'exec mariadb -uroot -ppassword --max-allowed-packet=1073741824 --database ilhabela' < ./dumps/ilhabela.sql
docker exec -i devlocalhost.mariadb sh -c 'exec mariadb -uroot -ppassword --max-allowed-packet=1073741824 --database guaratingueta' < ./dumps/guaratingueta.sql
docker exec -i devlocalhost.mariadb sh -c 'exec mariadb -uroot -ppassword --max-allowed-packet=1073741824 --database aruja' < ./dumps/aruja.sql
docker exec -i devlocalhost.mariadb sh -c 'exec mariadb -uroot -ppassword --max-allowed-packet=1073741824 --database itapecerica' < ./dumps/itapecerica.sql

dev.localhost's People

Contributors

ftravareli avatar feliciotravareli avatar murilo-sc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.