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

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

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.

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

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

A partir daqui, instale o aplicativo da web descompactando seu arquivo binário usando o seguinte comando:
sudo unzip ./baikal-0.9.2.zip

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

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.

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

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.

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.

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”.

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.

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”.

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.

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.

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.

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.”

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”.

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.




















