het bouwen van een volledige home server-de basics

gepubliceerd door Oliver op 06.09.202106.09.2021

Self-hosting belangrijke software en gegevens op uw eigen home server heeft veel voordelen, maar kan een ontmoedigende taak om te beginnen met. Ik heb mijn eigen server voor een paar jaar nu en zal de keuzes in hardware en software hier te beschrijven. Dit zal een volledige gids over het opzetten van uw eigen kleine server.

waarom zou u uw eigen server moeten bouwen?

in sommige gevallen moet u dat niet doen. Sommige zeer dure, gespecialiseerde of moeilijk te configureren (zoals e-mail) diensten zou eigenlijk beter van met een externe provider. Als u slechts zeer zelden gebruik maakt van uw diensten of helemaal niet bereid bent om te duiken in een deel van de kennis die nodig is voor het hosten van dit kan ook niet de juiste plek voor u.

wees echter niet bang, hosting software op uw eigen is nog nooit zo eenvoudig geweest als het nu is en het komt met een heleboel voordelen. Misschien het belangrijkste maakt het je een beetje onafhankelijker. Techreuzen hebben niet zo ‘ n gemakkelijke tijd om uw gegevens te krijgen en een probleem in de cloud of met uw internetprovider weerhoudt u niet van toegang tot uw gegevens en diensten (lokaal).

in een tijd waarin diensten steeds belangrijker delen van uw leven beheersen (zoals een smart home-systeem) kunnen deze controle en onafhankelijkheid van onschatbare waarde zijn. Op de lange termijn kan het zelfs kosteneffectiever zijn op de lange termijn. Zeker het kopen van hardware is een investering, maar het hosten van Terabytes aan gegevens in de cloud kost je ook veel-voor altijd.

Last but not least kan het een erg leuk project zijn dat u helpt veel over technologie te leren en u bent altijd vrij om nieuwe software uit te proberen. Er is zoveel open source & vrije software!

wat wilt u met uw server?

alvorens iets te bouwen is het belangrijk om jezelf af te vragen: wat ben ik van plan met deze server te doen? Als u op zoek bent naar een paar kleine diensten lokaal hosten zonder veel gegevens het resultaat zal er heel anders uitzien dan een volledige storage server.

Als u alleen lokale diensten nodig hebt, raad ik in de meeste gevallen aan om een nieuwere Raspberry Pi en mogelijk een externe SSD voor gegevens te krijgen. Ze zijn goedkoop, energiezuinig en eenvoudig op te zetten. Ik heb beschreven mijn kleine smart home server en hub op basis van de Raspberry Pi 4 in de diepte in dit artikel. Het toevoegen van een SSD voor kleine gegevensopslag is ook vrij eenvoudig.

als u op zoek bent naar een krachtigere oplossing of veel gegevens wilt opslaan, raad ik u aan een ander platform te gebruiken. Sommige mensen gebruiken een NAS-of oude server-hardware (die zeer goed kan werken), maar ik adviseer normale klant-hardware met een focus op een aantal speciale kenmerken.

  • Zorg voor een goed netwerk verbinding (1Gbit/s of misschien zelfs 10)
  • Gebruik van energie-efficiënte componenten en, afhankelijk van waar u wilt plaatsen de server silent ones
  • een CPU die krachtig genoeg is terwijl het niet verspillen van energie in de inactieve
  • Meestal hoeft u niet een grafische kaart
  • genoeg RAM, dit kan heel belangrijk voor je server
  • Voor een moederbord en case dat kan genoeg harde Schijven & Ssd ‘ s voor de opslag en heeft een goede koeling
  • Voor de kwaliteit van de opslag media. Ik heb de WD red-serie veel gebruikt (wees voorzichtig met de SMR-versies) en heb ook goede dingen gehoord over de Seagate Ironwolf-serie
  • zorg ervoor dat uw componenten goed worden gekoeld en dat alles goed genoeg is aangesloten. U wilt dat dit wordt gebouwd & vergeet
  • haal een kwaliteit voedingsadapter!
  • ik zou persoonlijk hardware RAID controllers

vermijden als u op zoek bent naar een thuisserver, overweeg dan om via deze affiliate links te kopen om de blog
Western Digital Red Plus series
Seagate IronWolf Series
Raspberry Pi 4 8GB voor een kleinere server

de Duitse uitgever Heise heeft een aantal geweldige artikelen over het bouwen van uw eigen server. U kunt hier ook veel internationale artikelen over vinden. Mijn persoonlijke leren na het bouwen van verschillende versies van de server is om altijd te plannen voor wat je nodig hebt op dit moment en de zeer nabije toekomst. Bouw niet voor iets wat je nodig zou kunnen hebben in 10 jaar. Tegen die tijd zal er betere hardware beschikbaar zijn. De enige uitzondering hierop zou opslag kunnen zijn. Het is altijd een goed idee om een paar SATA-poorten over te hebben, zodat u later meer opslagruimte kunt toevoegen.

de software stack

er is veel software beschikbaar gemaakt voor servers en elke keuze zal afhangen van uw voorkeuren en use case. Het volgende is mijn persoonlijke mening na een paar jaar werken aan dit probleem in mijn vrije tijd.

