SSD Nodes Learn Hosting plans →
Panduan Matt ConnorOleh Matt Connor

25 Aplikasi Self-Hosted Terbaik Untuk VPS Tahun 2026

Senarai 25 aplikasi self-hosted yang wajib dicuba pada tahun 2026. Dapatkan maklumat jujur mengenai penggunaan RAM, storan, serta isu teknikal sebenar bagi setiap perkhidmatan.

Apa yang anda sedang bina

Bukan satu aplikasi, tetapi satu senarai pendek. Ini adalah hab untuk segala-galanya di tapak ini: dua puluh lima aplikasi yang benar-benar berbaloi untuk dijalankan pada VPS anda sendiri pada tahun 2026, dikumpulkan mengikut fungsi yang dilakukan. Bagi setiap aplikasi, anda akan mendapat perkhidmatan yang digantikannya, angka RAM dan cakera yang jujur, serta satu perkara yang akan menyusahkan anda jika anda mengabaikannya. Pautan tersebut menghala ke panduan langkah demi langkah penuh jika ia tersedia.

Saya telah mengendalikan hos VPS selama lima belas tahun, dan saya menjalankan kebanyakan aplikasi ini pada pelayan saya sendiri. Jadi, angka sumber di bawah adalah apa yang sebenarnya digunakan oleh aplikasi di bawah beban kerja sebenar yang kecil, bukan "minimum" daripada halaman pemasaran. Anggap ia sebagai bajet, kemudian tambahkan ruang tambahan.

Prasyarat dan realiti sebenar

Setiap aplikasi di sini dijalankan pada VPS KVM Ubuntu 24.04 yang baharu dengan akses root atau sudo. Senarai yang sama boleh dijalankan dengan baik pada pelayan di rumah anda, dan jika anda sedang menimbang kos sewa bulanan berbanding membeli RAM sekali sahaja, Proxmox di rumah berbanding VPS sewaan membincangkan pengiraan perkakasan dan kuasa. Hampir kesemuanya diedarkan sebagai Docker container, jadi pasang Docker sekali sahaja dan anda bersedia untuk hampir keseluruhan senarai ini (dua pengecualian, Cloudron dan CasaOS, dipasang terus pada hos dengan skrip pemasangan sendiri, lihat bahagian panel kawalan):

curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker "$USER"
newgrp docker
docker run --rm hello-world

Jika arahan docker gagal dengan permission denied while trying to connect to the Docker daemon socket, anda terlepas langkah kumpulan atau tidak membuka shell baharu, log keluar dan masuk semula. Jika docker compose memulangkan docker: 'compose' is not a docker command, anda menggunakan binari kendiri lama; skrip di atas memasang pemalam Compose moden, yang anda panggil sebagai docker compose (satu ruang, bukan tanda sempang).

Tiga realiti menentukan bentuk segala perkara di bawah. Pertama, RAM ialah kekangan, bukan cakera atau CPU. VPS 1 GB hanya boleh menjalankan satu aplikasi kecil dan tiada apa-apa lagi. 4 GB ialah tahap yang ideal untuk pelayan "self-host beberapa perkara". 2 GB ialah tahap pertengahan yang sukar di mana pengguna baharu menyusun servis ketiga, terkena Out-Of-Memory kill secara senyap, dan tidak pernah mengetahui mengapa container tersebut hilang begitu sahaja, sudo dmesg menunjukkan baris Out of memory: Killed process yang ditelan oleh daemon. Kedua, apa-apa yang bersifat awam memerlukan nama dan sijil, IP kosong hanya berfungsi untuk ujian dan akan gagal sebaik sahaja anda mahukan aplikasi telefon atau pelayar untuk mempercayainya. Ketiga, dua port menentukan separuh daripada pilihan anda: port masuk 80 mesti sampai ke pelayan untuk cabaran sijil HTTP-01 standard (cabaran DNS-01 melangkaui perkara itu dengan membuktikan kawalan melalui rekod DNS, berguna apabila port 80 ditutup), dan port keluar 25 disekat oleh kebanyakan penyedia, itulah sebabnya e-mel berada dalam senarai "jangan buat" di bahagian akhir.

