Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save rhuandevops/fe72dc889ca5f8d9b67daf1d2d627be2 to your computer and use it in GitHub Desktop.
Save rhuandevops/fe72dc889ca5f8d9b67daf1d2d627be2 to your computer and use it in GitHub Desktop.
[Tutorial] instalação do Novo SGA 2.0.8 + Painel no Debian server 11

Neste tutorial, utilizarei um servidor Debian 11 para instalar o Novo SGA 2.0.8. No entanto, realizei testes com a versão 10 do Debian e também com as versões 20.04 e 22.04 do Ubuntu Server, e o processo funcionou perfeitamente em todas essas versões.

O Novo SGA é um sistema de gerenciamento de filas de atendimento desenvolvido para locais que atendem ao público. Com o Novo SGA, é possível configurar serviços, definir prioridades e gerenciar atendentes de forma personalizada, adaptando o sistema às necessidades específicas de cada organização.

O Novo SGA é mais do que um sistema de controle de filas. Ao gerenciar o fluxo de atendimento, o sistema apresenta uma série de recursos que auxiliam na gerência e administração das unidades de atendimento. Fonte.

Github da aplicação clique aqui.

Site oficial do desenvolvedor clique aqui.

Pré-requisitos:

  • Apache 2;
  • MariaDB 10.5 ou Mysql;
  • PHP 7.4 e depêndencias. Abordaremos a instalação dos mesmos neste tutorial.

Nota: siga este tutorial em um ambiente de testes antes de aplicar em um ambiente de produção.

Instalação NovoSGA 2.0.8 no Debian server

Nota: é de suma importância que o servidor tenha uma quantidade razoável de memória RAM [ex.: acima de 2GB]

Atualizamos o sistema

apt update && apt upgrade -y

Alterar a data e hora manualmente

# alterar timezone
timedatectl set-timezone America/Sao_Paulo

Instale o servidor de banco de dados

Instale o MariaDB server 10.5

apt install mariadb-server -y

Habilite o serviço

systemctl status mariadb

systemctl start mariadb

systemctl enable mariadb

Script de inicialização segura do MariaDB

mysql_secure_installation

Algumas perguntas serão feitas, você pode responder conforme a orientação abaixo:

  • se você tem uma senha de root do banco de dados digite, se não, tecle Enter.
  • mudar para autenticação unix_socket: Yes
  • para definir uma nova senha digite: Yes
  • remover usuários anônimos: Yes
  • desativar o login remoto do root: Yes
  • remover o banco de dados teste: Yes
  • recarregar todas as tabelas: Yes

Por fim, Você deve receber algo como: All done! Thanks for using MariaDB.

Acesse o banco de dados [usuário root do banco]

mysql -u root -p

# digite o senha do root do banco de dados

Vamos criar o usuário de acesso ao banco de dados e o Banco novosgaDB

SHOW DATABASES;

CREATE DATABASE novosgaDB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

GRANT ALL PRIVILEGES ON novosgaDB.* TO 'usernovosga'@'localhost' IDENTIFIED BY 'SENHA1234';

FLUSH PRIVILEGES;

SHOW DATABASES;

SELECT user,host FROM mysql.user;

EXIT;

Nota: Adicionar os dados de acordo com seu banco de dados.

Instale PHP 7.4 e suas dependências

Acesse

cd /var/opt/

Instalação do repositório PHP e seus pacotes adicionais

apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list

apt install curl vim wget unzip nano -y

curl -fsSL  https://packages.sury.org/php/apt.gpg| gpg --dearmor -o /etc/apt/trusted.gpg.d/sury-keyring.gpg

apt update

Instalar o PHP e módulos/bibliotecas

apt install php7.4 -y

apt install php7.4-cli php7.4-common php7.4-mysql php7.4-zip php7.4-gd php7.4-mbstring php7.4-curl php7.4-xml php7.4-bcmath php7.4-intl php7.4-ldap php7.4-bz2 -y

Saber a versão do PHP instalada e módulos

php -v

php --modules

Instale o Apache

Ver se determinado programa está instalado e instalar Apache (precisa estar como root)

# Instale o Apache
apt install apache2

Vamos ativar um módulo do Apache para escrita, para isso digite

