O SGA Livre é um ótimo Sistema de Gerenciamento de Atendimento, e o melhor: Livre.
Desenvolvido pela DATAPREV, o sistema é baseado em software livre e com ele é possível gerenciar o atendimento presencial de uma empresa ou organização, utilizando-se dos seus recursos.
O SGA fornece também relatórios e estatísticas do atendimento, fazendo com que se tenha informações sobre o tipo de atendimento realizado, tempo de atendimento, dados estes que podem ser agrupados ou individuais (por grupo de atendimento ou por atendente).
Abaixo demonstrarei os passos para instalação do sistema em um ambiente com fluxo pequeno de atendimento e outras fontes para mais informações. A instalação será feita no Sistema Operacional Debian 5 – Lenny (recomendada pelo sistema).

Pré-requisitos

A equipe de desenvolvimento recomenda que os serviços necessários para o funcionamento do SGA sejam instalados em servidores separados, ou seja, separando a aplicação web, o banco de dados e o controlador de painéis. Para esta instalação utilizaremos o mesmo servidor para a instalação de todos os componentes por ser uma instalação em um ambiente com fluxo pequeno de atendimento.
Os softwares necessários ao funcionamento do sistema são:
Postgresql versão 8.3
Apache versão 2
Openjdk-6-jre ou Sun-java6-jre
PHP versão 5.2.0
GD versão 2.0
Multibyte String
PDO versão 1.0.0
PDO PgSQL versão 1.0.2

Instalando Pré-requesitos de Software

No Debian Lenny vamos instalar os pacotes necessários:

SGALIVRE:~# apt-get install postgresql-8.3 postgresql-client-8.3 apache2 openjdk-6-jre php5 php5-cli libapache2-mod-php5 php5-gd php5-pgsql

Após a instalação dos pacotes vamos alterar a senha padrão do usuário postgres no banco de dados:

SGALIVRE:~# su -l postgres
postgres@SGALIVRE:~$ psql
postgres@SGALIVRE:~$ alter user postgres with password ‘defina_sua_senha’;

Obtendo o SGA Livre

Acesse a comunidade do SGA para ter acesso aos arquivos para download:

http://www.softwarepublico.gov.br/ver-comunidade?community_id=15719494

Para a instalação no servidor utilizaremos dois pacotes:

sgalivre-servidor-web_x.x.x.tgz
sgalivre-controladorpaineis_x.x.x.tgz

Instalando os Pacotes do Servidor

Após o download descompacte o sgalivre-servidor-web_x.x.x.tgz na pasta raiz do servidor web:

SGALIVRE:~# tar -xvzf sgalivre-servidor-web_1.0.3.tgz -C /var/www/

Altere a linha que contém magic_quotes_gpc de On para Off no arquivo de configurações do php.

SGALIVRE:~# vim /etc/php5/apache2/php.ini

Acesse, através do seu navegador web, o endereço: http://ip_do_seu_servidor/sgalivre/

Neste primeiro acesso, você verá a seguinte tela:

No próximo passo será exibida uma tela com os requisitos mínimos para a instalação do sistema. Não conformidades aparecerão destacadas em vermelho.


Na próxima tela vamos aceitar a licença:

Agora vamos informar os dados para a criação do banco de dados. Informe a senha que você setou na configuração inicial do Postgre:

Clique no botão Testar para testar o banco de dados. Se as informações de login estiverem corretas a seguinte mensagem será exibida:
Banco de Dados testado com sucesso!

Na próxima tela criaremos o usuário Administrador do Sistema:

Agora aplicaremos as configurações concluímos a instalação do servidor:

Se tudo ocrrer bem você deverá ver esta tela:

A partir de agora você já poderá acessar o sistema e realizar as configurações de acordo com suas necessidades.

Instalação do Controlador de Painéis

O Controlador de Painéis é uma aplicação Java centralizada que é responsável por enviar as senhas chamadas pelos  atendentes para os Painéis de Senhas das Unidades de Atendimento, não importando onde elas estejam. Basta ter uma conexão de rede disponível. O envio das senhas é extremanente leve e rápido, pois é constituído de um datagrama  (pacote) UDP bem curto. (texto do autor)

