Publisert Av Oliver on 06.09.202106.09.2021
Self-hosting viktig programvare og data på din egen hjemmeserver har mange fordeler, men kan være en skremmende oppgave å komme i gang med. Jeg har kjørt min egen server i et par år nå, og vil beskrive valgene i maskinvare og programvare her. Dette vil være en full guide til hvordan du setter opp din egen lille server.
Hvorfor bør du bygge din egen server?
i noen tilfeller bør du ikke. Noen svært kostbare, spesialiserte eller vanskelige å konfigurere (som e-post) tjenester kan faktisk være bedre med en ekstern leverandør. Hvis du bare bruker tjenestene dine svært sjelden eller ikke er villig til å dykke inn i noe av kunnskapen som trengs for hosting, kan dette heller ikke være det rette stedet for deg.
ikke vær redd skjønt, hosting programvare på egen hånd har aldri vært så enkelt som det er i dag, og det kommer med mange fordeler. Kanskje viktigst det gjør deg litt mer selvstendig. Tech gigantene har ikke så lett tid å få data og noen problem i skyen eller Med internett-leverandøren ikke stoppe deg fra å få tilgang til data og tjenester (lokalt).
i en tid der tjenester kontrollerer stadig viktigere deler av livet ditt (som et smart hjemmesystem), kan denne kontrollen og uavhengigheten være uvurderlig. I det lange løp kan det også være mer kostnadseffektivt i det lange løp. Sikker på å kjøpe maskinvare er en investering, men hosting Terabyte med data i skyen vil koste deg mye også-for alltid.
Sist Men Ikke minst kan det være et veldig morsomt prosjekt som hjelper deg å lære mye om teknologi, og du er alltid fri til å prøve ut ny programvare. Det er så mye åpen kildekode & fri programvare der ute!
Hva vil du med serveren din?
før du bygger noe, er det viktig å spørre deg selv: hva planlegger jeg å gjøre med denne serveren? Hvis du ønsker å bare være vert for et par små tjenester lokalt uten mye data, vil resultatet se veldig annerledes ut enn en full lagringsserver.
hvis du bare trenger lokale tjenester, anbefaler jeg i de fleste tilfeller å få en Nyere Raspberry Pi og muligens en ekstern SSD for data. De er billige, energieffektive og enkle å sette opp. Jeg har beskrevet min lille smart home server og hub basert På Raspberry Pi 4 i dybden i denne artikkelen. Å legge TIL EN SSD for liten datalagring er også ganske enkelt.
hvis du er ute etter en kraftigere løsning eller trenger å lagre mye data, anbefaler jeg at du bruker en annen plattform. Noen bruker EN NAS eller gammel server maskinvare (som kan fungere veldig bra), men jeg anbefaler vanlig kundehardware med fokus på noen spesielle egenskaper.
- Sørg for å ha en god nettverkstilkobling (1Gbit/s eller kanskje til og med 10)
- Bruk energieffektive komponenter og avhengig av hvor du vil plassere serveren stille
- Få EN CPU som er kraftig nok mens du ikke kaster bort energi i tomgang
- Vanligvis trenger du Ikke et grafikkort
- Få NOK RAM, dette kan være ganske viktig for serveren din
- få et hovedkort og etui som kan holde nok harddisker & ssd-er for lagring og har god kjøling
- få kvalitetsmedier. Jeg har brukt WD red-serien mye (bare vær forsiktig MED SMR-versjonene) og har hørt gode ting om Seagate Ironwolf-serien også
- Kontroller at komponentene dine er avkjølt riktig og alt er koblet godt nok. Du vil ønske at dette skal bygges& glem
- Få en kvalitets strømadapter!
- jeg vil personlig unngå maskinvare RAID-kontrollere
hvis du ønsker å bygge en hjemmeserver vurdere å kjøpe via disse affiliate linker for å støtte bloggen
Western Digital Red Plus series
Seagate IronWolf Series
Raspberry Pi 4 8gb for en mindre server
den tyske utgiveren Heise har noen gode artikler om å bygge din egen server. Du kan også finne mange internasjonale artikler om dette. Min personlige læring etter å ha bygget flere versjoner av serveren er å alltid planlegge for det du trenger akkurat nå og nær fremtid. Ikke bygg for noe du kanskje trenger om 10 år. Da vil det være bedre maskinvare tilgjengelig. Det eneste unntaket til dette kan være lagring. Det er alltid en god ide å ha ET PAR SATA-porter igjen, slik at du kan legge til mer lagringsplass senere.
programvarestakken
det er mye programvare der ute laget for servere, og hvert valg vil avhenge av dine preferanser og brukstilfelle. Følgende er min personlige mening etter et par år som jobber med dette problemet på fritiden min.
Først av alt kan vi starte med det jeg ikke ville bruke på en server: Windows. Oppgraderinger er vanskelig, mye programvare støttes ikke riktig, og det er dyrt. I stedet gå med En Unix / Linux-løsning. Det er full løsninger for Dette Som FreeNAS, OpenMediaVault eller Unraid men Unraid koster penger og de andre løsningene er også begrense hva du kan gjøre. De kan være et godt valg for deg, men jeg bestemte MEG FOR Å GÅ DIY-ruten og bygge min egen løsning basert på velprøvd teknologi.
min hjemmeserver kjører på et minimalt Ubuntu server OS (EN lts-versjon) MED SSH-tilgang for administrasjon. JEG bruker ZFS-filsystemet til å samle stasjonene i et stort datapool samtidig som det gir funksjonalitet som cacher, øyeblikksbilder, RAID og enkle sikkerhetskopier. I dette bassenget jeg opprettet flere filsystemer for ulike bruksområder tilfeller med noen av dem gjort tilgjengelig via nettverket for andre klienter å bruke. På serveren kjører En Docker-demon, og jeg bruker flere docker-compose-filer til å være vert for et sett med tjenester som OpenHab, Grafana, Bitwarden/Vaultwarden og Nextcloud. En omvendt proxy (Traefik for øyeblikket) gjør det mulig å nå utvalgte tjenester fra hvor som helst på nettet.
Eksterne sikkerhetskopier gjøres via flere stasjoner koblet til VIA USB og roteres regelmessig. Et par skript og en oppetidsmonitor kontrollerer regelmessig om alt fortsatt kjører riktig og sender alarmer ellers. Installasjonen er for det meste automatisert og kan gjøres på ny maskinvare raskt (hvis dataene fortsatt er tilgjengelige selvfølgelig).
hvordan sette opp serverautomatisert installasjon
Før jeg faktisk satte opp serveren, bestemte jeg meg for å automatisere denne prosessen. Dette gjør det enklere, raskere, mindre utsatt for feil og fungerer også som en slags dokumentasjon. Det er en stor fordel å ha en baseplattform som kan settes opp raskt og enkelt på en pålitelig måte. På denne måten kan alt annet, data og de faktiske tjenestene, konfigureres uavhengig av dette systemet. Hvis jeg alle ønsker å bytte til noe annet, bør det være relativt enkelt.
for automatiseringen valgte Jeg Ansible. Ansible er en programvare som lar deg skrive såkalte playbooks: korte skript som definerer hvilke skritt som skal gjøres for å sette opp serveren din. Disse playbooks kan da påberopes med en enkel kommando og vil automatisere alle de manuelle trinnene som trengs for installasjonsprosessen. Jeg har lært Ansible meg selv mens du setter opp serveren, så jeg er sikker på at playbooks kan bli bedre, men jeg vil dele dem, så vel som alt annet som trengs for serveroppsettet, via GitHub i følgende deler av denne serien.
jeg kjørte disse skriptene i EN VM et par ganger før selve installasjonen for å sikre at alt fungerer som ønsket. Siden da har jeg lagt til et par nye funksjoner skjønt og omarbeidet deler av de eksisterende. Selve installasjonen på serveren var ganske enkel.
først må du installere din Favoritt Linux OS. Jeg valgte Ubuntu Server LTS og installerte den via EN USB-pinne. Systemet er installert PÅ EN SSD for raskere oppstartstider. Etter installasjonen konfigurerte jeg bare nettverket (jeg anbefaler en statisk IP), aktivert SSH og flyttet serveren til sin endelige fysiske posisjon. Fra nå av er det ikke nødvendig med skjerm/tastatur / mus, det kan styres via nettverket (med mindre noe går galt).
de neste trinnene er også enkle: last ned skriptene du trenger, installer Ansible og kjø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 kjøre en playbook kalt setup_playbook.yml som vil sette opp serveren. Selvfølgelig kan du bruke Noen Ansible playbook her, men min er ganske enkel og ser slik ut.
--- - 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
I Utgangspunktet fungerer Det på den lokale serveren, kjører som rot og bruker variabler jeg har definert i en egen main_vars.yml-fil. Det vil starte med å installere et par pakker som jeg trenger for oppsettet mitt og deretter kjøre gjennom et sett med oppgaver som jeg skrev for de ulike delene av programvarestakken. DET vil sette OPP ZFS-filsystemet, opprette brukere og mapper, sette Opp Docker og litt mer. Du kan alltid tilpasse dem til din smak.
i følgende innlegg i denne serien vil jeg forklare hvordan jeg satt opp filsystemet, brukere, samba aksjer Samt Docker og Traefik reverse proxy. I hver del vil jeg også legge til de nødvendige Ansible filene for å installere dem automatisk. All koden vil være tilgjengelig på Min GitHub-konto.
neste innlegg om å sette OPP ZFS og et backupsystem finner du her.