a2enmod env rewrite

# ver mods ativos
a2enmod

Verificar se as configurações do Apache estão Ok

apache2ctl configtest

Reinicie o Apache

systemctl restart apache2

Agora, vamos alterar o de configuração de segurança do Apache

cd /etc/apache2/

Crie uma cópia do arquivo

cp apache2.conf apache2.conf.bkp

Edite o arquivo

vim /etc/apache2/apache2.conf

Agora, vamos no arquivo de configuração do Apache

vim /etc/apache2/apache2.conf

Altere

Altere de None para All

Salve e saia do arquivo.

Iniciando a instalação do Novo SGA 2.0.8

Instale o Composer v2.5

apt update

cd ~

curl -sS https://getcomposer.org/installer -o composer-setup.php

HASH=`curl -sS https://composer.github.io/installer.sig`

echo $HASH

php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

# verificando a instalação (temos que receber sucessfully)
php composer-setup.php --install-dir=/usr/local/bin --filename=composer

# Test your installation by running this command
composer

Baixe os pacotes do Novo SGA 2.0.8

cd ~

# aplicação
composer create-project "novosga/novosga:2.0.8" ~/novosga -vvv

Vamos editar o arquivo composer.json

vim novosga/composer.json

Busque pelo parâmetro destacado na imagem abaixo e adicione o sinal de ^ ficando assim ^1.0 para podermos trabalhar com versões superiores do composer, veja

Untitled

Entrar na pasta do projeto e Atualizar via composer

cd novosga

composer update -vvv

Caso algumas perguntas sejam feitas, digite o seguinte:

  • Pergunta 1 digite: Y
  • Pergunta 2 digite: Y
  • Pergunta 3 digite: N

Sair da pasta e mover o projeto pra dentro da pasta root do apache

cd ..

mv novosga /var/www/html/

Vá pra /var/www/html/novosga, torne executável o bin/console e faça o clean-up e warm-up de cache

cd /var/www/html/novosga/

chmod +x bin/console

bin/console cache:clear --no-debug --no-warmup --env=prod -vv

bin/console cache:warmup --env=prod

Criando o .htaccess contendo configs de rewrite e conexão ao BD na pasta /var/www/html/novosga/public/

Adicionar os dados de acordo com seu banco de dados.

nano /var/www/html/novosga/public/.htaccess

# Insira este conteúdo abaixo ao arquivo

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
SetEnv APP_ENV prod
SetEnv LANGUAGE pt_BR
SetEnv DATABASE_URL mysql://usernovosga:SENHA1234@localhost:3306/novosgaDB

Export de variáveis de ambiente necessárias e comando install, estando dentro de /var/www/html/novosga/

cd /var/www/html/novosga/

export APP_ENV=prod LANGUAGE=pt_BR DATABASE_URL="mysql://usernovosga:SENHA1234@localhost:3306/novosgaDB"

Executar a instalação do serviço

bin/console novosga:install

Algumas perguntas serão feitas:

  • a primeira é sobre o username do administrador, tecle enter para manter admin.
  • a segunda pergunta é para definir uma senha para o admin, digite a senha e tecle enter.
  • para as próximas perguntas basta teclar Enter, você poderá definir as nomenclaturas via interface web da aplicação.

Dê a permissão de escrita, leitura e execução, além de alterar usuário e grupo dono

# acesse o diretório
cd /var/www/html/

# usuário e grupo
chown -R www-data:www-data .

# permissões arquivos
find . -type f -exec chmod 640 {} \;

# permissões diretórios
find . -type d -exec chmod 750 {} \;

Reinicie o apache para aplicar as configurações

systemctl restart apache2

Agora, acesse o php.ini

cd /etc/php/7.4/apache2/

# gere um copia
cp php.ini php.ini.bkp

# acesse o arquivo
vim php.ini

Alterar valores no PHP.ini (Altere as configurações do arquivo de acordo com esses parâmetros abaixo) Procure pelas linhas e altere os parâmetros

388 max_execution_time = 50
398 max_input_time = 60
405 max_input_vars = 5000
409 memory_limit = 256M
465 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
482 display_errors = Off
694 post_max_size = 8M
713 default_charset = "UTF-8"
837 file_uploads = On
846 upload_max_filesize = 5M
849 max_file_uploads = 20
962 date.timezone = 'America/Sao_Paulo'

