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

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE