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.
- 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.
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 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/
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
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 de None para All
Salve e saia do arquivo.
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
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
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
Precisaremos criar o Token de API pra autenticar nosso painel de senhas, acesse Web API
Copie as credencias pra integração conforme imagem:
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.
Definindo a unidade. Fazendo a integração do painel com servidor. Selecione a unidade e seus serviços disponibilizados.
Agora, clique em voltar no canto superior esquerdo para visualizar o Painel configurado.
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.
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
Primeiramente parabens Rhuan, excelente trabalho.
Gostaria de pedir uma ajuda sua se possivel. preciso muito alterar uma view. Sabe me dizer se simplesmente alterar no html direto ja altera no sistema ou preciso fazer algo a mais?