Reinicie o Apache

systemctl restart apache2

Agora, acesse o navegador de internet para continuar a instalação do Novo SGA

Ex.: http://ip-servidor/novosga/public/login

  • User: admin
  • Senha: a que você acabou de definir

Neste passo, vamos instalar o Painel pra chamada de Senhas

Acesse,

# acessando o diretório pra download
cd /var/opt/

# Baixe o painel
wget https://github.com/novosga/panel-app/releases/download/v2.0.1/painel-web-2.0.1.zip

# descompactando o arquivo
unzip painel-web-2.0.1

# alterando o nome
mv painel-web-2.0.1 painel-web

Mova-o de local, movendo a pasta de diretório

mv painel-web /var/www/html/novosga/public/

cd /var/www/html/novosga/public/

Dê a permissão de escrita, leitura e execução, além de alterar usuário e grupo dono de Painel

# usuário e grupo
chown -R www-data:www-data .

# permissões arquivos
find . -type f -exec chmod 640 {} \;

# permissões diretórios
find . -type d -exec chmod 750 {} \;

Acesso ao Painel de chamamento de senhas

http://ip-servidor/novosga/public/painel-web/index.html

Após acesso ao painel, será preciso integrá-lo ao nosso SGA.

Agora, via navegador de internet acesse a console de gerenciamento do Novo SGA:

Ex.: http://ip-servidor/novosga/public/login

Untitled

Precisaremos criar o Token de API pra autenticar nosso painel de senhas, acesse Web API

Untitled

Untitled

Copie as credencias pra integração conforme imagem:

Untitled

Volte no Painel de Senhas e cole as credencias copiadas e insira os dados do server (Local onde o SGA está hospedado), username e password do administrador do SGA.

Fazendo a integração do painel com servidor

Definindo a unidade. Fazendo a integração do painel com servidor. Selecione a unidade e seus serviços disponibilizados.

Definindo a unidade

Agora, clique em voltar no canto superior esquerdo para visualizar o Painel configurado.

Resetar as senhas automaticamente via crontab

Caso precise você pode definir uma tarefa para zerar as senhas geradas no dia anterior. Isso é muito útil no dia a dia.

Dê permissão de execução do arquivo novosga com comando

cd /var/www/html/novosga/bin/

chmod 775 console

touch console novosga:reset

chmod +x /var/www/html/novosga/bin/console/novosga

ls -l

# teste o reset via terminal **Adicionar os dados de acordo com seu banco de dados.**

APP_ENV=prod LANGUAGE=pt_BR DATABASE_URL="mysql://usernovosga:SENHA1234@localhost:3306/novosgaDB" /var/www/html/novosga/bin/console novosga:reset

Cole ou digite o comando a seguir: Adicionar os dados de acordo com seu banco de dados.

crontab -e

# resetar as senhas do sga diariamente as 00h05

05 00 * * * APP_ENV=prod LANGUAGE=pt_BR DATABASE_URL="mysql://usernovosga:SENHA1234@localhost:3306/novosgaDB" /var/www/html/novosga/bin/console novosga:reset

Listar as tarefas agendadas

crontab -l

Agora na hora agendada as senhas serão zeradas.

Alterar logo da tela de login Novo SGA

Via FileZilla, acesse seu servidor e busque pelo caminho abaixo

/var/www/html/novosga/public/images/

Faça uma cópia do arquivo original e utilize o mesmo nome e extensão para o novo arquivo de imagem.

Reinicie o servidor

reboot

Então é isso, basta agora seguir com as configurações da aplicação via interface web. Espero ter te ajudado!

Acesse o navegador de internet para acessar o Novo SGA, ex.: http://ip-servidor/novosga/public/login

----

Galera fiz um vídeo tutorial de instalação do Novo SGA seguindo este passo a passo, vejam:

Vídeo 01: https://youtu.be/xwZDpG-4jQo?si=airSD1sDbtZfpSeF

Vídeo 02: https://youtu.be/vi0SZ80uOe8?si=zczDOrxPc7fxPOeG

@devttavares
Copy link

devttavares commented Aug 24, 2024

