1 Introdução

Veja a Seção 2 para informações para instalar um novo Saci.

Veja a Seção 3 para dúvidas sobre mensagens de e-mail perdidas.

Veja a Seção 4 para informações para atualizar Saci pré-existente.

Veja a Seção 5 para informações sobre como otimizar o Saci.

2 Instalação

Definições

Para fins de simplificação, ao longo deste tutorial usaremos os seguintes termos:

  • A versão de instalação do saci será 4.6.0
  • A geração do saci.war se dará através da interface de desenvolvimento Eclipse devidamente com JDK7 em seu build path
  • $HOME: a pasta raiz do usuário no sistema operacional. Em sistemas Unix/Linux, um exemplo desse tipo de pasta seria "/home/usuarioexemplo"
  • $SOURCE: a pasta onde está o código-fonte do SACI, que é necessário para a instalação do sistema

Obtenha o SACI via código fonte

Para baixar o código fonte do saci basta preencher o formulário de contato, disponível no LINK e seguir as instuções contidas no formulário.

Instale o Tomcat9

  1. No terminal execute "sudo apt-get install tomcat9"
  2. Durante o processo de instalação do tomcat será instalado o OpenJdk como dependência.

Instale o banco de dados MySQL (MariaDB)

Para a instalação foi utilizada a versão mariadb-server 10.2.37.

  1. No terminal execute "sudo apt-get install mariadb-server"
  2. Crie um usuário e e um banco de dados para o Saci.

    create database NOME DO BANCO CHARACTER SET utf8 COLLATE utf8_general_ci;

    create user 'NOME DO USUARIO'@'localhost' identified by 'SENHA DO USUARIO';

    grant all on NOME DO BANCO.* to NOME DO USUARIO@localhost;

  3. Crie as tabelas que o saci usará, executando o comando abaixo na pasta do código fonte do Saci:

    Considerações: será instalada a versão 4.6.0, caso já possua uma versão instalada, utlize o manual de migração

    mysql --default-character-set=utf8 -u NOME DO USUARIO -p NOME DO BANCO < $SOURCE/src/main/sql/saci-schema-v460.sql

    • INITDATA-v460.sql deve ser ajustado conforme os dados da instituição

      mysql --default-character-set=utf8 -u NOME DO USUARIO -p NOME DO BANCO < $SOURCE/src/main/sql/INITDATA-v460.sql

      Obs: será necessário fornecer a senha recém cadastrada.

  4. O usuário administrador do SACI foi criado com e-mail "saci" e senha "saci"

Instale o ImageMagick

No momento da revisão deste documento, a versão mais recente era a 6.9.10-23

A ferramenta ImageMagick, usada para manipulação de imagens via linha de comando, geralmente vem instalada na maioria das distribuições Linux (ex: Ubuntu 20.04). Para se certificar de que o executável "convert" esteja disponível na linha de comando, execute no terminal "convert -version". Caso o comando não seja encontrado:

  1. No terminal execute "sudo apt-get install imagemagick"
  2. Forneça a senha de root
    1. Tente novamente verificar o comando "convert -version"

Instale o ExifTool

No momento da revisão deste documento, a versão mais recente era a 12.30

A ferramenta ExifTool, usada para manipulação de metadados EXIF em imagens, nem sempre vem instalada na maioria das distribuições Linux (ex: Ubuntu 20.04). Para se certificar de que o executável "exiftool" esteja disponível na linha de comando, execute no terminal "exiftool". Caso o comando não seja encontrado:

  1. No terminal execute "sudo apt-get install libimage-exiftool-perl"
  2. Forneça a senha de root
  3. Tente novamente verificar o comando "exiftool"

Pasta de dados

A pasta de dados do SACI é onde serão armazenadas todos os arquivos fornecidos ao sistema pelos usuários, tais como fotos, anexos, imagens escaneadas etc.

Essa pasta deve ser criada manualmente pelo administrador do sistema, e apenas uma vez. Futuras atualizações do sistema aproveitarão essa configuração inicial, e eventualmente serão dadas instruções para a criação de novas subpastas.