Fail dan foto

  • Nextcloud menggantikan Google Drive, Dropbox dan Google Calendar dalam satu suite. Peruntukkan 1–2 GB RAM ditambah dengan saiz fail anda. Perkara penting: SQLite sesuai untuk demo tetapi merupakan perangkap dalam persekitaran pengeluaran (production). Pasang ia menggunakan PostgreSQL sejak permulaan, kerana memindahkan pangkalan data selepas data anda dimuat naik adalah punca paling kerap pengguna merosakkan Nextcloud. Panduan lengkap Nextcloud pada VPS dengan Docker, TLS dan sandaran menyediakan konfigurasi yang betul sejak awal.
  • Immich menggantikan Google Photos, lengkap dengan aplikasi telefon yang memuat naik gulungan kamera secara automatik serta fungsi carian wajah dan objek. Peruntukkan 6 GB RAM; dokumentasi Immich menyatakan ini sebagai tahap minimum, manakala 8 GB adalah selesa. Kontena pembelajaran mesin (machine-learning) adalah bahagian yang menggunakan banyak sumber, dan ruang cakera mestilah bersamaan dengan saiz pustaka anda ditambah kira-kira dua puluh peratus untuk imej kecil (thumbnails). Perkara penting: Immich telah mengikut pemversian semantik sejak keluaran stabil pertamanya, v2.0.0, pada Oktober 2025. Ini mengehadkan perubahan yang memecahkan konfigurasi (breaking changes) kepada versi major sahaja. Memandangkan ia telah beralih ke v3, jangan sesekali melakukan pull pada tag latest secara membuta tuli, kerana ia akan membawa anda terus ke versi major seterusnya. Tetapkan (pin) versi tertentu dan baca nota keluaran sebelum setiap naik taraf. Panduan pustaka foto Immich yang dihoskan sendiri merangkumi laluan naik taraf yang selamat. Jika had 6 GB tersebut melebihi kapasiti pelayan anda, PhotoPrism dan Immich secara bersebelahan membandingkan penggunaan memori sebenar, aplikasi telefon dan arahan sandaran yang diperlukan oleh setiap satu sebelum anda memilih salah satu untuk pustaka anda.
  • Seafile menggantikan Dropbox dengan enjin penyelarasan terpantas antara ketiga-tiganya. Peruntukkan sekitar 1 GB RAM. Perkara penting: Seafile menyimpan fail anda sebagai blok beralamat kandungan (content-addressed blocks), bukan sebagai fail biasa pada cakera. Oleh itu, anda tidak boleh melayari data tersebut menggunakan ls dan anda mesti membuat sandaran melalui alatan Seafile sendiri, bukan dengan menyalin folder secara manual.

Kata Laluan

  • Vaultwarden menggantikan pelan berbayar Bitwarden, LastPass dan 1Password dengan pelayan Rust bersaiz kecil yang menggunakan protokol Bitwarden, supaya setiap aplikasi rasmi dan pelanjutan pelayar Bitwarden boleh berfungsi secara terus. Peruntukkan 100–200 MB RAM dan hampir tiada penggunaan cakera. Perkara penting: pelayan ini menyimpan setiap kata laluan anda, jadi TLS dan sandaran bukanlah pilihan, malah ia adalah tujuan utama. Tetapkan ADMIN_TOKEN sebagai hash Argon2, kerana token teks biasa dalam fail compose anda merupakan kata laluan kepada panel admin pelayan anda. Panel ini menyenaraikan setiap pengguna dan mengubah tetapan pelayan, dan ia akan terdedah dalam teks jelas kepada sesiapa sahaja yang boleh membaca fail tersebut. Panduan pengurus kata laluan Vaultwarden adalah projek self-host pertama yang paling sesuai untuk dimulakan.

