Uruchamianie Dockera, CI/CD i ponad 10 usług self-hosted na ZimaCube 2

Eva Wong jest Technicznym Redaktorem oraz stałym majsterkowiczem w ZimaSpace. Życiowa geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu złożonych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że self-hosting powinien być zabawą, a nie czymś onieśmielającym. Poprzez swoje tutoriale umożliwia społeczności rozwikłanie konfiguracji sprzętowych, od budowy pierwszego NAS po opanowanie kontenerów Docker.

💡
Spojrzenie społeczności: Michael Luckenbill, Program Pionierski ZimaCube 2

Kiedy po raz pierwszy rozpakowałem ZimaCube 2, miałem jedno pytanie ważniejsze niż jakiekolwiek porównanie specyfikacji: Czy to urządzenie faktycznie może obsłużyć prawdziwy stos infrastruktury?

Po tygodniach ciągłej pracy odpowiedź brzmi zdecydowane tak. Oto dokładnie, co uruchamiam, jak to działa i dlaczego standardowa konfiguracja 8GB poszła dalej, niż się spodziewałem.

Stos: Wszystko działa na jednym urządzeniu

ZimaCube 2 jest teraz centrum mojej infrastruktury self-hosted. Oto pełny obraz:

Usługi podstawowe (Docker Compose)

  • Nginx Proxy Manager — reverse proxy i terminacja SSL
  • Cloudflare Tunnel — zaszyfrowany dostęp bez otwierania portów
  • Ghost CMS — samodzielnie hostowany blog (ten, który właśnie czytasz)
  • Vaultwarden — zarządzanie hasłami
  • Uptime Kuma — monitoring infrastruktury
  • 5+ dodatkowych kontenerów do automatyzacji i narzędzi

Pipeline CI/CD

  • Self-hosted runnery GitHub Actions — buduj i wdrażaj kontenery Docker bezpośrednio w moim lokalnym środowisku
  • Zautomatyzowane procesy wdrożeniowe uruchamiane przy każdym pushu

Magazynowanie i dane

  • Pule ZFS obejmujące 3× dyski HDD i 3× dyski NVMe
  • Lokalne procesy tworzenia kopii zapasowych z dedykowanymi dyskami backupowymi
  • Magazyn multimediów i zestawów danych z obsługą snapshotów

Sieć

  • Podwójny Ethernet 2,5 Gb połączony z routerem WiFi 7
  • Reverse proxy kierujące do wszystkich usług
  • Zaszyfrowane tunele do zdalnego dostępu
Wszystko to — każda pojedyncza usługa — działa na jednym ZimaCube 2.

8GB RAM: Zaskakujący zawodnik

Oto szczera część: kiedy zobaczyłem, że standardowa konfiguracja ma 8GB DDR5, moim pierwszym odruchem było natychmiastowe zamówienie rozszerzenia pamięci RAM. Zamiast tego postanowiłem przetestować, jak daleko standardowa konfiguracja może realistycznie zajść, zanim wydam więcej pieniędzy.

Wyniki mnie zaskoczyły.

Nawet z 10+ kontenerami Docker — w tym reverse proxy, zaszyfrowanymi tunelami, monitoringiem, runnerami CI/CD, hostingiem CMS i usługami magazynowania — system nigdy nie wydawał się ograniczony. Zużycie pamięci pozostawało na rozsądnym poziomie. Czas uruchamiania kontenerów był szybki. Responsywność usług pozostała doskonała.

To wiele mówi o efektywności nowoczesnych obciążeń kontenerów Linux oraz architekturze platformy. Pule storage NVMe oznaczają, że swap jest naprawdę użyteczny, gdy jest potrzebny, a przepustowość pamięci DDR5 utrzymuje szybkie operacje I/O kontenerów.

Planuję jeszcze rozbudować pamięć — zwłaszcza gdy dodam więcej obciążeń AI — ale standardowe doświadczenie było znacznie bardziej wydajne, niż się spodziewałem.

Diagram pełnej infrastruktury self-hosting ZimaCube 2: specyfikacje sprzętowe, aplikacje Docker, pule storage ZFS, przegląd przepływu pracy CI/CD i dostępu zdalnego

Docker CI/CD: BUDUJ → WDRAŻAJ → AUTOMATYZUJ → POWTARZAJ

Jednym z najważniejszych zastosowań dla mnie jest CI/CD oparte na Dockerze. Oto jak działa przepływ pracy na ZimaCube 2:

  1. Wysyłam kod do GitHub
  2. Self-hostowany runner GitHub Actions na ZimaCube 2 przejmuje zadanie
  3. Runner buduje obraz Dockera lokalnie
  4. Nowy kontener jest wdrażany w moim środowisku self-hosted
  5. Nginx Proxy Manager kieruje ruch do zaktualizowanej usługi
  6. Cloudflare Tunnel zapewnia dostęp z dowolnego miejsca
⟳  Wszystko to dzieje się na jednej maszynie. Przechowywanie, sieć, Docker, reverse proxy i automatyzacja działają na jednym scentralizowanym systemie.