Crie a pasta de dados

Será assumido que a pasta de dados ficará no diretório /srv/saci-data.

Obs 1: pode ser qualquer localização, desde que o Apache Tomcat tenha permissão de escrita.

Obs 2: use o mesmo diretório informado na configuração saci_data_dir do arquivo saci.properties e do arquivo context.xml (veja a seção "Edite arquivo saci.properties")

  • mkdir -p /srv/saci-data
  • cd /srv/saci-data
  • mkdir anexo arquivo clipping clipping/pdfs clipping/imagens clipping/videos clipping/audios destaque atendimento grafica foto foto/thumbs imagens imagens/conteudo imagens/edicao instituicao solicitacao sonora temp usuarios veiculos job job/projeto job/diagramacao pauta
  • cp $SOURCE/src/main/webapp/resources/imagens/logo_*.png ./instituicao
  • chown tomcat.tomcat /srv/saci-data -R

Alteralção do diretório padrão de dados (opcional)

Edite o arquivo "$SOURCE/src/main/webapp/META-INF/context.xml" e "saci.properties" conforme o diretório de dados escolhido

Instale o Apache Maven

No momento da elaboraçao deste documento, a versão mais recente era a 3.6.3

  1. No terminal execute "sudo apt-get install maven"

Geração / compilação do pacote do saci, saci.war

Antes da geração do pacote faça as devidas alterações no arquivo saci.properties (veja a seção "Edite arquivo saci.properties")

Obs: A compilação poderá ser feita através da interface de desenvolvimento Eclipse ou outra qualquer. O importante é que o saci deverá ser compilado utilizando JDK7. A compilação pode ser feita ainda utilizando a interface de linha de comandos do maven, entretanto este deve estar configurado para utilizar JDK7. Para utilização do Maven em linha de comando é importante que seja alterado a variável de ambiente JAVA_HOME e PATH, conforme "$SOURCE/jdk7.sh", altere este arquivo conforme sua instalação JDK7, e execute source jdk7.sh (confira se o PATH e JAVA_HOME estão apontando para java 1.7) antes de executar o comando de geração de empacotamento do maven.

  • Empacotamento do saci
    • Na pasta do SACI, execute "mvn clean install" (isso pode levar vários minutos)
    • Com a compilação do saci, deverá ser gerado o artefato "$SOURCE/target/saci-4.6.0.war"

Implantação (deploy) o SACI.WAR

  • Renomeie o arquivo gerado de saci-4.6.0.war para saci.war
  • Mova o arquivo saci.war para o diretório de deploy do tomcat9
    • mv saci.war /var/lib/tomcat9/webapps
  • Reinicie o tomcat9
    • service restart tomcat9

Edite arquivo "saci.properties" e reinicie o Tomcat.

O arquivo é este: TOMCAT/webapps/saci/WEB-INF/classes/saci.properties.

  1. saci_db_username = USUARIO DO BANCO, CONFORME SEÇÃO ANTERIOR
  2. saci_db_password = SENHA DO BANCO, CONFORME SEÇÃO ANTERIOR
  3. saci_db_alias = TROQUE bdsaci PELO NOME DO BANCO, MANTENDO O RESTANTE
  4. saci_mail_server = SERVIDOR DA SUA EMPRESA -- RECOMENDADO: localhost

    Nota 1: é recomendado ter um servidor de e-mails independente no localhost (a máquina que hospeda o Saci) para evitar sobrerregar seu servidor de e-mails principal.

    Nota 2: o Saci não funciona com servidores com autenticação mandatória. Se precisar desse recurso ao usar um servidor externo, instale um postfix local com o perfil de "sistema satélite" e configure nele as informações de autenticação do servidor principal.

  5. saci_data_dir = PASTA DE DADOS

    Pasta onde os dados serão armazendos definida na Seção "Aponte o SACI para a pasta de dados".

  6. saci_url = Caminho (site) por onde o SACI poderá ser acessado. Exemplo: http://www.saci.ufpr.br
  7. Outras configurações podem ficar com seus valores padrão.
  8. Reinicie o Tomcat para que as alterações no saci.properties tenham efeito.