Media

  • Jellyfin menggantikan Plex dan, untuk pustaka peribadi anda, Netflix. Ia bersifat sumber terbuka sepenuhnya, tidak memerlukan akaun, dan tiada sekatan bayaran untuk penstriman jarak jauh. Peruntukkan 1–2 GB RAM semasa melahu, namun penggunaan CPU akan melonjak tinggi semasa transkod. Perkara penting: transkod perisian untuk strim 4K akan membebankan VPS kecil; sama ada sediakan pecutan perkakasan (hardware acceleration) atau simpan fail anda dalam format yang boleh dimainkan terus oleh klien (Direct Play), supaya pelayan hanya perlu memindahkan bait data. Panduan Jellyfin media server on a VPS menjelaskan perbezaan antara kedua-duanya. Setelah ia berjalan, Halcyon menukarkan pustaka yang sama menjadi kedai sewa video era 90-an yang boleh dilayari di dalam pelayar web. Ini merupakan helah paling unik dan berkesan yang saya tahu untuk menggalakkan ahli isi rumah melayari rak koleksi berbanding hanya menatal tanpa arah.
  • Navidrome menggantikan Spotify untuk muzik peribadi anda, dengan menstrim ke mana-mana aplikasi yang serasi dengan Subsonic. Peruntukkan 150–300 MB RAM; ia ditulis dalam Go dan hampir tidak menggunakan sumber sistem. Perkara penting: imbasan pustaka pertama akan membaca tag setiap fail dan boleh mengambil masa sejam untuk koleksi yang besar. Tag ID3 yang tidak kemas akan menyebabkan pengalaman pelayaran yang buruk.
  • Audiobookshelf menggantikan Audible dan aplikasi podcast anda, serta mengekalkan kedudukan main balik merentas peranti. Peruntukkan 200–500 MB RAM. Perkara penting: ia memerlukan susunan folder yang ketat (satu folder bagi setiap buku). Folder import yang tidak teratur akan menghasilkan pustaka yang berselerak dan sukar dikesan, yang sangat memenatkan untuk dibaiki kemudian.

Automasi dan AI

  • n8n menggantikan Zapier dan Make dengan pembina aliran kerja visual milik anda sendiri, tanpa caj bagi setiap tugasan. Peruntukkan 400 MB–1 GB RAM. Perkara penting: n8n menyulitkan kelayakan yang disimpan dengan kunci yang dijana pada permulaan pertama. Jika anda kehilangan kunci tersebut atau terlupa menetapkan N8N_ENCRYPTION_KEY dan membiarkannya menjana semula, semua kelayakan yang disimpan akan menjadi tidak boleh dibaca dan anda perlu memasukkannya semula. Panduan n8n yang dihoskan sendiri dengan HTTPS menetapkan kunci tersebut dan meletakkan sijil sebenar di hadapan URL webhook.
  • Ollama menggantikan langganan ChatGPT untuk inferens LLM secara tempatan dan peribadi. Belanjawan mengikut model: model 7–8B memerlukan kira-kira 8 GB RAM, dan saiznya pada cakera bergantung pada kuantisasi, kira-kira 4 hingga 5 GB untuk muat turun 4-bit biasa dan 13 GB atau lebih untuk binaan fp16 berketepatan penuh. Perkara penting: pada VPS yang hanya menggunakan CPU, inferens adalah tepat tetapi perlahan, bayangkan kelajuan dalam perkataan sesaat, bukan balasan segera seperti yang anda peroleh daripada API yang dihoskan. Jadi, tetapkan jangkaan yang realistik atau sewa pelayan GPU. Panduan menjalankan Ollama untuk menghoskan sendiri LLM mempunyai angka yang realistik.

Komunikasi

  • Rocket.Chat menggantikan Slack untuk pasukan, dengan ciri thread, panggilan dan integrasi. Peruntukkan 2 GB RAM ke atas, kerana ia berjalan pada MongoDB yang merupakan komponen paling berat. Perkara yang perlu diberi perhatian: setiap major release Rocket.Chat hanya menyokong julat versi MongoDB yang terhad (8.x memerlukan MongoDB 8.0 atau lebih baharu, 7.x berjalan pada 6.0 atau 7.0), dan garis panduan naik taraf Rocket.Chat sendiri menyatakan untuk beralih melalui versi major mengikut urutan. Melangkau satu versi akan menyebabkan pangkalan data anda tersangkut, jadi lakukan naik taraf satu langkah demi satu langkah. Panduan Rocket.Chat dengan Docker Compose menerangkan langkah-langkah menaiki tangga versi tersebut.
  • Matrix (Synapse) menggantikan Slack dan Discord dengan rangkaian bersekutu (federated) yang disulitkan dari hujung ke hujung, di mana anda memiliki homeserver sendiri. Peruntukkan 1–2 GB RAM yang akan meningkat apabila anda menyertai bilik awam yang besar. Perkara yang perlu diberi perhatian: penggunaan memori Synapse melonjak pada bilik bersekutu yang besar, dan ia mesti dijalankan pada PostgreSQL. SQLite lalai hanya berfungsi untuk ujian pengguna tunggal dan akan terhenti sebaik sahaja anda melakukan federasi. Jika Synapse terasa berat, pelayan Conduit atau Dendrite yang lebih ringan menggunakan protokol yang sama.

