Semuanya dimulai dengan eksperimen kecil tentang cara menginstal server perpesanan Synapse pada
smartphone dengan sistem operasi Ubuntu Touch , dan akhirnya menciptakan pusat data rumah kecil pada 5 server mini ARM (Raspberry Pi dan ODROID-XU4), fungsi utamanya adalah untuk memastikan pengoperasian sistem pertukaran Pesan / panggilan Matriks dan WebRTS untuk 10 pengguna.

Matrix adalah protokol perpesanan instan terbuka (berdasarkan server terdesentralisasi) yang memungkinkan pengguna untuk bertukar pesan teks dan file, membuat panggilan suara dan video, membuat saluran obrolan, dll.
Klien paling terkenal untuk jaringan Matrix adalah Riot.im, diimplementasikan sebagai aplikasi seluler, web, atau desktop. Fungsionalitasnya tidak kalah dengan pelanggan pesan instan modern Slack / Telegram / WhatsApp.
Jadi, setelah menginstalnya pada smartphone (server sulit digunakan ketika ada di saku Anda dan secara konstan mengubah alamat dan metode koneksi - WiFi / 3G / 4G), langkah selanjutnya adalah mentransfer sistem ke satu Raspberry Pi. Front-end - Implementasi
server sinaps dengan Python , back-end - database PostgreSQL dari distribusi standar Raspbian untuk Raspberry Pi.
Koneksi ke Internet - melalui penerusan port (port 8448) pada modem vDSL rumah dengan alamat IP eksternal statis.
Semuanya bekerja, tetapi kadang-kadang dengan "derit" - ada penundaan berkala - menghubungkan klien membutuhkan beberapa detik, batas waktu saat menyambung ke saluran / kamar pihak ketiga dari matrix.org.
Setelah mentransfer database PostgreSQL ke Raspberry Pi kedua, kinerjanya meningkat tajam, tetapi tetap saja, kadang-kadang ada beban 100% dari salah satu inti prosesor selama beberapa menit (di sisi front-end).
Untuk memperbaiki situasi, front-end dipindahkan ke
ODROID-XU4 tanpa kipas (8 core ARM, 2 Gb RAM, harga server - $ 59), dan kemudian database PostgreSQL dipindahkan ke ODROID-XU4 kedua.

Switch USB Ethernet ($ 20) ditambahkan untuk menghubungkan server twisted pair, drive USB 2 Tb eksternal, serta charger USB 6-port untuk memberi daya pada 3 switch Raspberry Pi dan Ethernet.
Raspberry Pi yang dibebaskan dikonversi: firewall untuk dukungan DMZ, server Zabbix untuk pemantauan, server siaga panas untuk database PostgreSQL (terletak di ruangan lain). Raspberry Pi lain dengan modul akses Internet seluler ditambahkan untuk menerima saluran komunikasi kedua melalui modul 4G untuk Raspberry Pi.
Selain itu, UPS power supply yang tidak pernah terputus ditambahkan.
Selama instalasi, sistem tampak seperti ini (ditempatkan di dalam perapian listrik):

Ukuran database back-end Synapse telah tumbuh ~ 325 Mb selama enam bulan:

Ukuran basis data sistem pemantauan Zabbix telah berkembang menjadi 1,25 Gb dan segera stabil:

Beban jaringan eksternal (jadwal 7 hari):

Beban jaringan internal (jadwal 7 hari):

Bagan beban front-end selama 3 hari:

Ketika enkripsi diaktifkan, klien menyimpan data terenkripsi dalam database, sehingga bahkan akses fisik ke server tidak akan menyebabkan kebocoran data.
Semua hal di atas dapat diterapkan pada VPS murah di pusat data apa pun, tetapi jika itu bekerja secara stabil di rumah, lalu mengapa tidak melakukannya pada peralatan rumah?