💾 Archived View for gmi.dioniso.com.br › gmi › hospedar.gmi captured on 2024-05-10 at 10:38:18. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Neste HOWTO mostrarei as etapas para hospedagem de um servidor Gemini enquanto se tem a Vivo como Internet Service Provider em sua casa. Deve funcionar para outros ISPs, diferindo na parte de configuração da página do roteador.
Este tutorial não cobre a configuração do firewall. Saiba mais:
---
[0] Requisitos para este tutorial
[1] Configuração do DDNS
[2] Configuração na página do roteador da Vivo
[3] Preparação do ambiente
---
Com um DDNS você pode associar um endereço IP dinâmico a um domínio.
Uso o DuckDNS para este fim:
1. Na página principal do DuckDNS, depois de ter logado, aparece domínios para registro. O DuckDNS possibilita a criação de 5 domínios.
Os domínios vão ser como: subdomínio.duckdns.org
2. Enfim, escolha qualquer palavra existente ou não existente para substituir o 'subdomínio' - desde que esteja disponível para uso. Após a escolha, clique em 'add domain'
3. Não precisamos associar um endereço IP até então - vamos criar um trabalho para o Cron mais para frente do tutorial que vai atribuir o endereço IP ao domínio de maneira constante.
1. Entre no endereço do seu roteador, comumente: 192.168.15.1
2. Coloque as credenciais e logue - vide informações em baixo do roteador para credenciais.
3. Em Rede Local na seção Redirecionar Portas crie uma regra como seguinte:
4. Clique em ADICIONAR
Método de configuração do ambiente Gemini no servidor conforme o tutorial presente em LandChad.net: (com algumas alterações)
Criar um usuário e logar com ele.
# useradd -m -s /bin/bash gemini # su -l gemini
Criar a estrutura de diretórios.
$ mkdir -p ~/capsule/{content,certificate,server}
Entrar na pasta de certificados e criar um certificado. Note: alterar example.duckdns.org para o seu domínio (use o DNS a DDNS, se tiver).
$ cd ~/capsule/certificate $ openssl req -new -subj "/CN=example.duckdns.org" -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -days 3650 -nodes -out cert.pem -keyout key.pem
Nesta etapa: o uso de software de hospedagem Gemini. No exemplo é usado o Agate, mas pode escolher outros:
Entrar na pasta server, baixar o binário do Agate (no exemplo: x86_64 v3.3.6) empacotado, descomprimir, alterar o nome do arquivo de saída e dar permissão de execução ao mesmo.
$ cd ~/capsule/server $ wget https://github.com/mbrubeck/agate/releases/download/v3.3.6/agate.x86_64-unknown-linux-gnu.gz $ gunzip agate.x86_64-unknown-linux-gnu.gz $ mv agate.x86_64-unknown-linux-gnu agate $ chmod u+x agate
Entrar na pasta capsule e criar um arquivo chamado agate.service, esse arquivo está instruindo a iniciação do servidor Agate - como serviço do systemd.
$ cd ~/capsule $ cat << EOF > agate.service [Unit] Description=agate After=network.target [Service] User=gemini Type=simple ExecStart=/home/gemini/capsule/server/agate --content /home/gemini/capsule/content --certs /home/gemini/capsule/certificate --hostname example.duckdns.org [Install] WantedBy=default.target EOF
Alterar example.duckdns.org para seu domínio.
$ sed -i s/example.duckdns.org/foobar.duckdns.org/g agate.service
Retornar ao ~ (home) e criar pasta para o DuckDNS. 'ls' para mostrar.
$ cd ~ $ mkdir duckdns $ ls capsule duckdns
Entrar na pasta duckdns e criar um script para atualização do endereço IP. Substitua as variáveis subDomain e token para os seus valores respectivos com algum editor de texto: o token é o mostrado na página principal do DuckDNS, depois de ter logado, e o subDomain é subdomínio que você configurou. Depois de tudo, dê uma permissão razoável ao arquivo (700).
$ cd duckdns $ cat << EOF > duck.sh #!/bin/sh # update ip address subDomain="" token="" echo url="https://www.duckdns.org/update?domains=${subDomain}&token=${token}&ip=" | curl -k -o ~/duckdns/duck.log -K - EOF $ chmod 700 duck.sh
Criar um trabalho ao Cron para cada 5 minutos na tabela do usuário gemini e retornar como root.
$ crontab -e
Criar um link simbólico do serviço Agate na pasta que aloca serviços do systemd e iniciar/habilitar o Agate. Também permitir tráfico pela porta 1965.
# ln -s /home/gemini/capsule/agate.service /etc/systemd/system/agate.service # systemctl enable --now agate # ufw allow 1965
A pasta ~/capsule/content do usuário gemini é o conteúdo fornecido pela sua cápsula.
Para começar, crie um arquivo index.gmi nesta pasta, isto é a página principal.
Para saber sobre a formatação de arquivo Gemini: