opbygning af en fuld hjemmeserver – det grundlæggende

udgivet af Oliver den 06.09.202106.09.2021

Self-hosting vigtige programmer og data på din egen hjemmeserver har mange fordele, men kan være en skræmmende opgave at komme i gang med. Jeg har kørt min egen server i et par år nu og vil beskrive valgmulighederne i udstyr og programmer her. Dette vil være en komplet guide til, hvordan du opretter din egen lille server.

hvorfor skal du bygge din egen server?

i nogle tilfælde bør du ikke. Nogle meget dyre, specialiserede eller svære at konfigurere (som e-mail) tjenester kan faktisk være bedre med en ekstern udbyder. Hvis du kun bruger dine tjenester meget sjældent eller slet ikke er villig til at dykke ned i noget af den viden, der er nødvendig for at være vært, er dette måske heller ikke det rigtige sted for dig.

Vær dog ikke bange, hosting-programmer på egen hånd har aldrig været så simpelt som det er i dag, og det kommer med en masse fordele. Måske vigtigst af alt gør det dig lidt mere uafhængig. Tech-giganter har ikke så let tid til at få dine data, og noget problem i skyen eller med din internetudbyder forhindrer dig ikke i at få adgang til dine data og tjenester (lokalt).

på et tidspunkt, hvor tjenester styrer stadig vigtigere dele af dit liv (som et smart home-system), kan denne kontrol og uafhængighed være uvurderlig. I det lange løb kan det endda være mere omkostningseffektivt i det lange løb. Sikker på at købe udstyr er en investering, men hosting terabyte data i skyen vil også koste dig meget – for evigt.

sidst men ikke mindst kan det være et meget sjovt projekt, der hjælper dig med at lære meget om teknologi, og du er altid fri til at prøve nye programmer. Der er så meget open source & gratis program derude!

Hvad vil du med din server?

før du bygger noget, er det vigtigt at spørge dig selv: hvad planlægger jeg at gøre med denne server? Hvis du ønsker at bare være vært for et par små tjenester lokalt uden meget data, vil resultatet se meget anderledes ud end en fuld lagringsserver.

hvis du bare har brug for lokale tjenester, anbefaler jeg i de fleste tilfælde at få en nyere Raspberry Pi og muligvis en ekstern SSD til data. De er billige, energieffektive og nemme at sætte op. Jeg har beskrevet min lille smart home server og hub baseret på Raspberry Pi 4 i dybden i denne artikel. Tilføjelse af en SSD til lille datalagring er også ret let.

hvis du leder efter en mere kraftfuld løsning eller har brug for at gemme en masse data, anbefaler jeg at bruge en anden platform. Nogle mennesker bruger et NAS eller gammelt serverudstyr (som kan fungere meget godt), men jeg anbefaler normalt kundeudstyr med fokus på nogle specielle egenskaber.

  • sørg for at have en god netværksforbindelse (1Gbit/s eller måske endda 10)
  • brug energieffektive komponenter og afhængigt af hvor du vil placere serveren tavse
  • få en CPU, der er kraftig nok, mens du ikke spilder energi i tomgang
  • Normalt behøver du ikke et grafikkort
  • få nok RAM, dette kan være ret vigtigt for din server
  • få et bundkort og etui, der kan rumme nok HDD ‘er & SSD’ er til opbevaring og har god køling
  • få kvalitetslagringsmedier. Jeg har brugt den røde serie meget (bare vær forsigtig med SMR-versionerne) og har også hørt gode ting om Seagate-Jernulvserien
  • sørg for, at dine komponenter afkøles ordentligt, og at alt er tilsluttet godt nok. Du vil have dette til at være build & glem
  • få en kvalitet strømadapter!
  • jeg ville personligt undgå RAID-controllere

hvis du ønsker at opbygge en hjemmeserver, kan du overveje at købe via disse tilknyttede links for at understøtte bloggen
vestlige digitale røde Plus-serier
Raspberry Pi 4 8GB til en mindre server

den tyske udgiver Heise har nogle gode artikler om opbygning af din egen server. Du kan også finde en masse internationale artikler om dette. Min personlige læring efter at have bygget flere versioner af serveren er altid at planlægge det, du har brug for lige nu og i den nærmeste fremtid. Byg ikke til noget, du måske har brug for om 10 år. Til den tid vil der være bedre udstyr til rådighed. Den eneste undtagelse fra dette kan være opbevaring. Det er altid en god ide at have et par SATA-porte tilbage, så du kan tilføje mere lagerplads senere.

programstakken

der er en masse programmer derude lavet til servere, og ethvert valg afhænger af dine præferencer og brugstilfælde. Følgende er min personlige mening efter et par år med at arbejde på dette problem i min fritid.

