Seluruhnya, bukan bagian pertama.
Setiap panduan mengambil satu instance kosong dan mengubahnya menjadi layanan yang dapat Anda arahkan lalu lintas nyata. Perintah dijalankan dari atas ke bawah sesuai urutan yang dicetak, placeholder ditandai sebagai placeholder, dan bagian terakhir selalu berupa tes. Tidak ada panduan di sini yang berakhir dengan "dan kemudian konfigurasikan sisanya sesuai selera".
Panduan bukanlah entri basis pengetahuan
Kedua format ada karena masing-masing buruk dalam pekerjaan yang lain. Gabungkan keduanya dan Anda mendapatkan dokumentasi yang menjelaskan fungsi setiap flag tanpa pernah memberi tahu Anda flag mana yang Anda butuhkan.
Basis pengetahuan menjawab pertanyaan dalam satu menit. Panduan menghabiskan waktu sore Anda dan meninggalkan server yang berjalan di akhirnya.
Entri basis pengetahuan dimulai dengan sesuatu yang sudah Anda miliki dan sesuatu yang salah dengannya: mount yang tidak kembali setelah reboot, sertifikat yang diperbarui tetapi tidak dimuat ulang, konsol penyelamat yang tidak dapat Anda dapatkan prompt darinya. Itu singkat karena konteksnya sudah ada di kepala Anda. Anda datang dengan masalah dan pergi dengan jawabannya.
Sebuah panduan dimulai dari nol. Anda telah membayar invoice, Anda memiliki kredensial root, dan mesin adalah sebuah image yang belum dikonfigurasi di sebuah kota yang Anda pilih karena alasan Anda sendiri. Pada akhirnya Anda memiliki server email yang lulus pemeriksaan autentikasi, atau hypervisor yang menjalankan guest bersarang, atau dua terabyte yang berada di negara yang berbeda dari tempatnya tadi pagi. Konteksnya dibangun seiring berjalannya, itulah mengapa panduan-panduan ini mencapai beberapa ribu kata, bukan dua ratus.
Menulis dengan cara ini lebih banyak pekerjaan dan lebih banyak menangkap kesalahan. Setiap panduan di halaman ini dijalankan dari awal sampai akhir pada instance yang baru disebarkan sebelum dipublikasikan, dan dijalankan ulang setiap kali proyek upstream merilis sesuatu yang merusaknya. Tanggal di bagian atas setiap panduan adalah tanggal terakhir dijalankan, bukan tanggal seseorang membaca sekilas.
Satu hal yang lengkap
Bukan survei enam opsi dan sebuah bahu acuh. Setiap panduan memilih pendekatan, menjelaskan alasannya, dan membangunnya. Di mana alternatif nyata ada, ia mendapat satu kalimat dan tautan, lalu panduan melanjutkan.
Perintah yang berjalan secara berurutan
Salin sesuai urutan yang tercetak pada image baru dan itu berfungsi. Jika langkah sembilan memerlukan paket yang diinstal di langkah dua, langkah dua menginstalnya. Tidak ada yang bergantung pada state yang tidak pernah Anda disuruh buat.
Mesin yang disebutkan namanya
Setiap build menyatakan di baris mana ia ditulis dan apa yang terjadi jika Anda menggunakan yang lebih kecil. Tuning Postgres yang mengasumsikan 64 GB ECC adalah saran yang tidak berguna pada kotak 16 GB, jadi kami mengatakannya di atas.
Bagian tengah yang membosankan
Kepemilikan file, penguatan unit systemd, aturan firewall, rotasi log. Ini adalah bagian yang paling banyak dilewati tutorial dan bagian yang menentukan apakah layanan masih hidup di bulan Maret.
Tes di akhir
Setiap panduan diakhiri dengan perintah yang keluarannya memberi tahu Anda secara tidak ambigu apakah build berhasil. Bukan “Anda sekarang seharusnya melihat halaman login”. Sesuatu dengan kode keluar atau header yang dapat Anda baca.
“Jika baris terakhir halaman adalah “dan kemudian konfigurasikan firewall Anda”, itu bukan panduan, itu adalah daftar belanja.”
Cara mengikutinya tanpa kehilangan satu malam
Ini ditulis untuk orang yang membaca seluruh halaman sebelum mengetik apa pun. Kebiasaan itu kira-kira bernilai satu jam per build.
Asumsikan image Debian 13 yang baru dan shell root kecuali panduan menyatakan sebaliknya. Segala sesuatu lainnya dinyatakan dalam dua paragraf pertama.
- 01
Terapkan sesuatu yang baru
Memasang panduan pada mesin yang sudah menjalankan tiga layanan adalah cara Anda menemukan yang mana yang diam-diam menggunakan port 8080. Instance baru berjarak kurang dari satu menit dan Anda dapat menghancurkannya setelahnya.
- 02
Baca sekali dari awal sampai akhir
Terutama langkah DNS. Setengah dari build di sini memerlukan sebuah record untuk menyebar sebelum perintah berikutnya berhasil, dan tempat termurah untuk mempelajarinya adalah pada pembacaan pertama, bukan pada langkah kesebelas.
- 03
Ganti placeholder
Apa pun yang berbentuk example.com, 2001:db8: atau <angle brackets> adalah milik Anda untuk diganti. Rentang dokumentasi digunakan dengan sengaja sehingga kesalahan salin-tempel gagal dengan keras, bukan diam-diam mencapai jaringan orang lain.
- 04
Snapshot sebelum bagian yang tidak dapat dibatalkan
Repartisi, dist-upgrade, apa pun yang melibatkan kata “wipe”. Paket snapshot memberi Anda lima slot dan pemulihan yang selesai dalam hitungan detik, yang lebih murah daripada mengulangi langkah satu sampai sembilan.
- 05
Jalankan verifikasi
Ini bagian terakhir dari setiap panduan dan ada karena “tampaknya mulai” tidak sama dengan “berfungsi”. Dua menit memeriksa lebih baik daripada mengetahuinya dari seorang pengguna.
Tidak ada di halaman ini yang menyalurkan skrip jarak jauh ke dalam shell. Di mana proyek upstream hanya menyediakan penginstal dengan cara itu, panduan menunjukkan cara mengambilnya, membacanya, dan menjalankannya sebagai file — Anda harus tahu apa yang masuk ke mesin Anda, dan kami juga harus tahu.
Mesin mana yang diinginkan setiap build
Sebagian besar berjalan dengan lancar di instance Ryzen terkecil. Empat di antaranya tidak, dan memilih baris yang salah untuk keempatnya akan membuang waktu sore sebelum Anda sampai ke bagian yang menarik.
Jika panduan menyebutkan paket tertentu, itu adalah paket yang digunakan untuk pengujian. Memilih paket yang lebih kecil biasanya tidak masalah, dan ini dicatat jika tidak. Paket yang lebih besar hanya mengubah angka yang Anda masukkan ke berkas konfigurasi, dan panduan yang peduli pada perhitungan itu menunjukkan perhitungannya.
| Bangunan | Baris | Mengapa itu |
|---|---|---|
| WireGuard, relay Tor, Matrix, pemantauan | Ryzen R-4 | Satu utas, terikat jaringan, set kerja kecil. Lebih banyak inti tidak mengubah apa pun. |
| Server surat, pelari CI, Nextcloud | Ryzen R-8 | Langkah pembangunan dan anti-spam sama-sama menyukai inti yang cepat. Pembangunan citra adalah hal terberat di sini. |
| Postgres | EPYC E-8 ke atas | Penyetelan dalam panduan itu mengasumsikan 64 GB memori ECC dan penjaitan yang sadar NUMA. |
| Inferensi lokal | GPU G-L40S | Empat puluh delapan gigabyte VRAM, diteruskan langsung. Kartu bersama adalah antrean orang lain. |
| Seedbox | Penyimpanan S-50 | Lima puluh terabyte penyimpanan massal di belakang tingkat tulis NVMe, pada port yang cukup besar untuk mengurasnya. |
| Proxmox dengan tamu bersarang | Bare metal BM-E | Virtualisasi bersarang membutuhkan mesin fisik. Tidak ada hypervisor kami yang menghalangi. |
| Memindahkan dua terabyte antar situs | Dua instance apa pun | Ditulis berdasarkan node penyimpanan dan kotak Ryzen, tetapi metodenya sama pada ukuran berapa pun. |
Setiap panduan mengasumsikan IPv6 /64 yang dirutekan yang disertakan dengan setiap instance. Dua di antaranya meminta /48 sebagai gantinya, karena membagikan subnet per klien dari satu /64 berarti memproksi penemuan tetangga, dan IPv6 yang diproksi adalah hal yang Anda debug untuk mencari nafkah daripada menjalankannya.
Privasi
03Infrastruktur
04Development
02Networking
02Pertanyaan tentang panduan, bukan tentang bangunannya
Sebagian besar, ya. Bagian yang milik kami adalah langkah-langkah panel, prefiks yang dirutekan, dan asumsi inti khusus. Segala sesuatu yang lain adalah Debian standar dan perangkat lunak hulu, jadi perintahnya port dengan bersih ke mana pun yang memberi Anda root dan tidak menjual CPU secara berlebihan.
Karena menulis dua belas panduan lima kali adalah cara dokumentasi menjadi basi. Debian 13 adalah citra default kami, nama paketnya stabil selama bertahun-tahun, dan menerjemahkan langkah ke AlmaLinux atau Alpine adalah substitusi manajer paket, bukan penulisan ulang. Daftar citra lengkap ada di halaman sistem operasi.
Beri tahu kami. Panduan dijalankan ulang terhadap citra bersih saat kami mendengar ada yang rusak, dan versi yang dikoreksi dikirim minggu yang sama dengan tanggal di atas diperbarui. Tiket dengan perintah dan kesalahannya sudah cukup; Anda tidak perlu mendiagnosisnya untuk kami.
Kami mendukung mesin, jaringan, dan penyimpanan di bawahnya. Men-debug berkas peta Postfix Anda pada pukul tiga pagi tidak termasuk dalam daftar itu, dan kami juga akan buruk dalam hal itu. Pengamanan terkelola tersedia sebagai tambahan jika Anda ingin baseline dikelola oleh orang lain.
Untuk delapan dari dua belas, ya, dan R-4 adalah paket yang digunakan untuk menulis beberapa di antaranya. Bangunan Postgres, inferensi, seedbox, dan Proxmox membutuhkan baris yang disebutkan dalam tabel di atas; sisanya nyaman dengan empat inti khusus dan 16 GB.
Pilih kota, terapkan, ikuti langkahnya.
Instance yang Anda butuhkan untuk sebagian besar ini berharga lebih murah daripada kopi yang akan Anda minum saat membangunnya. Bayar dengan koin, tunggu sekitar empat puluh tujuh detik, dan mulai dari langkah satu.