Como instalar o Hubzilla no Ubuntu 16.04

Você está aqui:
Tempo estimado de leitura: 5 min

A Hubzilla é uma plataforma baseada na web de código aberto para criar sites conectados internamente. No ecossistema do Hubzilla, um servidor rodando o Hubzilla é chamado de “hub” e um grupo de múltiplos hubs é chamado de “grid”. Hubs dentro de uma grade se comunicam entre si para compartilhar informações, como identidades. Qualquer pessoa pode publicar conteúdo pública ou privadamente usando um “canal”, que pode ser uma pessoa, um blog ou um fórum. Ele usa um framework Zot baseado em JSON para implementar comunicações e serviços seguros e descentralizados. O Hubzilla está repleto de recursos como tópicos de discussão de rede social, armazenamento de arquivos em nuvem, calendário e contatos, hospedagem de página da Web com um sistema de gerenciamento de conteúdo, wiki e muito mais.

Pré-requisitos

  • Uma instância do servidor Vultr Ubuntu 16.04.
  • Um usuário sudo .
  • Um nome de domínio apontado para a instância.

Para este tutorial, usaremos hubzilla.example.com como o nome de domínio apontado para a instância do Vultr. Por favor, certifique-se de substituir todas as ocorrências do nome do domínio de exemplo com o atual.

Atualize seu sistema básico usando o guia Como atualizar o Ubuntu 16.04 . Depois que seu sistema tiver sido atualizado, prossiga para instalar as dependências.

Instalar o Nginx

O Nginx é um servidor da Web de produção para executar aplicativos da web.

Instale o Nginx.

sudo apt -y install nginx

Inicie o Nginx e ative-o para ser executado automaticamente no momento da inicialização.

sudo systemctl start nginx
sudo systemctl enable nginx

Instalar o PHP 7.1

O Hubzilla suporta versões do PHP acima de 5.6. Instalaremos o PHP 7.1 para garantir máxima velocidade, segurança e compatibilidade. Adicione o repositório do Ubuntu para o PHP 7.1.

sudo add-apt-repository --yes ppa:ondrej/php
sudo apt update

Instale o PHP versão 7.1 juntamente com os módulos requeridos pelo Hubzilla.

sudo apt -y install php7.1 php7.1-mysql php7.1-curl php7.1-json php7.1-cli php7.1-gd php7.1-xml php7.1-mbstring php7.1-fpm imagemagick php7.1-zip

Edite o arquivo de configuração do PHP.

sudo nano /etc/php/7.1/fpm/php.ini

Encontre a seguinte linha. Descomente-o e defina o fuso horário apropriado.

date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate time zone

Defina um limite de memória apropriado na próxima configuração. Configurando para -1 dar memória ilimitada disponível para um script. Além disso, aumente os limites máximos de upload de arquivos.

memory_limit = -1
upload_max_filesize = 100M
post_max_size = 100M

Em seguida, encontre a linha a seguir e defina seu valor 0 depois de descomentá-lo.

cgi.fix_pathinfo=0

Inicie php7.1-fpm e ative-o para iniciar automaticamente no momento da inicialização.

sudo systemctl restart php7.1-fpm
sudo systemctl enable php7.1-fpm

Crie um diretório de sessão e forneça permissões de gravação.

sudo mkdir /var/lib/php/session
sudo chmod -R 777 /var/lib/php/session

Agora, prossiga para a instalação do MariaDB.

Instale o MariaDB

MariaDB é uma bifurcação do MySQL. Adicione o repositório MariaDB ao seu sistema, pois o repositório padrão do Ubuntu contém uma versão mais antiga do MariaDB.

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'
sudo apt update

Instale o MariaDB.

sudo apt -y install mariadb-server

Forneça uma senha forte para o usuário root do MariaDB quando solicitado. Inicie o MariaDB e permita que ele inicie automaticamente no momento da inicialização.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Antes de configurar o banco de dados, você precisará proteger o MariaDB. Você pode protegê-lo executando omysql_secure_installation script.

sudo mysql_secure_installation

Você será perguntado pela senha atual do root do MariaDB. Forneça a senha que você definiu durante a instalação. Você será perguntado se deseja alterar a senha existente do usuário root do seu servidor MariaDB. Você pode ignorar a configuração de uma nova senha, pois já forneceu uma senha forte durante a instalação. Responda ” Y” a todas as outras perguntas feitas.

Faça o login no shell do MySQL como root.

mysql -u root -p

Forneça a senha para o usuário root do MariaDB efetuar login.

Execute as seguintes consultas para criar um banco de dados e um usuário do banco de dados para a instalação do Hubzilla.

CREATE DATABASE hubzilla_data;
CREATE USER 'hubzilla_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON hubzilla_data.* TO 'hubzilla_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Você pode substituir o nome do banco de dados hubzilla_data e o nome de usuário de hubzilla_user acordo com a sua escolha. Por favor, certifique-se de mudar StrongPassword para uma senha muito forte.

Instale o Hubzilla

Instale o Git. O Git é necessário para clonar o repositório Hubzilla do Github.

sudo apt -y install git

Alterne para o diretório raiz da web e clone o repositório Hubzilla.

cd /var/www
sudo git clone https://github.com/redmatrix/hubzilla.git hubzilla

Crie um novo diretório para armazenar dados do Hubzilla.

