Så bygger du en utvecklingsserver hemma för Git, Docker-avbildningar, databaser och förhandsvisningsappar

Eva Wong är teknisk skribent och händig hemmabyggare på ZimaSpace. Som tekniknörd sedan barnsben med ett brinnande intresse för hemlabb och programvara med öppen källkodspecialiserar hon sig på att göra komplexa tekniska koncept begripliga genom praktiska, praktiska guider. Eva tycker att självhosting ska vara roligt, inte avskräckande. Genom sina handledningar hjälper hon communityn att göra hårdvaruinstallationer mindre mystiska, från att bygga sin första NAS till att bemästra Docker-containrar.

Bygg en stabil tjänsteplattform, separera beständiga data från återskapningsbara artefakter och se till att alla utvecklartjänster kan återställas utan att själva värden behöver bevaras.

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

Tilldela tjänsteroller innan du väljer maskinvara

Behandla Git, containerregistret, databasmotorerna och förhandsvisningsapparna som separata tjänsteroller även när de delar värd. Git bevarar källkodshistorik; registret lagrar återskapningsbara artefakter; databaser innehåller föränderligt applikationstillstånd; förhandsvisningsappar är utbytbara körmiljöer.

Uppskatta CPU och minne utifrån samtidiga byggen, databasernas arbetsminne och aktiva förhandsvisningar. Uppskatta lagringsutrymmet utifrån arkiv, registerlagring, databasernas tillväxt, loggar och mellanlagring av säkerhetskopior. Då undviker du att köpa en stor disk när minnet i stället blir den första flaskhalsen.

Börja med en beräkningsnod när det är acceptabelt att den slutar fungera under utveckling. Dela upp byggarbetarna senare om tillfälligt intensiv kompilering börjar belasta databaserna eller interaktiva förhandsvisningar.

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

Dataroll Exempel Skydd
Beständigt tillstånd Git-arkiv, databasvolymer Ögonblicksbilder plus oberoende säkerhetskopia
Återskapningsbara artefakter Containeravbildningar, byggcache Lagringspolicy; 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 alla byte på samma sätt. Ett register kan oftast återskapas från källkod och bygginstruktioner; en databas kan inte det. Lagra databasutdumpar eller konsekventa ögonblicksbilder separat från den aktiva databasvolymen.

En praktisk självhostad säkerhetskopieringsplan visar värdet av att automatisera Git och externa kopior som separata uppgifter, i stället för att utgå från att NAS-enheten i sig ä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örhandsgranskningsrutter endast för de nätverk som behöver dem. Fjärråtkomst bör gå via ett privat VPN eller en autentiserad omvänd proxy, inte genom en samling vidarebefordrade tjänsteportar.

Använd separata tjänstekonton och driftsättningsnycklar. Utvecklare bör inte dela ett administratörslösenord, och förhandsgranskningsappar bör inte ärva autentiseringsuppgifter som kan ändra kodarkiv eller registret.

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

Single board computer zimaboard2

Låt driftsättningsordningen följa beroendegrafen

Starta monteringar för lagring, identitet, databaser, register, Git och sedan förhandsgranskningsappar. Hälsokontroller ska testa verkliga beroenden utan att starta om en långsam databas bara för att ett program fortfarande håller på att starta.

Versionshantera driftsättningsdefinitioner, schemamigreringar och omvänd proxy-rutter. Förvara hemligheter utanför kodarkivet och ange tydligt varifrån de återställs. En ersättningsvärd ska kunna återskapa tjänster från definitioner och skyddat tillstånd.

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

Säkerhetskopiera för återställning, inte för samlingens skull

Säkerhetskopiera kodarkiv, databasspecifika dumpfiler, tjänstekonfiguration och krypterade hemligheter till en plats som inte är monterad med skrivåtkomst för alla tjänster. Förvara minst en kopia utanför serverns strömförsörjnings- och administratörsgräns.

Genomför en återställning varje kvartal till ett isolerat namnområde. Kontrollera användare, tillägg, schemalagda jobb, behörigheter för kodarkiv, autentisering mot register och DNS-rutter – inte bara att filerna finns.

Utöka när byggköer fördröjer interaktivt arbete, databasfördröjningen ökar vid bilduppladdningar eller säkerhetskopieringsfönster överlappar arbetsdagen. Sluta lägga till roller på samma värd när en experimentell tjänst kan förbruka resurser eller autentiseringsuppgifter som behövs av den stabila tjänsteplattformen.

Slutlig regel för upplägget

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

Installation av NAS och server

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.