Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • 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 estarei usando o servidor Debian 11 para instalar o Novo SGA 2.0.8, mas fiz testes na versão 10 do Debian server e também no Ubuntu server 20.04 e 22.04 e funcionou perfeitamente.

O Novo SGA é um sistema para gerenciamento de fila de atendimento em locais de atendimento ao público.

Com o sistema Novo SGA é possível configurar serviços, prioridades e atendentes da maneira que melhor se adapta às necessidades da 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

@rhuandevops
Copy link
Author

Consegui resolver, agora estou apanhando em outra parte. Triagem Touch, ele não imprime a senha quando clica. Tem alguma configuração específica?

Fala meu caro, blz?

Verifica o navegador de internet. Em testes, costumo usar o Firefox.
Outra coisa, veja se não tem alguma extensão dando conflito.

@rhuandevops
Copy link
Author

Parabéns pelo tutorial, está ótimo.

Sucesso!

@rhuandevops
Copy link
Author

Consegui resolver, agora estou apanhando em outra parte. Triagem Touch, ele não imprime a senha quando clica. Tem alguma configuração específica?

Mano eu acabei usando o Triagem Windows rodou suave, o web nao ta bom nao. https://github.com/novosga/triage-app/releases/tag/v2.0.1

Sortee ai

Ótima sugestão!

@KLSP
Copy link

KLSP commented Jun 21, 2023

Ótimo meus amigos!

Está rodando suave.

@WesleyEstrela
Copy link

Antes de pedir ajuda aqui já refiz a toda a instalação 5 vezes removendo tudo e refazendo, no ponto de acessar http://ip-servidor/novosga/public/login eu tenho a mensagem de ACESSO NEGADO, tentei como ultima alternativa dar permissão 777 na pasta public, porém navegando nesta pasta no terminal eu não vejo nada referente a /LOGIN na pasta /VAR/WWW/HTML/PUBLIC não existe pasta LOGIN nem algum tipo de LOGIN.PHP ou LOGIN.HTML.

@rhuandevops
Copy link
Author

Antes de pedir ajuda aqui já refiz a toda a instalação 5 vezes removendo tudo e refazendo, no ponto de acessar http://ip-servidor/novosga/public/login eu tenho a mensagem de ACESSO NEGADO, tentei como ultima alternativa dar permissão 777 na pasta public, porém navegando nesta pasta no terminal eu não vejo nada referente a /LOGIN na pasta /VAR/WWW/HTML/PUBLIC não existe pasta LOGIN nem algum tipo de LOGIN.PHP ou LOGIN.HTML.

Fala @WesleyEstrela blz?

Entendo, faça o seguinte:

  1. veja onde a pasta do projeto está alocada, no tutorial, a mesma é movida para dentro do diretório '/html'
# acesse o diretório
cd /var/www/html/
  1. verifique as permissões de leitura, escrita e gravação e aplique as alterações de propriedade 'usuário' e 'grupo' dono:
# permissões arquivos
find . -type f -exec chmod 640 {} \;

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

# usuário e grupo
chown -R www-data:www-data .
  1. por último, no arquivo de configuração do Apache 'apache2.conf', veja se ajustou o parâmetro da linha 174 para 'All'

vim /etc/apache2/apache2.conf

Espero que ajude! Deixe-me saber se conseguiu finalizar a instalação.

@marcelfreitas
Copy link

Estou tento esse erro.
Se puder ajudar
Screenshot Capture - 2024-01-17 - 12-32-17

@danmartinsisss
Copy link

Mano, tenta gerar novamente uma ClientID e um Client Secret

@marcelfreitas
Copy link

Fiz isso e nao deu certo. contudo resolvi de outra forma.
No entanto agora estou tendo problemas com o triage que nao esta mostrando os serviços e nao estou encontrando a versão 2.01 para baixar.

@danmartinsisss
Copy link

O Triage nao funciona bacana ai eu uso o app que tem na pasta ele funciona blz, o WEB nao rola.

@rhuandevops
Copy link
Author

rhuandevops commented Jan 19, 2024

Estou tento esse erro. Se puder ajudar

Fala @marcelfreitas blz?

As vezes esse erro se dá por conta de algum espaço no final do ClientID ou Client Secret na hora de copiá-los.

@rhuandevops
Copy link
Author

Fiz isso e nao deu certo. contudo resolvi de outra forma. No entanto agora estou tendo problemas com o triage que nao esta mostrando os serviços e nao estou encontrando a versão 2.01 para baixar.

@marcelfreitas, verifique se vinculou os serviços a unidade.

@WesleyEstrela
Copy link