Rangkaian dan akses

  • WireGuard menggantikan VPN komersial, memberikan anda terowong peribadi ke alamat IP anda sendiri dan perkhidmatan lain. Kosnya hampir sifar, saiznya di bawah 50 MB dan kriptografi berjalan di dalam kernel. Perkara yang perlu diberi perhatian: pada virtualisasi berasaskan kontena (OpenVZ, sesetengah LXC) modul ini gagal dengan RTNETLINK answers: Operation not supported; anda memerlukan KVM. Panduan WireGuard VPN yang dihoskan sendiri adalah rujukan utama, dan menggabungkannya dengan perkhidmatan yang terikat pada terowong adalah cara untuk memastikan semuanya tidak terdedah kepada internet awam. Jika anda tidak mahu menyunting konfigurasi peer secara manual untuk setiap peranti baharu, menjalankan Tailscale subnet router pada VPS akan mengiklankan keseluruhan julat peribadi tersebut kepada mesin anda yang lain, sebaik sahaja anda meluluskan laluan tersebut dan memastikan IP forwarding kekal aktif selepas but semula.
  • Traefik menggantikan virtual host nginx yang ditulis tangan dan pembaharuan sijil manual, ia menemui kontena anda melalui label Docker dan mendapatkan sijil Let's Encrypt secara automatik. Peruntukan RAM sekitar 100 MB. Perkara yang perlu diberi perhatian: model konfigurasi berasaskan label agak mengelirukan pada mulanya, dan satu label yang salah akan menyebabkan aplikasi tidak dihalakan tanpa ralat yang jelas. Panduan Traefik reverse proxy untuk pelbagai aplikasi Docker dibina khusus untuk menjalankan beberapa aplikasi dalam halaman ini di sebalik satu titik masuk.
  • AdGuard Home menggantikan kotak Pi-hole dan penapisan DNS berbayar, menyekat iklan dan penjejak untuk setiap peranti dalam rangkaian anda pada lapisan DNS. Peruntukan RAM 100–150 MB. Perkara yang perlu diberi perhatian: ia mahu menggunakan port 53, yang bertembung dengan systemd-resolved pada Ubuntu, ia gagal bermula dengan listen udp 0.0.0.0:53: bind: address already in use sehingga anda mengosongkan port tersebut terlebih dahulu.

Pemantauan

  • Uptime Kuma menggantikan Pingdom, UptimeRobot dan StatusPage dengan papan pemuka yang kemas serta makluman ke hampir mana-mana saluran. Peruntukkan 150–300 MB RAM. Perkara penting yang sering terlepas pandang: pantau pelayan pengeluaran anda daripada pelayan yang berbeza. Uptime Kuma yang berjalan pada pelayan yang sama tidak dapat memberitahu anda apabila pelayan tersebut mati. Panduan pemantauan status Uptime Kuma merangkumi penempatan luaran.
  • Zabbix menggantikan Datadog dan suit pemantauan perusahaan, dengan metrik berasaskan ejen yang mendalam, pencetus (triggers) dan sejarah. Peruntukkan 2 GB RAM ke atas, serta pangkalan datanya sendiri. Perkara penting: Zabbix sangat berkuasa dan agak berat untuk disediakan; ia terlalu berlebihan untuk memantau tiga kontena tetapi merupakan alat yang tepat untuk sekumpulan pelayan. Mulakan dengan Uptime Kuma; beralih kepada pelayan pemantauan Zabbix apabila anda benar-benar mempunyai infrastruktur untuk dipantau.

Prometheus dan Grafana sengaja tidak disertakan dalam senarai ini: ia adalah alat yang hebat untuk skala kumpulan pelayan yang besar, namun ia lebih berat untuk dijalankan dan ditala berbanding keperluan timbunan peribadi yang hanya terdiri daripada dua atau tiga pelayan. Uptime Kuma dan Zabbix menjawab persoalan yang sama pada skala ini dengan penyelenggaraan yang lebih rendah.

Papan pemuka dan panel kawalan

