Guia de tecnologias

Instalar Restyaboard no CentOS 7

8 min read DevOps Atualizado 16 Oct 2025
Instalar Restyaboard no CentOS 7
Instalar Restyaboard no CentOS 7

Restyaboard é uma alternativa auto-hospedada ao Trello. Este guia passo a passo instala Restyaboard no CentOS 7: Nginx + PHP-FPM (socket), PostgreSQL 9.6, configuração de permissões e cron jobs. Siga cada passo, ajuste credenciais e prefira HTTPS em produção.

O que é este guia

Este tutorial mostra como instalar Restyaboard — um quadro Kanban gratuito e de código aberto — em um servidor CentOS 7. Aborda dependências, configuração do PHP-FPM via socket, PostgreSQL, ajustes do Nginx, permissões, cron jobs e validações pós-instalação.

Importante: o tutorial original usa PHP 7.0 e PostgreSQL 9.6. Essas versões estão corretas para este passo a passo, mas podem estar desatualizadas. Consulte a documentação do Restyaboard para compatibilidade com versões mais recentes.

Objetivo principal

Instalar e configurar uma instância funcional do Restyaboard em CentOS 7, pronta para uso interno ou pública (após configurar HTTPS e firewall).

Variantes de busca (intenção principal + variantes)

  • Instalar Restyaboard CentOS 7
  • Restyaboard self-hosted CentOS
  • Configurar Restyaboard Nginx PHP-FPM PostgreSQL
  • Guia Restyaboard instalação passo a passo
  • Configurar board Restya no servidor

Pré-requisitos

  • Servidor CentOS 7 mínimo (acesso root)
  • Acesso à internet para baixar pacotes e repositórios
  • Domínio (opcional, mas recomendado) para configurar server_name e HTTPS

Notas rápidas:

  • Este guia assume acesso como root ou sudo com privilégios de root.
  • Faça snapshot/backup antes em produção.

Definições rápidas

  • Restyaboard: aplicativo Kanban open-source.
  • PHP-FPM: FastCGI Process Manager para PHP (processa o PHP fora do servidor web).
  • Socket: arquivo local usado para comunicação entre Nginx e PHP-FPM (seguro e eficiente).
  • PostgreSQL: sistema de banco de dados relacional usado pelo Restyaboard.

Passo 1 - Instalar Nginx

Atualize pacotes e repositórios:

yum -y update

Instale o repositório EPEL e o Nginx (EPEL fornece pacotes extras para CentOS):

yum -y install epel-release
yum -y install nginx

Inicie o Nginx e habilite-o no boot:

systemctl start nginx systemctl enable nginx

Verifique que o Nginx está em execução (ex.: systemctl status nginx) e que a porta 80 está disponível.


Passo 2 - Instalar e configurar PHP-FPM com mbstring

Restyaboard, neste guia, usa PHP 7.0. Instalaremos o repositório Webtatic para obter pacotes PHP 7.0 em CentOS 7.

Adicione o repositório Webtatic:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Instale o PHP 7.0 com PHP-FPM e módulos necessários:

yum -y install php70w php70w-fpm php70w-devel php70w-cli php70w-curl php70w-pgsql php70w-mbstring php70w-ldap php70w-pear php70w-imap php70w-xml php70w-pecl-imagick ImageMagick

Configurações importantes do PHP-FPM:

  • Por padrão o PHP-FPM pode estar configurado para rodar como usuário apache. Mude para nginx para integração com Nginx.
  • Use socket em vez de porta TCP para comunicação Nginx ↔ PHP-FPM.

Edite o arquivo de pool padrão:

nano /etc/php-fpm.d/www.conf

Altere as linhas de usuário e grupo para nginx (caso estejam como apache):

; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

Mude listen para usar socket:

listen = 127.0.0.1:9000

para

listen = /run/php-fpm/php7.0-fpm.sock

Defina dono/grupo/mode do socket:

;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660

para

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Ajuste timezone e cgi.fix_pathinfo:

nano /etc/php.ini

No arquivo php.ini, defina a timezone conforme sua região, por exemplo:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Kolkata

Descomente e ajuste:

cgi.fix_pathinfo=0

Instale GeoIP e habilite a extensão:

yum -y install GeoIP-devel

No fim de /etc/php.ini adicione:

extension=geoip.so

Inicie e habilite o PHP-FPM, depois reinicie o Nginx:

systemctl start php-fpm systemctl enable php-fpm
systemctl restart nginx

Observação importante: se optar por versões de PHP mais recentes, verifique compatibilidade do Restyaboard e ajuste paths de socket accordingly.


Passo 3 - Instalar e configurar PostgreSQL

Adicione o repositório PostgreSQL 9.6 para CentOS 7:

rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Instale o servidor PostgreSQL:

yum -y install postgresql96-server postgresql96-contrib

Inicialize o cluster de dados:

/usr/pgsql-9.6/bin/postgresql96-setup initdb

Edite o pg_hba.conf para permitir autenticação MD5 (senha) nas conexões locais:

nano /var/lib/pgsql/9.6/data/pg_hba.conf

Substitua as linhas iniciais para que fiquem assim:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Inicie e habilite o PostgreSQL:

systemctl start postgresql-9.6 systemctl enable postgresql-9.6

Defina a senha do usuário postgres (sistema):

passwd postgres

Troque para o usuário postgres e crie um usuário e DB para o Restyaboard:

su - postgres
createuser rb_user

Acesse o shell do Postgres:

psql

No prompt do psql execute:

ALTER USER rb_user WITH ENCRYPTED password 'StrongPassword';
CREATE DATABASE rb_data OWNER rb_user ENCODING 'UTF8' TEMPLATE template0;

Saia do psql e retorne ao root:

\q
exit

Substitua StrongPassword por uma senha forte e segura. Guarde-a em cofre de senhas.


Passo 4 - Baixar Restyaboard

Baixe a versão pronta para deploy (no exemplo v0.4.2). Ajuste a URL para versões mais recentes, se desejar.

cd /usr/share/nginx/html wget https://github.com/RestyaPlatform/board/releases/download/v0.4.2/board-v0.4.2.zip

Se precisar instalar unzip:

yum -y install unzip

Extraia o pacote:

unzip board-v0.4.2.zip -d board

Importe o SQL inicial para a base de dados:

psql -d rb_data -f "/usr/share/nginx/html/board/sql/restyaboard_with_empty_data.sql" -U rb_user

Edite o arquivo de configuração do Restyaboard para atualizar credenciais do banco:

nano /usr/share/nginx/html/board/server/php/config.inc.php

Localize e atualize as definições de conexão:

define('R_DB_HOST', 'localhost');
define('R_DB_USER', 'restya');
define('R_DB_PASSWORD', 'hjVl2!rGd');
define('R_DB_NAME', 'restyaboard');
define('R_DB_PORT', 5432);

Altere para os valores do seu ambiente:

define('R_DB_HOST', 'localhost');
define('R_DB_USER', 'rb_user');
define('R_DB_PASSWORD', 'StrongPassword');
define('R_DB_NAME', 'rb_data');
define('R_DB_PORT', 5432);

Salve e feche.


Passo 5 - Configurar o bloco de servidor Nginx

Copie o arquivo de configuração do Restyaboard para o diretório do Nginx:

cp /usr/share/nginx/html/board/restyaboard.conf /etc/nginx/conf.d

Edite o arquivo:

nano /etc/nginx/conf.d/restyaboard.conf

No início, substitua default_server e defina server_name com seu domínio:

server {
        listen 80 default_server;
        server_name _;

para

server {
        listen 80;
        server_name board.yourdomain.com;

Ajuste os roots para apontar para a pasta onde extraiu o Restyaboard:

Substitua ocorrências de /usr/share/nginx/html por /usr/share/nginx/html/board e o root do cliente por /usr/share/nginx/html/board/client.

Altere o caminho do fastcgi_pass para o socket configurado no PHP-FPM:

fastcgi_pass    unix:/run/php/php7.0-fpm.sock;

para

fastcgi_pass    unix:/run/php-fpm/php7.0-fpm.sock;

Depois de editar, ajuste propriedade e permissões:

chown -R nginx:nginx /usr/share/nginx/html/board/
chmod -R go+w "/usr/share/nginx/html/board/media"
chmod -R go+w "/usr/share/nginx/html/board/client/img"
chmod -R go+w "/usr/share/nginx/html/board/tmp/cache"
chmod -R 0755 /usr/share/nginx/html/board/server/php/shell/*.sh

Adicione os cron jobs para tarefas agendadas do Restyaboard:

echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/instant_email_notification.sh" >> /var/spool/cron/root
echo "0 * * * * /usr/share/nginx/html/board/server/php/shell/periodic_email_notification.sh" >> /var/spool/cron/root
echo "*/30 * * * * /usr/share/nginx/html/board/server/php/shell/imap.sh" >> /var/spool/cron/root
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/webhook.sh" >> /var/spool/cron/root
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/card_due_notification.sh" >> /var/spool/cron/root

Importante: o tutorial original desliga o SELinux para permitir proxy e permissões. Evite desabilitar SELinux em produção sem avaliação. Como atalho temporário (sem reiniciar):

setenforce 0

Para desativar permanentemente (não recomendado sem entendimento):

nano /etc/selinux/config

Mude

SELINUX=enforcing

para

SELINUX=disabled

E reinicie Nginx:

systemctl restart nginx

Acesse no navegador:

http://board.yourdomain.com

Você deverá ver a tela de login padrão. Use admin / restya para o primeiro acesso (alterar a senha imediatamente).

Tela de login do Restyaboard

Após login, você verá o painel principal.

Painel do Restyaboard

Para criar um novo quadro (Board): clique na seta no canto esquerdo e escolha Add Board or Organization.

Criar novo quadro

Escolha um nome e um template para o quadro.

Escolher template para quadro

O quadro criado ficará similar a isto:

Novo quadro no Restyaboard

Para acessar o painel de administração: clique em Admin no canto inferior direito e depois em Settings na barra superior.

Acessar painel de administração


Validações e critérios de aceitação

Antes de considerar a instalação concluída, valide:

  • Página inicial do Nginx carrega sem erro (HTTP 200).
  • A página do Restyaboard carrega e permite login com admin/restya.
  • Foi possível criar um board e adicionar um cartão.
  • Diretórios de mídia, tmp e client/img possuem permissão de escrita para Nginx.
  • Cron jobs foram gravados em /var/spool/cron/root e estão sendo executados conforme esperado.
  • Conexão com PostgreSQL funciona e a aplicação realiza queries sem erro.

Teste rápido de backup do DB (aceitação):

pg_dump -U rb_user -h localhost -Fc rb_data > /root/rb_data-$(date +%F).dump

Backup e recuperação (mini-SOP)

  1. Fazer backup do banco:
pg_dump -U rb_user -h localhost -Fc rb_data > /root/rb_data-YYYY-MM-DD.dump
  1. Fazer backup dos arquivos do Restyaboard:
tar -czf /root/restyaboard-files-YYYY-MM-DD.tar.gz /usr/share/nginx/html/board
  1. Para restaurar banco:
pg_restore -U rb_user -h localhost -d rb_data /root/rb_data-YYYY-MM-DD.dump

Testar restauração em ambiente de staging antes de aplicar em produção.


Segurança e hardening (recomendações)

  • Habilite HTTPS com certificados válidos (Let’s Encrypt). Proteja o painel de administração com HTTPS e HSTS.
  • Não desative SELinux sem avaliar; prefira ajustar políticas ou labels para permitir acesso do Nginx/PHP-FPM.
  • Use firewall (firewalld/iptables) para fechar portas não usadas; abra apenas 80/443 e 22 (com restrições).
  • Troque senhas padrão (admin/restya) imediatamente após o primeiro login.
  • Restrinja acesso ao PostgreSQL via host e firewall; não exponha 5432 publicamente.
  • Considere monitoramento (logs, alertas) e backups automatizados.
  • Execute updates regulares do sistema e das dependências.

Quando NÃO usar Restyaboard (contraexemplos)

  • Se precisa de alta disponibilidade complexa com cluster de DB prontamente configurado, e você não tem experiência em operar PostgreSQL em HA.
  • Se depende de integração nativa com serviços proprietários que Restyaboard não oferece. Avalie alternativas ou desenvolva conectores.

Alternativas auto-hospedadas

  • Wekan — outra opção Kanban open-source.
  • Taiga — para gestão ágil/issue tracking com mais features de backlog.

Escolha conforme necessidades (simplicidade vs. funcionalidades avançadas).


Checklist por função

  • Operações/DevOps:

    • Verificar permissões de arquivo e dono (nginx:nginx).
    • Configurar e renovar certificados TLS.
    • Automatizar backups e monitoramento.
  • Administrador do aplicativo:

    • Criar contas, templates e políticas de boards.
    • Configurar notificações e integrações IMAP/Webhooks.
  • Usuário final:

    • Validar criação de board, cartões e anexos.
    • Testar notificações por e-mail e IMAP.

Glossário (1 linha cada)

  • Restyaboard: aplicação Kanban open-source self-hosted.
  • PHP-FPM: gerenciador de processos PHP para executar scripts via FastCGI.
  • Nginx: servidor web leve e reverso proxy usado para servir o Restyaboard.
  • PostgreSQL: banco de dados relacional usado para armazenar dados do aplicativo.
  • SELinux: sistema de controle de acesso obrigatório no Linux.

Dicas de migração e compatibilidade

  • O tutorial usa PHP 7.0 e PostgreSQL 9.6. Versões mais recentes do PHP/PostgreSQL podem funcionar, mas valide no ambiente de teste.
  • Ao atualizar Restyaboard, sempre leia as notas de versão e faça backup do DB e arquivos antes.

Resumo final

Restyaboard agora deve estar instalado e acessível no domínio configurado. Teste o fluxo básico (login, criar board, upload de imagens) e implemente HTTPS e backups antes de colocar em produção. Verifique permissões, cron jobs e a conexão com PostgreSQL.

Notas finais:

  • Alterar senhas padrão e habilitar TLS são passos essenciais após a instalação.
  • Evite desabilitar SELinux em ambientes sensíveis; prefira políticas específicas.

Extras úteis

Fact box — números e caminhos chave:

  • PHP: 7.0 (exemplo deste guia)
  • PostgreSQL: 9.6
  • Socket PHP-FPM: /run/php-fpm/php7.0-fpm.sock
  • Diretório do app: /usr/share/nginx/html/board
  • Porta HTTP padrão: 80; PostgreSQL: 5432

Aceitação rápida (checklist):

  • Nginx responde
  • Login admin
  • Criar board
  • Upload de imagens
  • Cron jobs ativos

Boa instalação e operação. Se precisar, posso ajudar a gerar a configuração do Nginx otimizada com HTTPS (Let’s Encrypt) e regras de segurança adicionais.

Autor
Edição

Materiais semelhantes

Criar Domínio Autenticação WiKID
Segurança de TI

Criar Domínio Autenticação WiKID

Abrir e editar ODT no navegador
Guias

Abrir e editar ODT no navegador

Transforme o Menu Iniciar do Windows 11 em visual ChromeOS
Tutoriais

Transforme o Menu Iniciar do Windows 11 em visual ChromeOS

Replicação MySQL com SSL no CentOS 5.4
MySQL

Replicação MySQL com SSL no CentOS 5.4

Como abrir AppImage no Linux
Linux

Como abrir AppImage no Linux

Ativar Do Not Track: guia prático de privacidade
Privacidade

Ativar Do Not Track: guia prático de privacidade