Pós instalação

  1. Insira um remetente válido na tela de instituição no seu primeiro login.
  2. Certifique-se que remetentes válidos em outros locais conforme cada castrado é feito.
  3. Altere as credenciais do usuário administrador

    E-mail: o valor padrão "saci" deve ser trocado para um e-mail válido

    Senha: escolha uma senha forte, com pelo menos 8 caracteres e composta por letras, números e caracteres especiais

    Veja a Seção 3 para detalhes.

3 Evitando perdas em e-mails.

Um problema comum em novas instalações do Saci é a falta de remetentes de e-mail válidos. Nesse caso, quando solicitações de divulgação ou atendimentos de imprensa são cadastrados com um destinatário inválido, a mensagem se perde e ninguém é notificado.

Para resolver este problema, defina apenas remetentes válidos no Saci. Caso o servidor de e-mails seja a máquina que hospeda o Saci (recomendado), certifique-se que este servidor redirecione as mensagens de erro para uma conta checada com regularidade.

Passos:

  1. Faça um levantamento dos remetentes cadastrados em: instiuição; unidades da instituição; gabaritos dos produtos que enviam e-mails de cada unidade.
  2. Envie um e-mail para esses destinatários de dentro do Saci, criando um atendimento de teste.

Se usar a própria máquina que hospeda o Saci para o envio de e-mails (recomendado), não se esqueça de:

  1. Registrar DNS do tipo MX para a máquina.
  2. Registrar DNS do tipo PTR (reverso).
  3. Registrar DNS do tipo TXT/SPF.
  4. Definir aliases (/etc/alias no caso do Postfix) redirecionando para uma conta externa checada com regularidade para todos os remetentes cadastrados.

Nota: atraso no envio de mensagens são esperados, devido a vários servidores de e-mails implementarem políticas de Greylist.

4 Atualização

Preparativos

  1. É RECOMENDÁVEL executar o processo de instalação em servidor que não seja de produção.
  2. É ALTAMENTE RECOMENDÁVEL efetuar um backup da sua base de dados.
  3. É RECOMENDÁVEL efetuar um backup da sua pasta de dados antes de começar.
  4. É SUGERIDO fazer um backup dos arquivos "saci.properties" e "context.xml" para sua conveniência.

Atualização da série 3 para a série 4

  1. Obtenha a última versão do saci.war e atulize conforme orientações da sessão, veja sessão (Geração / compilação do pacote do saci, saci.war)
  2. Em um console SQL, execute os comandos contidos no arquivo $SOURCE/src/main/sql/MIGRATION.sql, execute-o de acordo com a versão que deseja migrar. O arquivo apresenta comentários que indicam de onde partir de acordo com a versão que se deseja migrar.

Atualização na série 4

  1. Obtenha, compile e implante um novo Saci (veja a Seção 2 para detalhes).
  2. Ajuste o arquivo "saci.properties" (veja a Seção 2 para detalhes).
  3. Ajuste o arquivo "context.xml" (veja a Seção 2 para detalhes).
  4. Reinicie o Tomcat.
  5. Se estiver usando versão inferior a 4.0, você deve aplicar as mudanças estruturais no banco de dados que forem necessárias.
    1. Abra o arquivo MIGRATION_MAJOR.sql na pasta com o código fonte do saci ($SOURCE/src/main/sql).
    2. Localize a linha do arquivo cuja a versão é maior que sua versão atual do Saci (você pode ver a versão do Saci logando no sistema e clicando em sobre).
    3. Revise os comandos, removendo ou adaptando aqueles marcados como sendo para uma instalação específica do SACI (ex: SACI@UFSCar). Não prossiga sem ter certeza do que se tratam essas customizações e como elas podem afetar sua instalação.
    4. Copie desta linha em diante e cole em um prompt do banco de dados.
    5. Certifique-se que todos os comandos foram executados com sucesso.
    6. Obs: caso esteja migrando da penúltima para a última versão, é possível usar o arquivo MIGRATION_MINOR.sql ou MIGRATION_REVISION.sql, de acordo com o número da versão (minor pode ser usado de 3.0 para 3.1 e revision de 3.0 para 3.0.1).
  6. Se estiver usando a versão inferior a 4.0, você também deve criar as pastas manualmente. Novas pastas podem ser adicionadas, então é necessário rodar o mkdir da seção "Criando a pasta de dados" novamente.

