From c3c5d0da82da9cdef625e3cd40e1147bc1cde1b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Toledo=20Goncalves?= Date: Tue, 16 Sep 2025 21:36:30 +0000 Subject: [PATCH] Adicionar README.md --- README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..dcb0862 --- /dev/null +++ b/README.md @@ -0,0 +1,49 @@ +Serviço de Sincronização de Configurações - Proxy-Sinc +Este repositório contém as configurações e os scripts de automação para o serviço proxy-sinc, desenhado para automatizar o controlo de versões de ficheiros de configuração de servidores Linux para um repositório Git (Gitea). + +O objetivo é criar um sistema robusto, auto-documentado e fácil de gerir para o backup e o histórico de alterações de configurações críticas como as do Nginx e do Fail2ban. + +Funcionalidades Principais Implementadas pelo Instalador +Gestão de Dependências: +Verifica e instala automaticamente as dependências necessárias (git, rsync) usando apt. + +Configuração Interativa e Segura: +Pede ao utilizador a URL do repositório, o nome de utilizador do Gitea e um Token de Acesso (que fica oculto durante a digitação) para a autenticação. + +A URL do repositório é reconfigurada para incluir as credenciais, permitindo que as operações git futuras (como o git push) sejam executadas de forma não-interativa. + +Identidade de Commit Automática: +O nome do autor dos commits é automaticamente definido como o hostname completo do servidor (ex: srvproxy001.itguys.com.br). + +O email do autor é gerado automaticamente a partir do hostname (ex: srvproxy001@itguys.com.br). + +Gestão Inteligente de SSL: +O script testa automaticamente a conexão com o Gitea. Se detetar um problema de certificado SSL (comum em ambientes internos), ele configura o repositório local para ignorar a verificação SSL, garantindo que a sincronização funcione. + +Registo de Deploy: +Na primeira instalação num novo servidor, o script cria um ficheiro de registo (_deployment_logs/hostname.md) no repositório, documentando quem (utilizador do Gitea) instalou o serviço e quando, criando uma trilha de auditoria. + +Instalação como Serviço systemd: +Gera e instala um serviço systemd (proxy-sinc.service) e um timer (proxy-sinc.timer). + +Esta abordagem é superior ao cron pois integra-se perfeitamente com o sistema de logs journald, permitindo uma gestão fácil com systemctl status, start, stop, etc. + +O timer está configurado para executar o script de sincronização a cada minuto. + +Sincronização Dinâmica de Ficheiros: +O script principal de sincronização (commit_configs.sh) agora lê os caminhos a serem versionados a partir de um ficheiro de configuração central (/etc/proxy-sinc/paths.conf). + +Isto permite que os administradores adicionem ou removam ficheiros e pastas para sincronização no futuro, simplesmente editando este ficheiro de texto, sem precisar de alterar o script. + +Auto-Versionamento: +O script commit_configs.sh foi desenhado para se incluir a si mesmo e a todos os seus ficheiros de configuração e de serviço (.service, .timer, man page, paths.conf) no repositório Git. Desta forma, qualquer alteração na própria automação também é versionada. + +Funcionalidade de Auto-Atualização: +Instala um novo comando no sistema, proxy-sinc-update. + +Quando executado, este comando baixa a versão mais recente do setup.sh a partir de uma URL pré-definida no repositório Gitea e executa-a, permitindo uma atualização fácil e centralizada de toda a automação. + +Documentação Integrada (man page): +Gera e instala uma página de manual (man proxy-sinc) no sistema. + +O manual explica o que o serviço faz, como o gerir, como o atualizar e, o mais importante, como adicionar novos caminhos de ficheiros para serem sincronizados, tornando a ferramenta fácil de usar para qualquer membro da equipa no futuro. \ No newline at end of file