هر بار یک استک اضافه کنید
انتخاب برنامه، جداسازی تنظیمات و داده و ثبت روش بازیابی پیش از گسترش.
پیش از افزودن دادهٔ شخصی، تمرین بازیابی را تمام کنید. فهرست، گروههای مخزن من را معرفی میکند؛ فهرست عمومی میزبانهای فعال یا ادعای اجرای همهٔ سرویسها نیست.
homelab/
apps/<stack>/compose.yaml
apps/<stack>/.env.example
apps/<stack>/README.md
core/<stack>/...
ops/<stack>/...
Apps قابلیتهای قابلاستفاده را فراهم میکند. Core اتصال و هویت مشترک را مدیریت میکند. Ops برای نگهداری و بازیابی است. ترتیب الفبایی، ترتیب نصب نیست. با یک برنامه و پایگاه دادهٔ لازم آن شروع کنید. بعضی بخشها مانند Ansible، نصب Tailscale روی میزبان و روش نگهداری رازها، استک کانتینری نیستند.
پروژهٔ جدا بسازید
برای مثال ~/homelab/apps/finance را بسازید و وارد آن شوید. یادداشت مالی و راهنمای رسمی پیوندشده را بخوانید. نمونهٔ Compose نسخهٔ انتخابی را با نام compose.yaml ذخیره کنید. پیش از اجرا، نسخهٔ ایمیج، مسیر قابلنوشتن، رازها، پورت میزبان، دسترسی دستگاه و وابستگیها را بررسی کنید.
با name: یا گزینهٔ ثابت -p در تمام فرمانها نام پروژهٔ یکتا انتخاب کنید. تمرین مقدماتی یک پروژه دارد، ولی در این ساختار معمولاً هر استک پروژهٔ جدا دارد. پروژههای جدا خودکار شبکه یا تبدیل نام مشترک ندارند. شبکهٔ مشترک پراکسی باید آگاهانه ساخته و در هر دو طرف یکسان تعریف شود.
فقط اگر نمونهٔ رسمی به .env نیاز دارد آن را بسازید. فایل .env.example باید جاینگهدار داشته باشد، نه مقدار واقعی. فایل .env، اعتبارنامه، پایگاه داده، فایل بارگذاریشده و خروجی بازیابی را از Git خارج کنید. مسیرها و volumeهای داده را ثبت کنید. Git پشتیبان دادهٔ برنامه نیست.
# Run from the directory containing this stack's compose.yaml.
sudo docker compose config --quiet
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps -a
sudo docker compose logs --tail 50
در دورهٔ یادگیری، اگر برنامه پشتیبانی میکند انتشار پورت را به loopback محدود کنید. کشف دستگاه در LAN یا دسترسی سختافزار استثناهای خود را دارد. رابط را از راه SSH باز کنید، رکورد آزمایشی بسازید، سرویس را دوباره اجرا و ماندگاری را بررسی کنید. سپس همان رکورد را با روش رسمی در نمونهٔ آزمایشی جدا بازیابی کنید.
پیش از بهروزرسانی
یادداشت انتشار را بخوانید، digest فعلی را ثبت کنید، پشتیبان آزمودهشده داشته باشید و نیاز مهاجرت پایگاه داده را بررسی کنید. pull کانتینر فعال را عوض نمیکند؛ up -d ایمیج و تنظیمات را اعمال میکند. ایمیج قدیمی ممکن است پایگاه دادهٔ مهاجرتکرده را نفهمد؛ برگشت ایمیج بهتنهایی برنامهٔ بازیابی نیست.
یادداشت هر استک شروع محدود و بررسیهای مشخص دارد. مثال قابلدریافت وب، متریک و restic اجرا شده است. یادداشتهای دیگر راهنمای مبتنی بر مستندات رسمی هستند، نه ادعای آزمون همهٔ ۲۹ نصب. نسخه، مسیر داده، قواعد دسترسی، روش پشتیبان و نتیجهٔ بازیابی را خصوصی ثبت کنید. مثال عمومی نباید مسیر واقعی، شناسهٔ حساب، توکن یا ضعف رفعنشده داشته باشد.