Publicado por Oliver em 06.09.202106.09.2021
Auto-hospedagem importantes de software e de dados em sua própria casa de servidor tem um monte de vantagens, mas pode ser uma tarefa assustadora para começar com. Eu tenho executado meu próprio servidor há alguns anos e descreverei as opções de hardware e software aqui. Este será um guia completo sobre como configurar seu próprio servidor pequeno.
por que você deve construir seu próprio servidor?
em alguns casos, você não deve. Alguns serviços muito caros, especializados ou difíceis de configurar (como e-mail) podem realmente ser melhores com um provedor externo. Se você usa apenas seus serviços muito raramente ou não está disposto a mergulhar em alguns dos conhecimentos necessários para hospedar, isso também pode não ser o lugar certo para você.
não se assuste, porém, hospedar software por conta própria nunca foi tão simples quanto é hoje e vem com muitas vantagens. Talvez o mais importante seja torná-lo um pouco mais independente. Os gigantes da tecnologia não têm um momento tão fácil para obter seus dados e algum problema na nuvem ou com seu provedor de Internet não o impede de acessar seus dados e serviços (localmente).
em um momento em que os serviços estão controlando partes cada vez mais importantes de sua vida (como um sistema doméstico inteligente), esse controle e independência podem ser inestimáveis. A longo prazo, pode até ser mais econômico a longo prazo. Claro que comprar hardware é um investimento, mas hospedar Terabytes de dados na nuvem também custará muito – para sempre.
por último, mas não menos importante, pode ser um projeto muito divertido que ajuda você a aprender muito sobre tecnologia e você está sempre livre para experimentar novos softwares. Há tanto código aberto & software livre lá fora!
o que você quer com seu servidor?
Antes de construir qualquer coisa, é importante perguntar a si mesmo: o que estou planejando fazer com este servidor? Se você deseja hospedar apenas alguns pequenos serviços localmente sem muitos dados, o resultado será muito diferente de um servidor de armazenamento completo.
se você só precisa de serviços locais eu recomendo na maioria dos casos para obter um Raspberry Pi mais recente e, possivelmente, um SSD externo para dados. Eles são baratos, eficientes em termos energéticos e fáceis de configurar. Eu descrevi meu pequeno servidor doméstico inteligente e hub com base no Raspberry Pi 4 em profundidade neste artigo. Adicionar um SSD para armazenamento de dados pequenos também é bastante fácil.
se você está procurando uma solução mais poderosa ou precisa armazenar muitos dados, recomendo usar uma plataforma diferente. Algumas pessoas usam um NAS ou hardware de servidor antigo (que pode funcionar muito bem), mas eu recomendo o hardware normal do cliente com foco em algumas características especiais.
- certifique-se de ter uma boa conexão de rede (1 gbit/s ou talvez até mesmo 10)
- Uso eficiente de energia, componentes e dependendo de onde você deseja colocar o servidor em silêncio queridos
- Obter uma CPU, que é poderoso o suficiente enquanto não desperdiçar energia em repouso
- Normalmente, você não precisa de uma placa gráfica
- Obter quantidade suficiente de memória RAM, isso pode ser muito importante para o seu server
- Obter uma placa-mãe e o caso que pode realizar suficiente Hdd & Ssd para armazenamento e tem boa refrigeração
- Obter qualidade de mídia de armazenamento. Eu usei muito a série WD red (apenas tenha cuidado com as versões SMR) e ouvi coisas boas sobre a série Seagate Ironwolf também
- verifique se seus componentes estão resfriados corretamente e tudo está bem conectado o suficiente. Você vai querer isso para a construção de & se esqueça de
- Obter uma qualidade de fonte de alimentação!
- eu pessoalmente teria evitar o hardware controladores RAID
Se você estiver olhando para criar um servidor de casa, considere a possibilidade de comprar através desses links de afiliado para apoiar o blog
Western Digital Vermelho Plus series
Seagate IronWolf Série
Raspberry Pi 4 de 8GB para um pequeno servidor
A editora alemã Heise tem alguns bons artigos sobre a construção de seu próprio servidor. Você também pode encontrar muitos artigos internacionais sobre isso. Meu aprendizado pessoal depois de construir várias versões do servidor é sempre planejar o que você precisa agora e no futuro muito próximo. Não construa para algo que você possa precisar em 10 anos. Até então, haverá melhor hardware disponível. A única exceção a isso pode ser o armazenamento. É sempre uma boa ideia ter algumas portas SATA restantes para que você possa adicionar mais armazenamento mais tarde.
a pilha de software
há um monte de software lá fora feito para servidores e cada escolha vai depender de suas preferências e caso de uso. A seguir está minha opinião pessoal depois de alguns anos trabalhando neste problema no meu tempo livre.
em primeiro lugar, vamos começar com o que eu não usaria em um servidor: Windows. As atualizações são difíceis, muito software não é suportado corretamente e é caro. Em vez disso, vá com uma solução Unix/Linux. Existem soluções completas para isso, como FreeNAS, OpenMediaVault ou Unraid mas Unraid custa dinheiro, e as outras soluções são também restringir o que você pode fazer. Eles podem ser uma boa escolha para você, mas eu decidi seguir a rota DIY e construir minha própria solução com base em tecnologia comprovada.
meu servidor doméstico está sendo executado em um sistema operacional de servidor Ubuntu mínimo (uma versão LTS) com acesso SSH para administração. Eu uso o sistema de arquivos ZFS para agrupar as unidades em um pool de big data, fornecendo funcionalidades como caches, instantâneos, RAID e backups simples. Neste pool, criei vários sistemas de arquivos para diferentes casos de uso, com alguns deles disponibilizados pela rede para outros clientes usarem. No servidor executa um daemon Docker e eu uso vários arquivos docker-compose para hospedar um conjunto de serviços como OpenHab, Grafana, Bitwarden/Vaultwarden e Nextcloud. Um proxy reverso (Traefik no momento) torna possível acessar serviços selecionados de qualquer lugar da web.
backups Externos são feitos através de unidades adicionais conectado via USB e regularmente rodado. Alguns scripts e um monitor de tempo de atividade estão verificando regularmente se tudo ainda está funcionando corretamente e enviando alarmes de outra forma. A instalação é principalmente automatizada e pode ser refeita em um novo hardware rapidamente (se os dados ainda estiverem disponíveis, é claro).
como configurar a instalação automatizada do servidor
Antes de realmente configurar o servidor, decidi automatizar esse processo. Isso torna mais fácil, rápido, menos propenso a erros e também atua como uma espécie de documentação. Ter uma plataforma base que possa ser configurada de forma confiável de forma rápida e fácil é uma grande vantagem. Desta forma, todo o resto, dados e os Serviços reais, podem ser configurados independentemente formar este sistema. Se eu quiser mudar para outra coisa, deve ser relativamente fácil.
para a automação, escolhi o Ansible. Ansible é um software que permite escrever os chamados playbooks: scripts curtos que definem quais etapas devem ser feitas para configurar seu servidor. Esses playbooks podem ser invocados com um comando simples e automatizarão todas as etapas manuais necessárias para o processo de configuração. Eu mesmo aprendi o Ansible ao configurar o servidor, então tenho certeza de que os playbooks poderiam ser melhores, mas vou compartilhá-los, bem como tudo o mais necessário para a configuração do servidor, via GitHub nas seguintes partes desta série.
executei esses scripts em uma VM algumas vezes antes da instalação real para garantir que tudo funcione como pretendido. Desde então, adicionei alguns novos recursos e retrabalhei partes dos existentes. A instalação real no servidor era bastante simples.
primeiro você precisa instalar o seu sistema operacional Linux favorito. Eu escolhi o Ubuntu Server LTS e o instalei por meio de um pendrive. O sistema é instalado em um SSD para tempos de inicialização mais rápidos. Após a instalação, configurei apenas a rede (recomendo um IP estático), habilitei o SSH e movi o servidor para sua posição física final. A partir de agora, nenhuma tela/teclado/mouse é necessário, ele pode ser gerenciado através da rede (a menos que algo dê errado).
as próximas etapas também são simples: Baixe os scripts necessários, instale o Ansible e execute os playbooks.
sudo apt install git ansiblegit clone https://github.com/OliverHi/zfs-homeserver.gitcd zfs-homeserver/ansibleansible-playbook setup_playbook.yml -K
isso executará um manual chamado setup_playbook.yml que irá configurar o servidor. Claro que você pode usar qualquer manual Ansible aqui, mas o meu é bastante simples e se parece com isso.
--- - name: "Setting up the home server" hosts: localhost connection: local # become root user, which is needed for most tasks become: yes become_user: root vars_files: - vars/main_vars.yml tasks: - name: Install the needed packages apt: name: - samba - software-properties-common #- linux-headers - dkms - zfsutils-linux - samba-vfs-modules - zfs-auto-snapshot state: latest cache_valid_time: 3600 - import_tasks: tasks/setupZFStask.yml - import_tasks: tasks/setupUsersTask.yml - import_tasks: tasks/setupFoldersTask.yml - import_tasks: tasks/setupSambaTask.yml - import_tasks: tasks/setupDocker.yml # and more tasks if needed
Basicamente, ele está trabalhando no servidor local, executando como root e usando variáveis que defini em um main_vars separado.arquivo yml. Ele começará instalando alguns pacotes que preciso para minha configuração e, em seguida, executará um conjunto de tarefas que escrevi para as diferentes partes da pilha de software. Ele irá configurar o sistema de arquivos ZFS, criar usuários e pastas, configurar o Docker e mais alguns. Você sempre pode personalizá-los ao seu gosto.
nas seguintes postagens desta série, explicarei como configurei o sistema de arquivos, Usuários, compartilhamentos samba, bem como o Docker e o proxy reverso Traefik. Em cada parte, também adicionarei os arquivos Ansible necessários para instalá-los automaticamente. Todo o código estará disponível na minha conta GitHub.
o próximo post sobre como configurar o ZFS e um sistema de backup pode ser encontrado aqui.