Como criar um servidor de calendário com Baikal 1

Como criar um servidor de calendário com Baikal

Baikal é um software de calendário simples que permite sincronizar arquivos CardDAV e CalDAV online. Ao contrário do Google Calendar, ele sincroniza arquivos de calendário entre diferentes clientes e dispositivos de forma transparente. O aplicativo também suporta instâncias multiusuário, o que significa que é possível usar o Baikal com outras pessoas e compartilhar eventos do calendário como você faz no Google Agenda. Por exemplo, você pode hospedar um servidor Baikal pessoal para seus amigos e familiares, bem como para colegas.

Pré-requisitos

Antes de instalar o Baikal, mantenha os seguintes recursos prontos:

  • Uma máquina acessível de fora da sua rede doméstica: pode ser um servidor doméstico que tenha suas portas abertas ou um VPS dedicado que você está alugando no momento.
  • Um nome de domínio que aponta para sua máquina: Vou usar o nome “yetanotherbaikalserver.xyz” para este tutorial.
  • Acesso root à sua máquina: é para instalar os utilitários e programas necessários para o Baikal funcionar.

Considerando esses fatores, este tutorial se concentra apenas na instalação do Baikal em um Debian 11 VPS de DigitalOcean.

Instalando as dependências do Baikal

Comece criando uma conta de usuário separada em sua máquina para garantir que quaisquer erros e erros durante o processo não afetem todo o sistema:

sudo useradd -s /bin/bash -d /home/baikal -m -G sudo baikal
sudo passwd baikal
Instalar Baikal Linux 04 Criar novo usuário

Uma vez feito, mude para este novo usuário executando su baikal. A partir daqui, agora você pode instalar as dependências do Baikal executando o seguinte comando:

sudo apt install php php7.4-fpm php7.4-xml php-sqlite3 sqlite3 nginx certbot python3-certbot-nginx iptables iptables-persistent ufw net-tools unzip
Instalar dependências de instalação do Baikal Linux 05

Configurando o Firewall do Servidor

A configuração do firewall de sua máquina é necessária para garantir que seu servidor bloqueie quaisquer solicitações desnecessárias a ele. Para configurar isso, execute o seguinte conjunto de comandos:

sudo ufw allow 80
sudo ufw allow 443

Os comandos acima apenas abrirão as portas 80 e 443 para conexão externa e fecharão todas as portas de rede da máquina.

Instale o Baikal Linux 06 Habilite o firewall do servidor

Configurando o Nginx para Baikal

Embora seja possível usar uma variedade de servidores web para o Baikal, esta seção se concentra em configurá-lo junto com o Nginx.

Para começar, crie um arquivo de configuração do site em “/etc/nginx/sites-available”:

sudo nano/etc/nginx/sites-available/baikal
Instale o Baikal Linux 07 Crie a configuração do Nginx

A partir daí, escreva um server{} block dentro deste novo arquivo de configuração. O seguinte é uma configuração básica que deve funcionar imediatamente:

server {
  listen       80;
  server_name  yetanotherbaikalserver.xyz;
 
  root  /var/www/baikal/html;
  index index.php;
 
  rewrite ^/.well-known/caldav /dav.php redirect;
  rewrite ^/.well-known/carddav /dav.php redirect;
 
  charset utf-8;
 
  location ~ /(\.ht|Core|Specific|config) {
    deny all;
    return 404;
  }
 
  location ~ ^(.+\.php)(.*)$ {
    try_files $fastcgi_script_name =404;
    include        /etc/nginx/fastcgi_params;
    fastcgi_split_path_info  ^(.+\.php)(.*)$;
    fastcgi_pass   unix:/var/run/php/php-fpm.sock;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO        $fastcgi_path_info;
  }
}

A maneira como funciona é que o Nginx está ouvindo qualquer conexão na porta 80 para o nome do host “yetanotherbaikalserver.xyz”. Assim que um cliente se conecta, o servidor web redireciona essa conexão para o diretório raiz do Baikal, onde o Nginx abre um soquete UNIX para todos os arquivos .php, permitindo que eles sejam executados como um aplicativo web.

Obtendo e descompactando Baikal

Para baixar e instalar o Baikal em sua máquina, primeiro crie o diretório web raiz e mude para ele:

sudo mkdir -p /var/www/ && cd /var/www/

Em seguida, use wget para puxar a última versão binária do Baikal:

sudo wget https://github.com/sabre-io/Baikal/releases/download/0.9.2/baikal-0.9.2.zip
Instale o Baikal Linux 08 Baixe o arquivo binário

A partir daqui, instale o aplicativo da web descompactando seu arquivo binário usando o seguinte comando:

sudo unzip ./baikal-0.9.2.zip
Instale o arquivo binário de descompactação do Baikal Linux 09

Por fim, certifique-se de que o Nginx possa ler e gravar no diretório raiz do Baikal executando chown na pasta “baikal”:

sudo chown -R www-data:www-data ./baikal

Reiniciando o Nginx e instalando o SSL

Agora você pode habilitar seu arquivo de configuração Nginx criando um link simbólico para “/etc/nginx/sites-enabled”. Depois disso, você também precisa recarregar o Nginx para aplicar as novas configurações. Execute os seguintes comandos para executar essas duas ações:

sudo ln -s /etc/nginx/sites-available/baikal /etc/nginx/sites-enabled
sudo systemctl restart nginx
Instale o Baikal Linux 10 Reinicie o Nginx

Agora, habilite o SSL para o seu servidor usando Vamos criptografar ou instalando um manualmente através do OpenSSL. Para esta instância, estou usando o utilitário certbot do Let’s Encrypt.

