Com o Redmine é possível definir permissões e regras para cada usuário do sistema, logar e planejar o tempo gasto, customizar os campos relacionados as tarefas e projetos, acompanhar cada projeto através de gráficos Ganttt e calendário, definir status e porcentagem concluída de cada tarefa, gerar versões para um software definindo o roadmap de conclusão. Também é possível criar Wiki, Forum, News, repositórios, adicionar documentos entre outras funcionalidades.
Este artigo demonstra de forma simples como como instalar o Redmine no Slackware. Para que a aplicação fique online em modo de produção, será necessário habilitar um modulo para que o apache possa executar a linguagem Ruby, podem ser utilizados módulos como fast_cgi ou fcgid, porém para esta instalação foi escolhido o modulo passenger por sua maior simplicidade e eficiência.
- Ambiente de instalação
- Redmine 2019-12-20 v4.0.6
- Ruby 2.3.8 - versões suportadas 2.3, 2.4, 2.5, 2.6
- Rails 5.2.4.2
- Distribuição Slackware 14.2 x86_64
- Banco de dados MariaDB 10.0.38
O slackware 14.2 possui a versão do Ruby 2.2.10 disponível para instalação mas para este artigo será necessário usar uma versão mais recente. Comecemos com esta atualização, a versão utilizada foi a 2.3.8, veja as versões suportadas em ambiente de instalação, o download pode ser feito na página do projeto Ruby.
Caso esteja usando o Slackware Current provavelmente já terá uma versão mais recente instalada e poderá pular esta etapa. A instalação será demonstrada abaixo, para melhor entendimento do processo utilizado veja este artigo.
# Shell
cd /usr/local/src/ mkdir ruby cd ruby # Download do SlackBuild wget --passive-ftp ftp://ftp.slackware-brasil.com.br/slackware64-14.2/source/d/ruby/* # Download do Ruby wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.8.tar.gz chmod +x ruby.SlackBuild ./ruby.SlackBuild # Instale installpkg /tmp/ruby-2.3.8-x86_64-1.txz # Ou atualize upgradepkg /tmp/ruby-2.3.8-x86_64-1.txz
Agora entre no diretório onde deseja baixar o redmine, neste caso será utilizado /home/www. Baixe a última versão estável através do subversion, este é o método mais fácil de instalar e para atualizar basta executar o comando svn update dentro do diretório de instalação do redmine, outros métodos de download estão disponíveis no site do redmine.
$ Shell
cd /home/www svn co https://svn.redmine.org/redmine/branches/4.0-stable redmine-4.0 cd redmine-4.0
Banco de dados
Acesse o mysql.
$ Shell
mysql -u root -p
Crie o banco de dados e o usuário para para acessá-lo.
MySQL
CREATE DATABASE redmine CHARACTER SET utf8; CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'minha_senha'; GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
Dentro do diretório do redmine faça uma cópia do arquivo config/database.yml.example para config/database.yml.
$ Shell
cp config/database.yml.example config/database.yml
Acesse o arquivo config/database.yml e faça as alterações deixando conforme abaixo:
database.yml
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "minha_senha" encoding: utf8
Gems
O Redmine utiliza bundler para instalar as dependências gems. Gems são plugins ou bibliotecas que são instaladas para atender necessidades específicas . Instale o bundler.
# Shell
gem install bundler
Agora instale os gems requeridos pelo Redmine.
# Shell
bundle install --without development test
Gere a chave randômica utilizada pelo Ruby para armazenar os cookies da sessões.
# Shell
bundle exec rake generate_secret_token
Banco de dados
Dentro do diretório de redmine crie a estrutura do banco de dados com o comando:
# Shell
RAILS_ENV=production bundle exec rake db:migrate
Insira os dados padrões no banco de dados utilizando o comando abaixo, será solicitado a escolha da linguagem padrão.
# Shell
RAILS_ENV=production bundle exec rake redmine:load_default_data
Permissões do sistema de arquivos
A conta de usuário executando a aplicação deve ter permissão nos seguintes subdiretórios:
- files armazenamento de anexos
- log arquivo de log da aplicação em produção
- tmp e tmp/pdf crie estes diretórios se não existirem, são usados na geração de documentos pdf entre outras coisas
- public/public_assets plugins
As permissões serão concedidas para o usuário e grupo do apache já que é este que irá executar a aplicação. Lembre-se de utilizar o usuário root e de executar os comandos abaixo dentro do diretório do redmine.
# Shell
cd /home/www/redmine-4.0/ mkdir -p tmp tmp/pdf public/plugin_assets chown -R apache:apache files log tmp public/plugin_assets chmod -R 755 files log tmp public/plugin_assets
Testando a instalação
Se tudo correu normalmente o Redmine já estará instalado, e poderá ser testado utilizado o WEBrick web server. Utilize este método somente para efeito de testes, para ambiente de produção iremos instalar o módulo passenger para o apache. Execute o comando:
# Shell
bundle exec rails server webrick -e production
Agora acesse a url: http://localhost:3000 com login admin e senha admin, será solicitada a troca da senha. No menu Administração->Configurações podem ser personalizadas a maioria das opções da aplicação.
Habilitando o módulo passenger
Instale a gem passenger.
# Shell
gem install passenger
A instalação do módulo do apache é interativa, após executado o comando abaixo será perguntada a linguagem de programação que deseja habilitar, antes do final será requisitado que se edite o arquivo de configuração do apache, httpd.conf, e acrescente algumas linhas.
Se o local de instalação do apache for diferente do padrão da distribuição, por exemplo se o apache estiver instalado em /usr/local/apache, execute o comando passando o parâmetro --apxs2-path /usr/local/apache/bin/apxs.
# Shell
passenger-install-apache2-module # Deixe somente Ruby selecionada utilizando a barra de espaço para marcar/desmarcar as opções e então pressione enter Which languages are you interested in? Use space to select. If the menu doesn't display correctly, press '!' ‣ ⬢ Ruby ⬡ Python ⬡ Node.js ⬡ Meteor
Quando aparecer a mensagem abaixo:
# Shell
Almost there! Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /usr/lib64/ruby/gems/2.3.0/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/lib64/ruby/gems/2.3.0/gems/passenger-6.0.4 PassengerDefaultRuby /usr/bin/ruby </IfModule> After you restart Apache, you are ready to deploy any number of web applications on Apache, with a minimum amount of configuration! Press ENTER when you are done editing.
Abra um novo terminal e edite o apache acrescentando as linhas informadas acima no arquivo httpd.conf. Repare que se estiver usando versões de pacotes diferentes das utilizadas neste artigo estas linha irão diferir, portanto copie às a partir do resultado da execução do comando.
httpd.conf
LoadModule passenger_module /usr/lib64/ruby/gems/2.3.0/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/lib64/ruby/gems/2.3.0/gems/passenger-6.0.4 PassengerDefaultRuby /usr/bin/ruby </IfModule>
Reinicie o apache.
# Shell
apachectl restart
Agora retorne ao comando de compilação do módulo do apache e pressione enter para iniciar a validação e finalizar o script.
# Shell
Validating installation... * Checking whether this Passenger install is in PATH... ✓ * Checking whether there are no other Passenger installations... ✓ * Checking whether Apache is installed... ✓ * Checking whether the Passenger module is correctly configured in Apache... ✓ Everything looks good. :-)
Finalizando e testando
Existem diferentes formas de criar uma hospedagem virtual, do inglês virtual host, neste exemplo o acesso será realizado através do protocolo https na maquina local, não na rede.
Comece pelo o arquivo /etc/hosts, adicione um nome para ser utilizado na url do acesso.
/etc/hosts
127.0.0.1 redmine.lan.br
Configure o virtual host no apache:
httpd.conf
<VirtualHost redmine.lan.br:80> ServerName redmine.lan.br DocumentRoot /home/www/redmine-4.0/public/ Redirect / https://redmine.lan.br/ </VirtualHost> <VirtualHost redmine.lan.br:443> ServerName redmine.lan.br ServerAlias redmine.lan.br DocumentRoot /home/www/redmine-4.0/public/ <Directory "/home/www/redmine-4.0/public/"> SSLRequireSSL AllowOverride All Options Indexes MultiViews FollowSymLinks Require all granted </Directory> </VirtualHost>
Reinicie novamente o apache:
# Shell
apachectl restart
Acesse a url https://redmine.lan.br para ter acesso ao redmine.