To dokładnie taki rodzaj przepływu pracy, do którego chciałem tę maszynę. Koniec z żonglowaniem między NAS do przechowywania, osobnym urządzeniem do obliczeń i kolejnym systemem do CI/CD.

Architektura przechowywania, która ma sens

Dwupulowa konstrukcja umożliwia taki poziom konsolidacji:

Pula Dyski RAID Przeznaczenie
Pula masowa (HDD) 3 × 6TB RAID 1 + dysk zapasowy na gorąco Media, zestawy danych, kopie zapasowe
Szybka (NVMe) 2 × 512GB RAID 1 Docker, maszyny wirtualne, przechowywanie aplikacji
Szybka kopia zapasowa 1 × 2TB NVMe Lokalny cel kopii zapasowej

Szybka pula to miejsce, gdzie działa Docker. Obrazy kontenerów, wolumeny i dane runtime znajdują się na NVMe RAID 1, co oznacza, że uruchamianie kontenerów i operacje I/O są naprawdę szybkie. Pula masowa obsługuje długoterminowe przechowywanie — pliki multimedialne, archiwa i zestawy danych, które nie wymagają prędkości NVMe.

To rozdzielenie oznacza, że nigdy nie muszę wybierać między pojemnością a wydajnością.

Wydajność termiczna pod ciągłym obciążeniem

Jednym z najbardziej imponujących aspektów ZimaCube 2 jest wydajność termiczna. Nawet podczas uruchamiania kontenerów Docker, pul storage, reverse proxy, usług monitorujących, infrastruktury CI/CD oraz aplikacji self-hosted, system pozostaje cichy i chłodny.

Metalowa obudowa, projekt przepływu powietrza, dołączone radiatory NVMe i układ wewnętrznych komponentów wszystko to się do tego przyczynia. Dla kompaktowego urządzenia infrastrukturalnego działającego non-stop, obudowa termiczna jest naprawdę doskonała.

W porównaniu do starszych serwerów rack, których wcześniej używałem, różnica w wydzielaniu ciepła, zużyciu energii, hałasie i zajmowanej powierzchni jest ogromna.

Sieć: Podwójne 2,5GbE w praktyce

Podwójne porty Ethernet 2,5Gb doskonale współgrają z nowoczesną infrastrukturą sieciową. W połączeniu z routerem WiFi 7 i przełącznikiem 2,5GbE:

  • Szybkie transfery plików do i z pul pamięci masowej
  • Responsywna sieć kontenerów między usługami
  • Płynny zdalny dostęp przez Cloudflare Tunnel
  • Brak wąskich gardeł przy równoczesnych obciążeniach

Dla kompaktowego urządzenia infrastrukturalnego podwójna sieć 2,5GbE ma ogromne znaczenie — oznacza to, że dostęp do pamięci masowej nie jest ograniczony przez pojedyncze łącze gigabitowe.

Zbuduj własną platformę self-hosted z ZimaCube 2 →

Najczęściej zadawane pytania

P1. Ile kontenerów Docker może uruchomić ZimaCube 2?

W standardowej konfiguracji z 8 GB DDR5 Michael uruchamia ponad 10 kontenerów, w tym reverse proxy, CMS, menedżer haseł, monitoring, runnerów CI/CD i usługi magazynowania — z zapasem mocy. Pula pamięci NVMe zapewnia szybki I/O kontenerów nawet przy równoczesnym obciążeniu.

P2. Czy ZimaCube 2 może uruchamiać runnerów GitHub Actions?

Tak. Self-hosted runnerzy GitHub Actions działają dobrze na ZimaCube 2. Michael używa ich do budowania i wdrażania kontenerów Docker bezpośrednio w swoim lokalnym środowisku self-hosted — w pełni lokalnej linii CI/CD.

P3. Czy 8 GB RAM wystarczy do homelabu Docker?

Dla obciążeń kontenerowych — Docker, reverse proxy, tunele, monitoring i usługi magazynowania — 8 GB pamięci RAM wystarcza zaskakująco dobrze. Nowoczesne kontenery Linux są efektywne pamięciowo, a pamięć NVMe zapewnia szybki swap w razie potrzeby. Możesz zawsze później rozbudować pamięć przez slot SODIMM.

P4. Jaka jest zaleta podwójnych pul pamięci masowej (HDD + NVMe)?

Pula NVMe radzi sobie z obciążeniami o wysokim I/O, takimi jak Docker, maszyny wirtualne i przechowywanie aplikacji, z niskim opóźnieniem. Pula HDD zapewnia ekonomiczne magazynowanie dużych ilości danych, takich jak multimedia, kopie zapasowe i zestawy danych. To rozdzielenie oznacza, że nigdy nie musisz wybierać między pojemnością a wydajnością.

P5. Czy ZimaCube 2 obsługuje Cloudflare Tunnel?

Tak, i działa dobrze. W połączeniu z Nginx Proxy Manager i podwójną siecią 2,5GbE możesz bezpiecznie udostępniać swoje usługi self-hosted bez otwierania portów na routerze.

Centrum Kampanii Zima

Więcej do przeczytania

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.