Analisando propostas

Whaticket

Publicado em 06 de Agosto de 2021 dias na TI e Programação

Sobre este projeto

Aberto

Implantação de produção básica (Ubuntu 18.04)
Todas as instruções abaixo assumem que você não está correndo como raiz, uma vez que dará um erro no marionete. Então vamos começar a criar um novo usuário e conceder privilégios sudo a ele:

adduser deploy
usermod -aG sudo deploy
Agora podemos fazer login com este novo usuário:

su deploy
Você precisará de dois subdomínios encaminhando para o seu VPS ip para seguir estas instruções. Usaremos para frontend e para retrodear no exemplo a seguir.myapp.mydomain.comapi.mydomain.com

Atualize todos os pacotes do sistema:

sudo apt update && sudo apt upgrade
Instalar o nó e confirmar que o comando do nó está disponível:

curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
npm -v
Instale o docker e adicione o usuário ao grupo docker:

sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt install docker-ce
sudo systemctl status docker
sudo usermod -Ag docker ${user}
su - ${user}
criar banco de dados mysql usando docker: nota: alterar mysql_database, mysql_password, mysql_user e mysql_root_password.


Docker run --name whaticketdb -e MYSQL_ROOT_PASSWORD=strongpassword -e MYSQL_DATABASE=whaticket -e MYSQL_USER=whaticket -e MYSQL_PASSWORD=whaticket --restart always -p 3306:3306 -d mariadb:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
Clone este repositório:

cd ~
git clone https://github.com/canove/whaticket whaticket
Crie arquivo backend .env e preencha com detalhes:

cp whaticket/backend/.env.example whaticket/backend/.env
nano whaticket/backend/.env
NODE_ENV=
Backend_url=https://api.mydomain.com      #use https here, we will add ssl latter
frontend_url=https://myapp.Mydomain.com  #use https here, we will add ssl latter, cors related!
proxy_port=443                            #use nginx reverse proxy port here, we will configure it latter
port=8080

db_host=localhost
db_dialect=
db_user=
db_pass=
db_name=

jwt_secret=3123123213123
jwt_refresh_secret=75756756756
instale dependências de marionetes:

sudo apt-get install -y libgbm-dev wget unzip fontconfig locales gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
Instale dependências de backend, construa aplicativo, execute migrações e sementes:

cd whaticket/backend
npm install
npm run build
npx sequelize db:migrate
npx sequelize db:seed:all
Comece com, você deve ver: no console. Bata na saída.npm startServer started on port...CTRL + C

Instale pm2 com sudo, e comece a voltar com ele:

sudo npm install -g pm2
pm2 start dist/server.js --name whaticket-backend
Faça o pm2 iniciar o afeter de partida automática:

pm2 startup ubuntu -u `YOUR_USERNAME`
Copie a última linha saída do comando previus e execute-a, é algo como:

sudo env path=\$path:/usr/bin pm2 startup ubuntu -u your_username --hp /home/your_usernam
vá para a pasta frontend e instale dependências:

cd ../Frontend
npm install
Editar arquivo .env e preenchê-lo com seu endereço backend, ele deve se parecer com este:

REACT_APP_BACKEND_URL = https://api.mydomain.com/
Criar aplicativo frontend:

npm run build
Inicie frontend com pm2 e salve a lista de processos pm2 para iniciar automaticamente após a reinicialização:

pm2 start server.js --name whaticket-frontend
pm2 save
Para verificar se está funcionando, corra, deve parecer:pm2 list

deploy@ubuntu-whats:~$ pm2 list
┌─────┬─────────────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name                    │ namespace  │ version │ mode    │ pid      │ uptime │ .    │ Status    │ cpu      │ mem      │ user    │ watching │
├─────┼─────────────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 1  │ whaticket-frontend      │ default    │ 0.1.0  │ fork    │ 179249  │ 12D    │ 0    │ online    │ 0.3%    │ 50.2mb  │ deploy  │ disabled │
│ 6  │ whaticket-backend      │ default    │ 1.0.0  │ fork    │ 179253  │ 12D    │ 15  │ online    │ 0.3%    │ 118.5mb  │ deploy  │ disabled │
└─────┴─────────────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
Instale nginx:

sudo apt install nginx
Remover o site padrão nginx:

sudo rm /etc/nginx/sites-enabled/default
Crie um novo site nginx para o aplicativo frontend:

sudo nano /etc/nginx/sites-available/whaticket-frontend
Edite e preencha-as com essas informações, mudando para a sua equivalente a:server_namemyapp.mydomain.com

server {
  server_name myapp.mydomain.com;

  location / {
    proxy_pass http://127.0.0.1:3333;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_cache_bypass $http_upgrade;
  }
}
Crie outro para retroceder a api, alterando para o seu equivalente a , e para o seu url de servidor de backend backend local:server_nameapi.mydomain.comproxy_pass

sudo cp /etc/nginx/sites-available/whaticket-frontend /etc/nginx/sites-available/whaticket-backend
sudo nano /etc/nginx/sites-available/whaticket-backend
server {
  server_name api.mydomain.com;

  location / {
    proxy_pass http://127.0.0.1:8080;
    ......
}
Crie um link simbólico para sites enalbe nginx:

sudo ln -s /etc/nginx/sites-available/whaticket-frontend /etc/nginx/sites-enabled
sudo ln -s /etc/nginx/sites-available/whaticket-backend /etc/nginx/sites-enabled
Por padrão, nginx limitar o tamanho do corpo a 1MB, o que não é suficiente para alguns uploads de mídia. Vamos alterá-lo para 20MB adicionando uma nova linha para confundir arquivo:

sudo nano /etc/nginx/nginx.conf
...
http {
    ...
    Client_max_body_size 20m; # handle bigger uploads
}
teste a configuração nginx e o servidor de reinicialização:

sudo nginx -t
sudo service nginx restart
agora, habilite o ssl (https) em seus sites para usar todos os recursos do aplicativo, como notificações e envio de mensagens de áudio. Uma maneira fácil de fazer isso é usando Certbot:

Instale o certbot:

sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install python-certbot-nginx
Habilite o SSL no nginx (Preencha / Aceite todas as informações solicitadas):

sudo certbot --nginx

Categoria TI e Programação
Subcategoria Outros
Tamanho do projeto Pequeño
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho o design
Disponibilidade requerida Conforme necessário

Prazo de Entrega: Não estabelecido

Habilidades necessárias