laten we beginnen met wat ik niet zou gebruiken op een server: Windows. Upgrades zijn moeilijk, veel software wordt niet goed ondersteund en het is duur. Ga in plaats daarvan met een Unix/Linux oplossing. Er zijn volledige oplossingen hiervoor zoals FreeNAS, OpenMediaVault of Unraid maar Unraid kost geld en de andere oplossingen beperken ook wat je kunt doen. Ze zijn misschien een goede keuze voor u, maar ik heb besloten om de doe-het-zelf-route te gaan en mijn eigen oplossing te bouwen op basis van bewezen technologie.

mijn thuisserver draait op een minimaal Ubuntu-server-besturingssysteem (een LTS-versie) met SSH-toegang voor beheer. Ik gebruik het ZFS-bestandssysteem om de schijven te poolen in één big data-pool terwijl ik functionaliteit zoals caches, snapshots, RAID en eenvoudige back-ups biedt. In deze pool heb ik verschillende bestandssystemen gemaakt voor verschillende toepassingen waarbij sommige beschikbaar zijn gemaakt via het netwerk voor andere clients om te gebruiken. Op de server draait een Docker daemon en ik gebruik verschillende docker-compose bestanden om een set van diensten zoals OpenHab hosten, Grafana, Bitwarden/Vaultwarden en Nextcloud. Een reverse proxy (Traefik op dit moment) maakt het mogelijk om bepaalde diensten te bereiken vanaf elke locatie op het web.

my home server stackhardware gebaseerd op ZFS en een opslag poolfile systeem met snapshots en samba sharesDocker en Traefik voor software

externe back-ups worden gedaan via extra schijven aangesloten via USB en regelmatig gedraaid. Een paar scripts en een Uptime monitor controleren regelmatig of het alles nog goed draait en sturen alarmen anders. De installatie is meestal geautomatiseerd en kan snel opnieuw worden gedaan op nieuwe hardware (als de gegevens nog beschikbaar zijn natuurlijk).

hoe de server in te stellen-geautomatiseerde installatie

voordat ik de server daadwerkelijk instelde, besloot ik dit proces te automatiseren. Dit maakt het makkelijker, sneller, minder foutgevoelig en fungeert ook als een soort documentatie. Het hebben van een basisplatform dat betrouwbaar snel en gemakkelijk kan worden opgezet is een groot voordeel. Op deze manier kan al het andere, data en de eigenlijke diensten, onafhankelijk van elkaar worden geconfigureerd uit dit systeem. Als ik elk wil overschakelen naar iets anders moet het relatief gemakkelijk zijn.

voor de automatisering heb ik Ansible gekozen. Ansible is een software waarmee je zogenaamde playbooks kunt schrijven: korte scripts die bepalen welke stappen moeten worden gedaan om je server in te stellen. Deze playbooks kunnen dan worden aangeroepen met een eenvoudig commando en zullen alle handmatige stappen die nodig zijn voor het installatieproces automatiseren. Ik heb Ansible zelf geleerd tijdens het opzetten van de server, dus ik weet zeker dat de playbooks beter kunnen zijn, maar Ik zal ze delen, evenals alles wat nodig is voor de server setup, via GitHub in de volgende delen van deze serie.

ik heb deze scripts een paar keer voor de installatie in een VM gedraaid om er zeker van te zijn dat alles werkt zoals bedoeld. Sindsdien heb ik een paar nieuwe functies al toegevoegd en bewerkte Delen van de bestaande. De eigenlijke installatie op de server was vrij eenvoudig.

eerst moet je je favoriete Linux OS installeren. Ik koos voor Ubuntu Server LTS en installeerde het via een USB-stick. Het systeem is geïnstalleerd op een SSD voor snellere opstarttijden. Na de installatie heb ik alleen het netwerk geconfigureerd (ik raad een statisch IP aan), SSH ingeschakeld en de server naar zijn uiteindelijke fysieke positie verplaatst. Vanaf nu is er geen scherm / toetsenbord / muis meer nodig, het kan worden beheerd via het netwerk (tenzij er iets mis gaat).

de volgende stappen zijn ook eenvoudig: download de benodigde scripts, installeer Ansible en voer de playbooks uit.

sudo apt install git ansiblegit clone https://github.com/OliverHi/zfs-homeserver.gitcd zfs-homeserver/ansibleansible-playbook setup_playbook.yml -K

dit zal een playbook draaien genaamd setup_playbook.yml die de server zal instellen. Natuurlijk kun je hier elk mogelijk playbook gebruiken, maar de mijne is vrij eenvoudig en ziet er zo uit.

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

in principe werkt het op de lokale server, draait als root en gebruikt het variabelen die ik heb gedefinieerd in een aparte main_vars.yml-bestand. Het zal beginnen met het installeren van een paar pakketten die ik nodig heb voor mijn setup en dan lopen door middel van een set van taken die ik schreef voor de verschillende delen van de software stack. Het zal het ZFS-bestandssysteem opzetten, gebruikers en mappen maken, Docker instellen en nog wat meer. U kunt deze altijd naar wens aanpassen.

In de volgende berichten van deze serie zal ik uitleggen hoe ik het bestandssysteem, gebruikers, samba-shares, Docker en de Traefik reverse proxy heb opgezet. In elk deel zal ik ook de benodigde Ansible bestanden toe te voegen om ze automatisch te installeren. Alle code zal beschikbaar zijn op mijn GitHub account.

het volgende bericht over het opzetten van ZFS en een back-upsysteem is hier te vinden.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.