Para instalar um certificado Let’s Encrypt, execute o seguinte comando:

certbot --nginx yetanotherbaikalserver.xyz

Finalizando a configuração do Baikal

Para finalizar o processo de configuração, abra seu navegador da web e acesse o site através do seu nome de domínio. No meu caso, vou para “yetanotherbaikalserver.xyz”.

Uma vez lá, o Baikal o redirecionará para a página de instalação do administrador, onde solicitará várias opções específicas do servidor que você precisa definir para sua instância.

Para começar, insira o fuso horário da sua máquina. Se você estiver usando um VPS, forneça o fuso horário desse VPS.

Instale as configurações padrão do Baikal Linux 11

Como meu VPS está em Cingapura, estou selecionando “Ásia/Cingapura”.

Instale o Baikal Linux 12 Definir fuso horário

Em seguida, selecione os recursos que você deseja para sua instância. Verifique CalDAV e CardDAV se desejar habilitar o suporte de calendário e catálogo de endereços para seu servidor.

Instale o Baikal Linux 13 Instale novos recursos

Você também tem a opção de fornecer um endereço de e-mail para sua instância. Para que isso funcione, seu servidor deve ser capaz de enviar mensagens SMTP por TLS. Estou deixando em branco para desativar o envio de e-mail.

Instalar Baikal Linux 14 Remover endereço de e-mail

Em seguida, selecione o formato de autenticação para sua instância. Na maioria dos casos, o formato Digest deve funcionar imediatamente. Você também precisa fornecer uma senha para a conta de administrador. Depois disso, você pode pressionar “Salvar alterações”.

Instale o método de autenticação Baikal Linux 15

Por fim, o Baikal solicitará as configurações do banco de dados da sua instância. Na maioria das vezes, você não precisa modificar nenhuma configuração nesta página. Pressione “Salvar alterações” novamente para concluir a instalação.

Instale as configurações de banco de dados padrão do Baikal Linux 16

Adicionando o primeiro usuário Baikal

Com o Baikal em execução, agora você pode criar seu primeiro usuário voltando ao painel do administrador e selecionando “Usuários e recursos”.

Instale o Baikal Linux 17 Selecione a guia Usuários

Na próxima tela, selecione “Adicionar usuário” para abrir uma página de criação simples onde você pode inserir os detalhes do novo usuário. Por exemplo, posso criar um novo usuário para mim.

Instalar Baikal Linux 18 Detalhes do Novo Usuário

Vinculando o Thunderbird ao Baikal

Agora que você tem uma conta de usuário Baikal, você pode vinculá-la a qualquer programa de agendamento que suporte CalDAV e CardDAV, como Thunderbird.

Para usar o Baikal com o Thunderbird, clique na opção “Calendário” na página inicial do cliente de e-mail.

Instale o Baikal Linux 19 Selecione o Calendário Thunderbird

Isso abrirá uma pequena janela onde o cliente solicitará a localização do seu arquivo de calendário. Selecione “Na Rede” e clique em “Avançar” para continuar.

Instale o Baikal Linux 20 Link Calendar To Network

Quando o Thunderbird solicitar o nome de usuário da sua conta Baikal, bem como o URL, preencha esses detalhes e pressione “Encontrar calendários”. Para a URL, forneça o endereço do seu servidor seguido por “/dav.php.”

Instalar Baikal Linux 21 Detalhes do servidor Thunderbird

Depois que o cliente obtiver todos os arquivos de calendário da sua conta Baikal, ele os listará e solicitará o “Tipo de calendário”. Selecione “CalDAV” e clique em “Assinar”.

Instale o Baikal Linux 22 Definir tipo de calendário

Seu servidor Baikal agora está pronto para uso.

perguntas frequentes

O Systemctl relata que o Nginx “falha ao ligar”.

Não! O erro “failed to bind” ocorre sempre que um programa não consegue controlar uma porta de rede específica. Nesse caso, o Nginx está tendo um conflito nas portas 80 ou 443 com um serviço existente em sua máquina. Você pode identificar qual programa está consumindo esse recurso executando este comando: netstat -tulpn | grep -e :80 -e :443.

Depois de saber qual programa está causando o erro, execute apt remove ou systemctl disable para parar o programa.

Por exemplo, o Apache é um programa comum que usa as mesmas portas do Nginx. Você pode desabilitar isso no Debian executando o seguinte comando: sudo systemctl disable apache2.

Meu servidor web ainda está mostrando a página de boas-vindas do Debian depois de configurar o Baikal. Como faço para corrigir isso?

Esse problema é provavelmente devido a arquivos de configuração Nginx conflitantes. Por padrão, o Debian fornece uma configuração básica do Nginx que inclui um arquivo de configuração em “/etc/nginx/sites-enabled”. Você precisa excluir esse arquivo específico executando este comando: sudo rm /etc/nginx/sites-enabled/default.

Não consigo sincronizar meu calendário e o site está relatando um “Erro DOM”.

Não. Um “Erro DOM” indica que o backend PHP do seu servidor Baikal não possui um módulo XML. Para corrigir isso, reinstale o PHP ou instale manualmente o módulo XML. Por exemplo, você pode executar o seguinte comando para instalar o módulo ausente no Debian: sudo apt install php7.4-xml.

Apoie o nosso trabalho ❤️

Se você gostou deste artigo, considere deixar uma gorjeta para nos ajudar a continuar publicando conteúdo de qualidade.

Pagamento seguro no PayPal
Moyens I/O Staff motivou você, dando conselhos sobre tecnologia, desenvolvimento pessoal, estilo de vida e estratégias que irão ajudá-lo.