Можна хостити на власному фізичному сервері, орендувати VPS (віртуальний персональний сервер) або виділений сервер (dedicated, дедік). Власний часто найдешевше + максимальна незалежність, але найзапарніше. Орендуючи VPS, ви багато організаційних речей перекладаєте на команію-надавача цих послуг, але стаєте, звісно, залежними від неї.
Власний сервер
Все просто: треба сервер (в сенсі комп) і публічну статичну IP-адресу для нього. Важливо, щоб цей комп’ютер не споживав багато енергії. Статичну IP-адресу, скоріш за все, треба буде орендувати в інтернет-провайдера.
- https://landchad.net/selfhosting/ Тут усе зручно пояснено, зокрема нюанси з провайдерами, на які треба зважати
- https://k3tan.com/self-hosting
Про апарати
На компі бажано ставити Debian, бо більшість сисадмін гайдів на дебіані, але можна й іншу збірку Linux чи BSD. Ну і все, можна там розгортати сервіси.
Чому не можна без публічної IP-адреси?
Можна! Але через оверлейні мережі, наприклад, Tor. У клірнеті таке не працює, бо є CGNAT. Якщо коротко, ви свою IP-адресу розділяєте ще з іншими клієнтами провайдера (можна сказати роутер для роутерів).
Прокидання портів
Кожна програма-сервер слухає запити на своєму порті. Щоб пакунки з інтернету йшли до потрібного сервера, в налаштуваннях роутера треба прокинути відповідний порт — співставити потрібний порт роутера з IP пристрою та портом, де розміщений сервіс.
Для сервера SSH, наприклад, це може виглядати так: 22(зовнішній)—192.168.1.5:22. Кожен роутер має свій інтерфейс, шукайте Port Forwarding чи шось таке.
VPS
Простіший шлях, але ви залежні від провайдера VPS і він, в принципі, може робити з вашими файлами що завгодно.