lad os først starte med det, jeg ikke ville bruge på en server: vinduer. Opgraderinger er hårde, mange programmer understøttes ikke korrekt, og det er dyrt. Gå i stedet med en unik løsning. Der er fulde løsninger til dette som FreeNAS, OpenMediaVault eller Unraid, men Unraid koster penge, og de andre løsninger begrænser også, hvad du kan gøre. De kan være et godt valg for dig, men jeg besluttede at gå DIY-ruten og bygge min egen løsning baseret på gennemprøvet teknologi.

min hjemmeserver kører på et minimalt Ubuntu server OS (en LTS-version) med SSH-adgang til administration. Jeg bruger filsystemet til at samle drevene i en stor datapool, samtidig med at der leveres funktionalitet som caches, snapshots, RAID og simple backups. I denne pulje oprettede jeg flere filsystemer til forskellige anvendelsessager, hvor nogle af dem blev gjort tilgængelige via netværket for andre klienter at bruge. På serveren kører en Docker-dæmon, og jeg bruger flere docker-compose-filer til at være vært for et sæt tjenester som OpenHab, Grafana, Bitvarden/Vaultvarden og næste. En omvendt fuldmagt (Traefik i øjeblikket) gør det muligt at nå udvalgte tjenester fra hvor som helst på nettet.

min hjemmeserver stackhardvare baseret på SF ' er og et storage poolfile system med snapshots og samba sharesDocker og Traefik til programmel

eksterne sikkerhedskopier udføres via yderligere drev, der er tilsluttet via USB og roteres regelmæssigt. Et par scripts og en oppetidsmonitor kontrollerer regelmæssigt, om alt stadig kører korrekt og sender alarmer ellers. Installationen er for det meste automatiseret og kan hurtigt udføres på nyt udstyr (hvis dataene stadig er tilgængelige selvfølgelig).

Sådan konfigureres den serverautomatiserede installation

før jeg faktisk opsatte serveren, besluttede jeg at automatisere denne proces. Dette gør det lettere, hurtigere, mindre fejlbehæftet og fungerer også som en slags dokumentation. At have en basisplatform, der pålideligt kan konfigureres hurtigt og nemt, er en stor fordel. På denne måde kan alt andet, data og de faktiske tjenester, konfigureres uafhængigt af dette system. Hvis jeg alle ønsker at skifte til noget andet, skal det være relativt let.

til automatiseringen valgte jeg Ansible. Ansible er et program, der giver dig mulighed for at skrive såkaldte playbooks: korte scripts, der definerer, hvilke trin der skal gøres for at konfigurere din server. Disse playbooks kan derefter påberåbes med en simpel kommando og automatiserer alle de manuelle trin, der er nødvendige for installationsprocessen. Jeg har selv lært Ansible, mens jeg opsatte serveren, så jeg er sikker på, at playbooks kunne være bedre, men jeg vil dele dem, såvel som alt andet, der er nødvendigt til serveropsætningen, via GitHub i de følgende dele af denne serie.

jeg kørte disse scripts i en VM et par gange før den faktiske installation for at sikre, at alt fungerer som beregnet. Siden da har jeg dog tilføjet et par nye funktioner og omarbejdet dele af de eksisterende. Den faktiske installation på serveren var ret simpel.

først skal du installere dit foretrukne OS. Jeg valgte Ubuntu Server LTS og installerede den via en USB-stick. Systemet er installeret på en SSD for hurtigere opstartstider. Efter installationen konfigurerede jeg kun netværket (jeg anbefaler en statisk IP), aktiverede SSH og flyttede serveren til sin endelige fysiske position. Fra nu af er der ikke behov for skærm/tastatur/mus, det kan styres via netværket (medmindre noget går galt).

de næste trin er også enkle: Hent de scripts, du har brug for, installer Ansible og kør playbooks.

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

dette vil køre en playbook kaldet setup_playbook.yml, der vil oprette serveren. Selvfølgelig kan du bruge enhver Ansible playbook her, men min er ganske enkel og ser sådan ud.

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

dybest set arbejder den på den lokale server, kører som root og bruger variabler, jeg har defineret i en separat main_vars.yml-fil. Det starter med at installere et par pakker, som jeg har brug for til min opsætning og derefter køre gennem et sæt opgaver, som jeg skrev til de forskellige dele af programstakken. Det vil oprette filsystemet, oprette brugere og mapper, oprette Docker og nogle flere. Du kan altid tilpasse dem til din smag.

i de følgende indlæg i denne serie vil jeg forklare, hvordan jeg konfigurerer filsystemet, brugere, samba-aktier samt Docker og Traefik-omvendt fuldmagt. I hver del vil jeg også tilføje de nødvendige Ansible filer til automatisk at installere dem. Al koden vil være tilgængelig på min GitHub-konto.

det næste indlæg om opsætning af et backup-system kan findes her.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.