no meu deu o seguinte erro quando coloco esse comando: bin/console cache:warmup --env=prod

ERROR: Environment variable not found: "LANGUAGE".

resolvi assim: export LANGUAGE=pt_BR

se caso ocorrer o mesmo erro com os demais

@devttavares
Copy link

@rhuandevops no meu esta dando esse erro
Could not resolve host: mercure for "http://mercure/.well-known/mercure".
estou unsando um ubuntu 24.04 droplet
WhatsApp Image 2024-08-25 at 15 40 43

@rhuandevops
Copy link
Author

@rhuandevops no meu esta dando esse erro Could not resolve host: mercure for "http://mercure/.well-known/mercure". estou unsando um ubuntu 24.04 droplet WhatsApp Image 2024-08-25 at 15 40 43

Fala, @devttavares!

Você está usando uma versão recente do SGA, ela requer o Mercure para troca de mensagens. Você pode usá-lo via contêiner ou compilação a partir do código-fonte, por exemplo.

@devttavares
Copy link

devttavares commented Aug 26, 2024 via email

@adrivb
Copy link

adrivb commented Aug 28, 2024

@rhuandevops no

Oi @rhuandevops , consegui instalar todos sistema seguindo seus passos, mas travei na configuração

eu gerei o public_ID e o Client secret, conforme vc falou, mas quando vou em: http://192.168.1.184/novosga/public/painel-web/index.html#/settings e clico em server

eu preencho todos os dados e aparece a msg a seguir:

20240828-110513

o que pode ser isso? não é erro de digitação, pois tentei colocar um client secret errado e ele diz que tá inválido.

pesquisando o log do php quando clico em salvar, ele dá a seguinte msg:

[Wed Aug 28 11:44:53.412745 2024] [php7:error] [pid 40475:tid 40475] [client 192.168.1.184:54280] PHP Fatal error: require(): Failed opening required '/var/www/html/novosga/var/cache/prod/doctrine/orm/Proxies/__CG__AppEntityOAuthClient.php' (include_path='.:/usr/share/php') in /var/www/html/novosga/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 204, referer: http://192.168.1.184/novosga/public/painel-web/index.html

@rhuandevops
Copy link
Author

@rhuandevops no

Oi @rhuandevops , consegui instalar todos sistema seguindo seus passos, mas travei na configuração

eu gerei o public_ID e o Client secret, conforme vc falou, mas quando vou em: http://192.168.1.184/novosga/public/painel-web/index.html#/settings e clico em server

eu preencho todos os dados e aparece a msg a seguir:

20240828-110513

o que pode ser isso? não é erro de digitação, pois tentei colocar um client secret errado e ele diz que tá inválido.

pesquisando o log do php quando clico em salvar, ele dá a seguinte msg:

[Wed Aug 28 11:44:53.412745 2024] [php7:error] [pid 40475:tid 40475] [client 192.168.1.184:54280] PHP Fatal error: require(): Failed opening required '/var/www/html/novosga/var/cache/prod/doctrine/orm/Proxies/__CG__AppEntityOAuthClient.php' (include_path='.:/usr/share/php') in /var/www/html/novosga/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 204, referer: http://192.168.1.184/novosga/public/painel-web/index.html

Fala, @adrivb blz?

Veja se têm algum "espaço" no início ou final do client id, ou client secret. Também verifique se o usuário e senha admin estão corretos.

@rhuandevops
Copy link
Author

Olha eu aqui de novo, kkkk Não conecta com o touch triagem pra pessoa tirar senha sabe me informar, da sucess, porém não aparece serviço, departamentos e não faço menor ideia o que seria web hooks Se puder me ajudar agradeço Obter o Outlook para Androidhttps://aka.ms/AAb9ysg