Ini mengubah keseluruhan model, di mana panel menguruskan aplikasi untuk anda dan bukannya menjalankan fail compose secara manual.

  • Cloudron menggantikan keinginan "saya harap ini boleh dipasang dengan satu klik" dengan gedung aplikasi yang kemas, TLS automatik dan sandaran terbina dalam. Sediakan sekurang-kurangnya 2 GB RAM, 4 GB adalah lebih selesa. Perkara penting: ia mempunyai pendekatan tersendiri dan mahukan kawalan penuh ke atas pelayan; ia dipasang pada pelayan Ubuntu baharu dengan skrip cloudron-setup miliknya sendiri dan bukannya sebagai kontena. Dokumentasinya tidak menyokong hos ARM, LXC, Docker dan OpenVZ. Ia hanya percuma untuk dua aplikasi sahaja, selebihnya adalah produk berbayar.
  • CasaOS menggantikan papan pemuka homelab yang berselerak dengan grid aplikasi yang mesra pengguna, percuma dan ringan. Ia dipasang pada hos dengan skripnya sendiri (curl -fsSL https://get.casaos.io | sudo bash), bukan sebagai kontena, kemudian menjalankan aplikasi anda di dalam Docker. Sediakan sekitar 150 hingga 300 MB RAM untuk CasaOS itu sendiri. Perkara penting: ia direka untuk rangkaian rumah yang dipercayai dan tidak diperkukuh untuk internet awam; jangan dedahkannya secara terus, sebaliknya akses melalui WireGuard.
  • Coolify menggantikan Heroku, Vercel dan Netlify, dengan keupayaan git-push deployment, pangkalan data dan pratonton pada pelayan anda sendiri. Sediakan sekurang-kurangnya 2 GB RAM. Perkara penting: ia merupakan projek yang masih baharu dan berkembang pesat, jadi tetapkan versi (pin versions) dan baca nota keluaran sebelum melakukan naik taraf. Perbandingan Cloudron vs CasaOS vs Coolify memperincikan kesesuaian setiap satu daripada ketiga-tiga pilihan ini mengikut keperluan pengguna.

Alat pembangun dan produktiviti

  • Gitea (atau Forgejo) menggantikan GitHub untuk repositori peribadi, isu dan CI. Peruntukkan 200–500 MB RAM. Perkara penting: Forgejo ialah fork Gitea yang ditadbir oleh komuniti dan kini disyorkan oleh ramai pengguna; kedua-duanya sangat baik, tetapi pilih satu dan buat sandaran repositori serta pangkalan data secara serentak, sandaran repo tanpa pangkalan data akan menyebabkan kehilangan semua isu dan pull request.
  • Paperless-ngx menggantikan kabinet fail dan pengimbas dokumen berbayar, melakukan OCR pada segala-galanya supaya dokumen anda boleh dicari. Peruntukkan sekitar 1 GB RAM, dengan lonjakan penggunaan CPU semasa proses OCR. Perkara penting: hasil OCR bergantung pada kualiti imbasan anda, dan memproses semula arkib yang besar adalah perlahan, lakukan penalaan sebelum anda mengimport pukal dokumen kertas selama sepuluh tahun.
  • Actual Budget menggantikan YNAB dan Mint yang telah ditutup dengan sistem belanjawan sampul surat yang pantas, setempat dan peribadi. Peruntukkan sekitar 150 MB RAM. Perkara penting: penyelarasan bank automatik disertakan tetapi bersifat pilihan, dan ia hanya berfungsi selepas anda mendaftar dengan penyedia serantau seperti SimpleFIN Bridge atau Enable Banking serta menambah kelayakan API anda sendiri, jadi secara lalai anda perlu mengimport transaksi secara manual.
  • FreshRSS menggantikan Feedly dan Google Reader yang telah tiada, pembaca suapan yang pantas dan peribadi dengan aplikasi mudah alih. Peruntukkan sekitar 150 MB RAM. Perkara penting: sediakan penyegaran suapan berasaskan cron, jika tidak suapan hanya akan dikemas kini apabila anda membuka halaman tersebut.
  • BookStack menggantikan Notion dan Confluence untuk dokumentasi, disusun sebagai rak, buku dan halaman. Peruntukkan sekitar 500 MB RAM pada PHP dan MySQL. Perkara penting: ia menyusun kandungan mengikut caranya sendiri dan bukannya sebagai nota bebas, yang mana sesetengah orang menyukainya manakala yang lain mendapatinya terlalu kaku, cuba dahulu sebelum anda memindahkan seluruh wiki anda.
  • Home Assistant menggantikan SmartThings dan sedozen aplikasi vendor, menyatukan rumah pintar anda secara setempat. Peruntukkan sekitar 1 GB RAM. Perkara penting: kebanyakan keupayaannya memerlukan akses rangkaian setempat ke peranti anda, jadi ia lebih sesuai dijalankan pada perkakasan di rumah berbanding VPS jauh, jalankan papan pemuka dari jauh dan buat jambatan sambungan jika perlu.

Pemasangan contoh

Untuk menjadikannya lebih jelas, berikut adalah bentuk keseluruhan bagi self-host: fail compose, sijil sebenar, dan sandaran. Ini adalah Uptime Kuma, namun setiap aplikasi dalam senarai mengikut corak yang sama.

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    volumes:
      - ./data:/app/data
    ports:
      - "127.0.0.1:3001:3001"
    restart: unless-stopped
docker compose up -d
docker compose logs -f

Perhatikan 127.0.0.1:, aplikasi hanya mendengar pada localhost, dan reverse proxy seperti Traefik atau nginx melakukan TLS termination di hadapannya. Melakukan binding terus ke 0.0.0.0:3001 adalah punca pengguna secara tidak sengaja menerbitkan panel pentadbir tanpa enkripsi ke seluruh internet.

Perkara yang TIDAK patut di-self-host (buat masa ini)

  • E-mel. Ini adalah perkara yang paling jujur. Port 25 keluar disekat oleh kebanyakan penyedia VPS, anda akan melihat Connection timed out daripada telnet aspmx.l.google.com 25 dan tiada apa yang boleh dibaiki dari pihak anda, ia adalah polisi penyedia. Sesetengah penyedia akan membukanya jika anda meminta (AWS, sebagai contoh, membenarkan anda memohon supaya sekatan itu dibuang), tetapi itu adalah satu permohonan, bukan suis. Walaupun dengan port 25 dibuka, IP baharu tanpa reputasi, rekod PTR, SPF, DKIM, dan DMARC akan menyebabkan e-mel anda masuk ke dalam spam atau ditolak terus. Ia adalah kerja sebenar yang berterusan, bukan kerja hujung minggu. Jika anda tetap mahu melakukannya, mulakan dengan pengetahuan yang jelas menggunakan panduan self-hosted email with Mailcow, dan bersedialah untuk memantau kebolehpenghantaran e-mel selama berbulan-bulan.
  • Apa-apa yang anda tidak boleh sandar dan pulihkan dengan pasti. Jika anda tidak pernah melakukan ujian pemulihan, anda tidak mempunyai sandaran, anda hanya mempunyai harapan. Jangan letakkan data yang tidak boleh diganti, satu-satunya salinan gambar anda, atau akaun anda, pada sesuatu servis sehingga pemulihannya terbukti berjaya.
  • Satu-satunya salinan bagi dependensi kritikal anda. Pelayan DNS self-hosted yang apabila terhenti, menyebabkan seluruh rangkaian internet anda terputus, adalah projek pertama yang buruk. Kekalkan sandaran upstream.
  • Sistem keselamatan masa nyata. Penggera rumah, amaran perubatan, atau apa-apa sahaja yang menyebabkan lima minit waktu henti menjadi masalah sebenar, tidak sepatutnya berada pada kotak hobi yang anda naik taraf pada malam Ahad.

Cara memilih aplikasi pertama anda, dan dua perkara yang tidak boleh dikompromi

Pilih aplikasi yang menghapuskan bil yang anda tidak suka atau kebimbangan privasi yang anda benar-benar rasai. Secara praktikalnya, pemasangan pertama yang terbaik ialah Vaultwarden dan Uptime Kuma: kedua-duanya bersaiz kecil, berguna serta-merta, dan memaafkan jika anda melakukan kesilapan. Pastikan satu aplikasi berfungsi sepenuhnya, daripada pemasangan, sijil, sandaran, sehingga ujian pemulihan, sebelum anda menambah aplikasi kedua. Kemahiran yang anda bina ialah operasi, bukan sekadar menekan butang pasang.

Dua perkara tidak boleh dikompromi pada setiap aplikasi di atas, tanpa pengecualian:

  1. TLS pada semua perkhidmatan awam. Perkhidmatan plaintext dengan IP kosong hanyalah demo, bukan deployment. Letakkan sijil sebenar di hadapannya dengan Certbot dan Let's Encrypt pada nginx, atau biarkan Traefik melakukannya secara automatik. Kemudian, perketatkan pintu masuk dengan Fail2ban untuk SSH pada Ubuntu 24.04.
  2. Sandaran yang telah anda pulihkan. Automatkan dump setiap malam, pangkalan data dan volum data secara bersama, hantarkannya keluar dari pelayan, dan sekali sebulan pulihkan ia ke dalam VPS sementara untuk membuktikan ia berfungsi. Hari cakera anda rosak bukanlah hari yang sesuai untuk mendapati sandaran anda kosong.

Pastikan dua perkara ini betul dan self-hosting akan menjadi satu keseronokan. Abaikan perkara ini dan ia hanyalah satu detik menunggu masa untuk gagal.

Pilihan yang ada bermula daripada yang praktikal sehingga yang melampau, daripada pelayan Minecraft pada VPS untuk keluarga sehinggalah, jika anda meminati kisah teladan, pusat data paling tidak cekap di dunia.

FAQ

Apakah yang perlu saya self-host dahulu?

Vaultwarden. Pengurus kata laluan memberikan nilai harian, menggantikan langganan, dan memaksa anda mempelajari keseluruhan aliran kerja, Docker, reverse proxy, TLS, dan sandaran, pada aplikasi yang cukup kecil untuk dibina semula dalam sepuluh minit jika anda merosakkannya. Uptime Kuma adalah pilihan kedua yang hebat, supaya anda mengetahui tentang gangguan servis sebelum pengguna anda mengetahuinya.

Berapakah saiz VPS yang sebenarnya saya perlukan?

Untuk satu aplikasi kecil, 1 GB RAM sudah memadai. Untuk pelayan yang selesa bagi "menjalankan beberapa perkara", sasarkan 4 GB; pada tahap 2 GB, pengguna sering mengalami masalah container terhenti secara senyap akibat Out-Of-Memory dan tidak dapat mengetahui puncanya. RAM hampir selalunya menjadi had; tambah storan cakera mengikut data yang anda rancang untuk simpan, dan jangkakan Immich, Ollama, serta apa-apa aplikasi dengan pangkalan data yang besar memerlukan lebih banyak RAM dan storan.

Apakah yang tidak patut saya self-host?

E-mel, perkara pertama dan utama, port keluar 25 disekat oleh kebanyakan penyedia dan kebolehpenghantaran e-mel adalah perjuangan sepenuh masa. Selepas itu, apa-apa yang anda tidak boleh sandar dan pulihkan dengan pasti, dan sebarang titik kegagalan tunggal yang menyebabkan kemudaratan sebenar jika terhenti, seperti pelayan DNS tanpa sandaran atau sistem keselamatan rumah. Segala perkara lain dalam senarai ini adalah wajar untuk dicuba.

Adakah saya perlukan Docker untuk semua ini?

Tidak, tetapi anda digalakkan menggunakannya. Setiap aplikasi di sini kecuali Cloudron dan CasaOS mempunyai imej Docker; kedua-dua aplikasi tersebut dipasang terus pada hos dengan skrip persediaan mereka sendiri dan kemudian menjalankan aplikasi mereka dalam container untuk anda. Bagi yang lain, Docker memberikan anda pemasangan yang bersih, pembuangan yang bersih, penetapan versi yang mudah, dan kebolehalihan ke hos baharu. Beberapa aplikasi (WireGuard, Zabbix) juga boleh dipasang secara natif melalui apt jika anda lebih suka. Sebaik sahaja anda memahami satu fail compose, anda memahami kesemuanya, itulah sebabnya keseluruhan senarai ini menjadi mudah untuk didekati.

Bagaimanakah cara untuk memastikan semuanya selamat?

Empat tabiat merangkumi kebanyakan aspek keselamatan: letakkan TLS di hadapan segala-galanya, kunci SSH dengan log masuk menggunakan kunci sahaja dan Fail2ban untuk menyekat percubaan brute-force, dedahkan hanya port yang benar-benar diperlukan secara awam dan akses selebihnya melalui WireGuard VPN, serta kemas kini secara berkala sambil membaca nota keluaran supaya naik taraf tidak mengejutkan anda. Sandaran adalah tabiat kelima, ia adalah pemulihan anda apabila kesilapan terlepas daripada empat tabiat pertama.