cd hubzilla
sudo mkdir -p "store/[data]/smarty3"
sudo chmod -R 777 store

Clone e instale os addons do Hubzilla.

sudo util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git hzaddons
sudo util/update_addon_repo hzaddons

Forneça a propriedade do diretório e dos arquivos ao usuário do Nginx.

sudo chown -R www-data:www-data /var/www/hubzilla

Crie um host virtual

É importante ter o SSL instalado em um site Hubzilla, já que logins e outros dados podem ser comprometidos se não forem criptografados. Neste tutorial, usaremos certificados SSL obtidos pela autoridade de certificação Let’s Encrypt.

Adicione o repositório do Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Instale o Certbot, que é o aplicativo cliente para o Let’s Encrypt CA.

sudo apt -y install certbot

Nota: Para obter certificados de Let’s Encrypt CA, o domínio para o qual os certificados serão gerados deve estar voltado para o servidor. Caso contrário, faça as alterações necessárias nos registros DNS do domínio e aguarde o DNS se propagar antes de fazer a solicitação de certificado novamente. O Certbot verifica a autoridade do domínio antes de fornecer os certificados.

Gere os certificados SSL.

sudo certbot certonly --webroot -w /var/www/html -d hubzilla.example.com

Os certificados gerados provavelmente serão armazenados em /etc/letsencrypt/live/hubzilla.example.com/. O certificado SSL será armazenado fullchain.pem e a chave privada será armazenada como privkey.pem.

Vamos Criptografar certificados expiram em 90 dias, portanto, é recomendável configurar a renovação automática dos certificados usando trabalhos Cron.

Abra o arquivo de trabalho cron.

sudo crontab -e

Adicione a seguinte linha no final do arquivo.

30 5 * * * /usr/bin/certbot renew --quiet

O cron job acima será executado todos os dias às 5:30 da manhã. Se o certificado estiver vencido, ele será automaticamente renovado.

Crie um novo arquivo de configuração para o Hubzilla Server.

sudo nano /etc/nginx/sites-available/hubzilla

Preencha o arquivo.

server {
  listen 80;
  server_name hubzilla.example.com;

  index index.php;
  root /var/www/hubzilla;
  rewrite ^ https://hubzilla.example.com$request_uri? permanent;
}

server {
  listen 443 ssl;
  server_name hubzilla.example.com;

  ssl on;
  ssl_certificate /etc/letsencrypt/live/hubzilla.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/hubzilla.example.com/privkey.pem;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
  ssl_prefer_server_ciphers on;

  fastcgi_param HTTPS on;

  index index.php;
  charset utf-8;
  root /var/www/hubzilla;
  access_log /var/log/nginx/hubzilla.log;
  client_max_body_size 20m;
  client_body_buffer_size 128k;

  location / {
    if ($is_args != "") {
        rewrite ^/(.*) /index.php?q=$uri&$args last;
    }
    rewrite ^/(.*) /index.php?q=$uri last;
  }

  location ^~ /.well-known/ {
    allow all;
    rewrite ^/(.*) /index.php?q=$uri&$args last;
  }

  location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|map|ttf|woff|woff2|svg)$ {
    expires 30d;
    try_files $uri /index.php?q=$uri&$args;
  }

  location ~* \.(tpl|md|tgz|log|out)$ {
    deny all;
  }

  location ~* \.php$ {

    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;    
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;    
    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  location ~ /\. {
    deny all;
  }

    location ~ /store {
        deny  all;
    }
}

Ative a configuração.

sudo ln -s /etc/nginx/sites-available/hubzilla /etc/nginx/sites-enabled/hubzilla

Teste a configuração do servidor da Web Nginx.

sudo nginx -t

Você verá a seguinte saída.

[email protected]:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Se você não vir erros na configuração, reinicie o Nginx para que a nova configuração tenha efeito.

sudo systemctl restart nginx

Empacotando

Navegue para https://hubzilla.example.comusar seu navegador favorito e você verá a página da web mostrando a interface “verificação do sistema”. Você verá que todos os requisitos passam na verificação do sistema. Na próxima interface, forneça os detalhes do banco de dados que você criou anteriormente. Em seguida, forneça o e-mail do administrador, o URL do site e o fuso horário. O Hubzilla agora está instalado no seu servidor, você pode continuar criando o usuário administrador com o e-mail do administrador usado durante a instalação.

Finalmente, você precisará configurar o cron para executar as tarefas agendadas a cada dez minutos.

Crie um novo arquivo para o trabalho cron.

sudo nano /etc/cron.d/hubzilla

Preencha o arquivo com o seguinte.

*/10 * * * * www-data cd /var/www/hubzilla; /usr/bin/php Zotlabs/Daemon/Master.php Cron

Reinicie o serviço cron.

sudo systemctl restart cron

Se você deseja criar um conjunto local de documentação, execute os seguintes comandos.

cd /var/www/hubzilla
util/importdoc
sudo chown www-data:www-data -R /var/www/hubzilla

O Hubzilla agora está instalado e configurado, você pode convidar seus amigos e usar a plataforma como desejar.

Esse artigo foi útil?
Não Gostei 0
Visualizações: 39

Ainda não Têm uma Conta?

Então Cadastre-se

Nome de Usuário*
E-mail*
Senha*
Confirmar Senha*

Já têm Uma Conta? Click Aqui.

Já tem uma Conta?

Ainda não tem Conta?