Så bygger du en hemutvecklingsserver för Git, Docker-avbildningar, databaser och förhandsgranskningsappar

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

Bygg ett stabilt serviceplan, separera beständiga data från återskapningsbara artefakter och gör varje utvecklartjänst återställningsbar utan att själva värden måste bevaras.

För en eller två utvecklare hemma kan en enda Linux-server vara värd för Git, ett bildregister, databaser och förhandsvisningsapplikationer. Designen förblir hanterbar endast när identitet, lagringsroller, nätverksexponering, säkerhetskopiering och återställning planeras innan tjänsterna börjar vara beroende av varandra.

Tilldela tjänsteroller innan du väljer hårdvara

Behandla Git, containerregistret, databasmotorerna och förhandsvisningsapplikationerna som separata tjänsteroller även när de delar samma värd. Git bevarar källhistorik; registret lagrar återskapningsbara artefakter; databaser innehåller föränderliga applikationstillstånd; förhandsvisningsappar är tillfälliga körmiljöer.

Uppskatta CPU- och minnesbehov utifrån samtidiga byggen, databasernas arbetsmängder och aktiva förhandsvisningar. Uppskatta lagringsbehovet utifrån arkiv, kvarhållning av registerinnehåll, databasens tillväxt, loggar och säkerhetskopieringsutrymme. Då undviker du att köpa en stor disk och samtidigt låta minnet bli den första flaskhalsen.

Använd till en början en enda beräkningsnod när ett fel är acceptabelt i utvecklingsmiljön. Dela upp byggarbetare senare om intensiv kompilering börjar svälta databaserna eller interaktiva förhandsvisningar på resurser.

Separera beständiga data, återskapningsbara data och återställningsdata

Dataroll Exempel Skydd
Beständigt tillstånd Git-arkiv, databasvolymer Ögonblicksbilder plus oberoende säkerhetskopiering
Återskapningsbara artefakter Containeravbildningar, byggcache Kvarhållningspolicy; valfri säkerhetskopiering
Hemligheter och konfiguration Distributionsnycklar, miljöfiler Krypterad export och offlinekopia för återställning
Återställningsmedia OS-installationsprogram, återställningsanteckningar Förvaras utanför servern

Säkerhetskopiera inte varje byte på samma sätt. Ett register kan vanligtvis byggas om från källkod och bygginstruktioner; en databas kan inte det. Lagra databasutdumpar eller konsekventa ögonblicksbilder separat från den aktiva databasvolymen.

En praktisk plan för självhostad säkerhetskopiering visar värdet av att automatisera Git och externa kopior som separata jobb i stället för att anta att själva NAS-enheten är säkerhetskopian.

Skapa en privat åtkomstväg

Ge servern en stabil LAN-adress och ett lokalt DNS-namn. Exponera Git-, register-, databas- och förhandsvisningsvägar endast för de nätverk som behöver dem. Fjärråtkomst bör gå via ett privat VPN eller en autentiserad reverse-proxy-väg, inte via en samling vidarebefordrade tjänsteportar.

Använd separata tjänstekonton och distributionsnycklar. Utvecklare bör inte dela ett administratörslösenord, och förhandsvisningsapplikationer bör inte ärva autentiseringsuppgifter som kan ändra Git-arkiv eller registret.

Välj SMB eller NFS endast för filarbetsflöden som verkligen behöver en delad montering. Guiden om SMB och NFS för klientanpassning hjälper dig att hålla protokollvalet åtskilt från åtkomst till applikationstjänster.

-15% OFF
Single board computer zimaboard2

Låt distributionsordningen följa beroendegrafen

Starta lagringsmonteringar, identitet, databaser, register, Git och därefter förhandsvisningsapplikationer. Hälsokontroller bör testa verkliga beroenden utan att starta om en långsam databas bara för att en applikation fortfarande håller på att värmas upp.

Håll distributionsdefinitioner, schemamigreringar och reverse-proxy-vägar i versionshantering. Håll hemligheter utanför arkivet och ange tydligt var de ska återställas. En ersättningsvärd bör kunna återskapa tjänster från definitioner och skyddat tillstånd.

Validera genom att bygga om en förhandsvisningsapp från en ren utcheckning, hämta dess avbildning, tillämpa en teståterställning av databasen och nå den från den avsedda klientvägen.

Säkerhetskopiera för återställning, inte för samling

Säkerhetskopiera arkiv, databasinterna dumpar, tjänstekonfiguration och krypterade hemligheter till en destination som inte är skrivmonterad av alla tjänster. Behåll minst en kopia utanför serverns strömförsörjnings- och administratörsgräns.

Genomför en kvartalsvis återställning i ett isolerat namnområde. Bekräfta användare, tillägg, schemalagda jobb, arkivbehörigheter, registerautentisering och DNS-vägar - inte bara att filer finns.

Skala ut när byggköer fördröjer interaktivt arbete, databaslatensen ökar under bildöverföringar eller säkerhetskopieringsfönster överlappar arbetsdagen. Sluta lägga till roller på samma värd när en enda experimentell tjänst kan tömma resurserna eller autentiseringsuppgifterna som den stabila tjänsteplattformen behöver.

Slutlig regel för konfigurationen

Konfigurationen är godkänd när varje tjänst har en namngiven roll, skyddat tillstånd, en kontrollerad åtkomstväg, en testad återställning och en mätbar utlösare för att dela upp eller utöka topologin.

NAS- och serverinstallation

Mer att läsa

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.