Descompacte o arquivo sgalivre-controladorpaineis_x.x.x.tgz

SGALIVRE:~# tar -xvzf sgalivre-controladorpaineis_1.0.0.tgz -C /etc/

Altere as configurações do arquivo /etc/controladorpaineis/server.conf onde estiver em vermelho para as configurações de acordo com seu servidor:

SGALIVRE:~# vim /etc/controladorpaineis/server.conf

# CONTROLADOR DE PAINEIS 1.0.0
# ARQUIVO DE CONFIGURAÃÃO DO CONTROLADOR DE PAINEIS
# server.conf
#

# Define a classe do Driver SQL a ser usado.
# O Driver deve ser adequado ao RDMBS em uso.
# PostgreSQL    -> org.postgresql.Driver
jdbcDriver = org.postgresql.Driver

# Define a URL JDBC
# Exemplo: jdbc:<rdbms>://<host>/<database>
jdbcUrl = jdbc:postgresql://127.0.0.1/sgalivre

# Define o usuario do SQL
jdbcUser = postgres

# Define o password do login SQL
jdbcPass = senha

# URL do Servidor Web
# Define a URL que irá retornar a lista de Unidades
# Essa URL é enviada para o painel, que a utiliza para obter a lista de unidades
# Não utilizar endereço de loopback (l27.0.0.1)
urlUnidades = http://10.0.0.2/sgalivre/painel/get_unidades.php

# URL do Servidor Web
# Define a URL que irá retornar a lista de Serviços
# Essa URL é enviada para o painel, que a utiliza para obter a lista de serviços a partir de uma unidade
# O token %unidade_id% é substituido no cliente pela unidade selecionada
# Não utilizar endereço localhost, nem 127.0.0.1
urlServicos = http://10.0.0.2/sgalivre/painel/get_servicos.php?id_uni=%id_unidade%

# Intervalo de consulta (em milésimos de segundo)
# Define o intervalo de consultas SQL em busca de novas senhas
# Um intervalo muito grande aumenta o tempo de resposta e pode permitir que uma quantidade grande de senhas
# acumule, causando um pico de processamento.
# Um intervalo muito pequeno pode causar impacto na performance do banco devido ao excesso de consultas.
intervaloConsulta = 100

# Tempo limite (em segundos) que um Painel será considerado como inativo caso nao faça contato.
# Os painéis enviam sinais de vida baseados nesse intervalo.
# Um painel continua recebendo mensagens até ser dado como inativo.
timeoutPainel = 600

# Tempo limite (em segundos) que um Painel será considerado inexistente, e será removido da memória do Controlador e do Banco de Dados.
# Esta tarefa permite a liberação de recursos da maquina executando o controlador de paineis e impede o acumulo de lixo na tabela.
# Caso o Painel de Senhas na unidade esteja ativo, ou seja, iniciado antes deste tempo limite não será removido.
# padrão: 345600 segundos (96 horas)
removerPaineisIntervalo = 345600

# Horario(HH:MM:SS) no formato 24 horas em que o controlador de paineis irá executar a tarefa de limpeza de paineis inativos
# Esta tarefa passa por todos paineis e remove aqueles que estao inativos por tempo superior a <removerPaineisIntervalo>
# à altamente recomendado que esta tarefa execute em um horário de ociosidade do sistema.
removerPaineisHora = 23:50:00

Após realizadas as devidas configurações, podemos executar o sistema. Antes vamos transformar o script controladorpaineis.sh em executável:

SGALIVRE:~# chmod +x /etc/controladorpaineis/controladorpaineis.sh
SGALIVRE:~# /etc/controladorpaineis/./controladorpaineis.sh

Pronto. O seu servidor está rodando.

Instalando o Painel de Senhas

O arquivo para instalação do painel de senhas é sgalivre-painel_x.x.x e pode ser instalado em uma máquina com Windows ou Linux.

Para instalação em uma máquina com Linux Debian basta digitar:

SGALIVRE:~# dpkg -i sgalivre-painel_x.x.x.deb

Para instalação em uma máquina Windows basta descompactar o arquivo sgalivre-painel_x.x.x.tgz e executar o arquivo painel.jar.

Após a instalação do painel basta configurá-lo com o IP do servidor e os serviços a serem chamados.