5 Otimizações opcionais

Otimizar MySQL

O arquivo de configurações do MySQL geralmente se encontra em /etc/mysql/my.cnf. Após efetuar as alterações, lembre-se de reiniciar o servidor.

Para otimizações no uso do motor InnoDB, no item "[mysqld]" abaixo de "thread_cache_size = 8" adicione:

innodb_buffer_pool_size = 256M

innodb_file_format = barracuda

innodb_strict_mode = 1

ignore_builtin_innodb

plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so; innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so; innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so; innodb_cmpmem=ha_innodb_plugin.so; innodb_cmpmem_reset=ha_innodb_plugin.so

O valor de "innodb_buffer_pool_size" deve ser pelo menos o tamanho do banco de dados. Para que as modificações em "plugin-load" tenham o efeito esperado, a versão mínima necessária do MySQL é a 5.1.38 (recomendada 5.1.68 ou superior).

Apache Portable Runtime (APR)

APR é uma biblioteca de suporte para servidores web Apache. Quando ela é usada em conjunto ao Apache Tomcat, são observadas melhorias de desempenho significativas tanto nos tempos de início/desligamento do servidor quanto no fornecimento de páginas e acesso a disco. As intruções a seguir detalham o processo de instalação dessa biblioteca:

  • Instale a ferramenta "make" com o comando "sudo apt-get install make"
  • Acesse http://apr.apache.org/download.cgi e baixe código-fonte (atualmente o arquivo mais recente é o apr-1.4.5.tar.gz)
  • Descompacte com o comando "tar xvzf apr-1.4.5.tar.gz"
  • Na pasta descompactada, execute "sudo ./configure"
  • Execute "sudo make" para compilar a biblioteca
  • Execute "sudo make install" para instalar a biblioteca
  • Instalar o Tomcat Native
  • Caso o servidor Tomcat tenha sido instalado a partir do repositório, acesse http://tomcat.apache.org/download-native.cgi e baixe "tomcat-native-1.1.20.tar.gz". Caso o servidor tenha sido baixado diretamente no site oficial, esse arquivo se encontra em $CATALINA_HOME/bin com o nome "tomcat-native.tar.gz"
  • Descompacte com o comando "tar xzf tomcat-native.tar.gz"
  • Na pasta descompactada, acesse a subpasta "jni/native"
  • Execute "sudo ./configure --with-apr=/usr/local/apr --with-java-home=$JAVA_HOME" (certifique-se de que a variável "JAVA_HOME" esteja apontando para o local de instalação do JDK)
  • Execute "sudo make" para compilar a biblioteca
  • Execute "sudo make install" para instalar a biblioteca
  • Tornar bibliotecas visíveis para o sistema operacional e aplicações

    Nas configurações de perfil do computador (/etc/profile) ou do usuário que executará o Apache Tomcat ($HOME/.profile), adicione ao final as seguintes linhas:

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

    export CATALINA_OPTS=-Djava.library.path=/usr/local/apr/lib

  • Ativar suporte a APR no Apache Tomcat

    No arquivo de configuração do servidor ($CATALINA_HOME/conf/server.xml):

  • Altere a linha

    Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /

    para

    Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" /

  • Se algum conector possuir SSL ativado e houver conflitos com o APR, altere os parâmetros "SSLEnabled" de "true" para "false"