Antes de pedir ajuda aqui já refiz a toda a instalação 5 vezes removendo tudo e reffazendo, no ponto de acesso http://ip-servidor/novosga/public/login eu tenho a mensagem de ACESSO NEGADO, tentei como última alternativa dar permissão 777 na pasta public, porém navegando nesta pasta no terminal eu não vejo nada referente a /LOGIN na pasta /VAR/WWW/HTML/PUBLIC não existe pasta LOGIN nem algum tipo de LOGIN.PHP ou LOGIN.HTML.

Fala@WesleyEstrela blz?

Entendo, faça o seguinte:

  1. veja onde a pasta do projeto está alocada, no tutorial, a mesma é movida para dentro do diretório '/html'
# acesse o diretório
cd /var/www/html/
  1. verifique as permissões de leitura, escrita e gravação e aplique as alterações de propriedade 'usuário' e 'grupo' dono:
# permissões arquivos
find . -type f -exec chmod 640 {} \;

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

# usuário e grupo
chown -R www-data:www-data .
  1. por último, no arquivo de configuração do Apache 'apache2.conf', veja se ajustou o parâmetro da linha 174 para 'All'

vim /etc/apache2/apache2.conf

Espero que ajude! Deixe-me saber se conseguiu finalizar a instalação.

Olá Rhuan, primeiramente obrigado pela resposta e desculpa a demora mas eu não desisti e estava focado em resolver o problema e esqueci de verificar aqui, infelizmente ainda continuo com mesmo erro após realizar o que me orientou, um outro detalhe é que minha instalação do apache não gerou a pasta HTML ficando os sites na pasta WWW, mesmo assim fiz o comandos dentro desta pasta, um detalhe é que já tenho uma aplicação rodando certinho no apache, trata-se do GLPI, mas o SGA eu não consigo rodar neste mesmo servidor.

@rhuandevops
Copy link
Author

@WesleyEstrela, entendo.

Acabei de subir dois vídeos sobre a instalação do Novo SGA. Adicionei os links no fim deste tutorial.

@WesleyEstrela
Copy link

WesleyEstrela commented Mar 21, 2024

@WesleyEstrela, entendo.

Acabei de subir dois vídeos sobre a instalação do Novo SGA. Adicionei os links no fim deste tutorial.

Obrigado pelo conteúdo Rhuan, mas infelizmente mesmo seguindo todo o tutorial assim como havia feito antes não consigo rodar esse sistema.
Vou deixar umas considerações:
1 - Eu não estou rodando no mesmo local onde é instalado, ele está em um servidor Ubuntu Server 22.04 na minha rede, eu tinha o sistema GLPI rodando e acabei perdendo todo o trabalho de tanto tentar resolver o SGA, mas desinstalei tudo Apache, PHP, Mysql e refiz somente a instalação do SGA.
2 - O erro agora é "Forbidden you don't have permission to access this resource" ao tentar fazer o primeiro acesso após instalação, não entendi a URL de primeiro acesso http://ip-servidor/novosga/public/login, não achei nada referente a "login" dentro da pasta public do SGA, nem pasta nem arquivos .PHP .HTML etc.
OBS: A página inicial do Apache carrega normalmente, as permissões do SGA foram setadas de acordo com o tutorial.

@rhuandevops
Copy link
Author

@WesleyEstrela, entendo.
Acabei de subir dois vídeos sobre a instalação do Novo SGA. Adicionei os links no fim deste tutorial.

Obrigado pelo conteúdo Rhuan, mas infelizmente mesmo seguindo todo o tutorial assim como havia feito antes não consigo rodar esse sistema. Vou deixar umas considerações: 1 - Eu não estou rodando no mesmo local onde é instalado, ele está em um servidor Ubuntu Server 22.04 na minha rede, eu tinha o sistema GLPI rodando e acabei perdendo todo o trabalho de tanto tentar resolver o SGA, mas desinstalei tudo Apache, PHP, Mysql e refiz somente a instalação do SGA. 2 - O erro agora é "Forbidden you don't have permission to access this resource" ao tentar fazer o primeiro acesso após instalação, não entendi a URL de primeiro acesso http://ip-servidor/novosga/public/login, não achei nada referente a "login" dentro da pasta public do SGA, nem pasta nem arquivos .PHP .HTML etc. OBS: A página inicial do Apache carrega normalmente, as permissões do SGA foram setadas de acordo com o tutorial.

@WesleyEstrela situação bem curiosa. Por acaso neste seu servidor tem instalado algum módulo de segurança? Ex.: SELinux? Firewall (ex.: porta)?
Veja se a aplicação tem as permissões necessárias.

Outra dica: tente executar a instalação em servidor zerado.

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