________________________________ From: Rhuan Souza @.> Sent: Monday, August 26, 2024 1:43:48 PM To: rhuandevops @.> Cc: Mention @.>; Manual @.> Subject: Re: rhuandevops/[Tutorial] instalação do Novo SGA 2.0.8 + Painel no Debian 10 ou 11.md @rhuandevops commented on this gist.
________________________________ @rhuandevopshttps://github.com/rhuandevops no meu esta dando esse erro Could not resolve host: mercure for "http://mercure/.well-known/mercure". estou unsando um ubuntu 24.04 droplet [WhatsApp Image 2024-08-25 at 15 40 43] https://private-user-images.githubusercontent.com/105365673/361255410-90f94d35-608e-4b6c-83e5-761f8574c61a.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2ODk0MzAsIm5iZiI6MTcyNDY4OTEzMCwicGF0aCI6Ii8xMDUzNjU2NzMvMzYxMjU1NDEwLTkwZjk0ZDM1LTYwOGUtNGI2Yy04M2U1LTc2MWY4NTc0YzYxYS5qcGVnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjZUMTYxODUwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Mzg5Njc1ZmFkYjViZWU5YTQ1YTAzYWVmN2Q5YzYwNTUxNWEwMTZjNGE0ODIxZDVhZjgwNjYwZjY0YzY2MGI5ZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.irMyNf3zwUdrm3T4r_3fYwN9UOIPWZT2WyVht5vU-vM Fala, @devttavareshttps://github.com/devttavares! Você está usando uma versão recente do SGA, ela requer o Mercure para troca de mensagens. Você pode usá-lo via contêiner ou compilação a partir do código-fonte, por exemplo. — Reply to this email directly, view it on GitHubhttps://gist.github.com/rhuandevops/fe72dc889ca5f8d9b67daf1d2d627be2#gistcomment-5168075 or unsubscribehttps://github.com/notifications/unsubscribe-auth/AZD4BKNERAGUNY5ZAUK6F43ZTNSNLBFKMF2HI4TJMJ2XIZLTSKBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJDHNFZXJJDOMFWWLK3UNBZGKYLEL52HS4DFVRZXKYTKMVRXIX3UPFYGLK2HNFZXIQ3PNVWWK3TUUZ2G64DJMNZZDAVEOR4XAZNEM5UXG5FFOZQWY5LFVEYTEMBUGAYTONZRU52HE2LHM5SXFJTDOJSWC5DF. You are receiving this email because you were mentioned. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@devttavares como apresenta sucesso e não apresenta os serviços da unidade vinculada, pode ser um bug na triagem touch. Tente reiniciar o servidor e verifique as permissões de dono, execução, leitura e gravação da pasta e arquivos. Caso continue, baixe novamente e instale a mesma versão ou diferente da triagem touch.

@adrivb
Copy link

adrivb commented Aug 28, 2024

@rhuandevops no

Oi @rhuandevops , consegui instalar todos sistema seguindo seus passos, mas travei na configuração
eu gerei o public_ID e o Client secret, conforme vc falou, mas quando vou em: http://192.168.1.184/novosga/public/painel-web/index.html#/settings e clico em server
eu preencho todos os dados e aparece a msg a seguir:
20240828-110513
o que pode ser isso? não é erro de digitação, pois tentei colocar um client secret errado e ele diz que tá inválido.
pesquisando o log do php quando clico em salvar, ele dá a seguinte msg:
[Wed Aug 28 11:44:53.412745 2024] [php7:error] [pid 40475:tid 40475] [client 192.168.1.184:54280] PHP Fatal error: require(): Failed opening required '/var/www/html/novosga/var/cache/prod/doctrine/orm/Proxies/__CG__AppEntityOAuthClient.php' (include_path='.:/usr/share/php') in /var/www/html/novosga/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 204, referer: http://192.168.1.184/novosga/public/painel-web/index.html

Fala, @adrivb blz?

Veja se têm algum "espaço" no início ou final do client id, ou client secret. Também verifique se o usuário e senha admin estão corretos.

pior q tá certo, já testei tudo isso, criei um novo token e nada

no log do php ele dá o erro abaixo, parece alguma coisa de permissão. sempre q rodo essa página e dá o erro, ele coloca isso no log

[Wed Aug 28 16:11:09.453073 2024] [php7:error] [pid 40471:tid 40471] [client 192.168.1.184:36582] PHP Fatal error: require(): Failed opening required '/var/www/html/novosga/var/cache/prod/doctrine/orm/Proxies/__CG__AppEntityOAuthClient.php' (include_path='.:/usr/share/php') in /var/www/html/novosga/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 204, referer: http://192.168.1.184/novosga/public/painel-web/index.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment