HomeServer README.md
Домашний сервер из Raspberry для всего
По большому счету подойдет для любых линукс-систем.
Здесь я подбираю или адаптирую или собираю под архитектуру ARM64. Но не все получаются.

RaspberryPi 4B
aarch64 ARM Cortex-A72 3; 32-bit, 64-bit; Little Endian; 1800-600MHz; 8GB
OS
Raspberry Pi OS Lite (64-bit) port of Debian Bookworm with no desktop из комалекта rpi-imager
Место расположения около домашнего роутера и использовать лучше проводное подключение т.к.:
- WiFi может пригодится для вещания второй беспроводной сети
- Если поднимать KVM, то проще настроить виртуальный бридж
Замена в файлах
sudo nano /etc/apt/sources.list.d/debian.sourcesиsudo nano /etc/apt/sources.list.d/raspi.listhttp://… на https://…
Сетевые настройки либо на роутере настроен ip для MAC, либо на самом raspberry с помощью sudo nmtui и sudo reboot

Предположим сеть нашего сервера 192.168.0.100/24, 192.168.0.1, 192.168.0.1 8.8.8.8 1.1.1.1, workgroup.
user - фамилия, имя и отчество, паспорт sudo и sa пользователя.
Схема управления кулером (D965T транзистор или аналог NPN 500ma, 1N4001 диод, 470 резистор) подключена к 14-GPIO.
Настройка в sudo raspi-config на 14 pin и 60 цельсия,
но у меня температура не повышалась выше 58 градусов даже при опытах с deepseek.
Очень важно выбрать карту памяти. Не только по емкости, но и по быстродействию.
Не верьте своим глазам, лучше проверьте утилитами.
USB порты лучше не нагружать - на этой малинке почти все завязано на USB hub, в том числе и Lan и WiFi.
Создание ключа ssh на хосте
ssh-keygen -t rsa -b 4096 -C "user@hotmail.com"eval "$(ssh-agent -s)"ssh-add .ssh/id_ed25519
ssh-keygen -t rsa
от админаGet-Service ssh-agent | Set-Service -StartupType ManualStart-Service ssh-agentGet-Service ssh-agentssh-add C:\Users\user\.ssh\id_ed25519
Копирование на raspberry
ssh-copy-id user@192.168.0.100
ssh user@192.168.0.100 mkdir -p /home/user/.ssh/scp C:\Users\user\.ssh\id_ed25519.pub user@192.168.0.100:/home/user/.ssh/authorized_keys
Соединение и настройка
ssh user@192.168.0.100sudo dpkg-reconfigure {locales,console-setup} && sudo rebootsudo apt update && sudo apt full-upgrade -y && sudo reboot
- Установка утилит и средств разработки по усмотрению
sudo apt install -y ssh mc ufw fail2ban htop iftop nmon btop speedtest-cli git unzip unrar aptitude \
apt-transport-https ca-certificates gnupg-agent curl wget net-tools \
gcc gdb default-jdk default-jre build-essential make python3 python3-pip python3-venv python3-dev \
tree rename pass apt-file clang clangd npm nodejs vim dkms perl automake autoconf m4 libevent-dev \
golang llvm-dev libnss3-dev libnss3-tools liblzma-dev libarchive13 libzstd-dev libtest-assertions-perl \
libfuzzer-19-dev meson ffmpeg && sudo apt-file update
curl -LsSf https://astral.sh/uv/install.sh | sh
- Отключение встроенных беспроводных устройств
sudo nano /etc/modprobe.d/raspi-blacklist.conf
# Отключение BT
blacklist btbcm
blacklist hci_uart
# Отключение WI-FI
blacklist brcmfmac
blacklist brcmutil
-
На всякий пожарный
sudo ufw allow OpenSSH -
Установка виртуального моста
sudo apt install bridge-utilssudo nmtui

-
Пустой мост (интерфейсы потом приляпаем)
sudo nano /etc/network/interfaces.d/virtbr
auto virtbr0
iface virtbr0 inet manual
bridge_fd 0
bridge_maxwait 0
bridge_ports none
bridge_hello 2
bridge_maxage 20
# Защита от петель выключена
bridge_stp off
# Зададим MAC
bridge_hw 2a:1e:aa:b1:34:eb
Установка сервисов
Мониторинг
Закачки
Transmission , Httrack , Yt-dlp
Медиасервер
Администрирование
Администрирование контроллера Webmin , Cockpit
Сервер активации Microsoft KMS Server на Linux
Сервер времени NTP или Chrony
Система доменных имен Unbound , PowerDNS , Dnsmasq , BIND
Динамическая настройка узла Kea , Dnsmasq
Сервер печати Cups , Sane
Передача файлов Samba , Dnsmasq , Tftpd Hpa , atftpd
Передача гипертекста Apache , Nginx
Центр распределения ключей KDC (Сервер выдачи мандатов (разрешений) TGS) Kerberos
Виртуализация
Проброс устройств
Базы данных
MS SQL, Postgres, MySQL, MariaDB , MongoDB ,
Децентрализованные сети
Программирование
C ; WEB - PHP , Django ; Python
Контроллер домена
Искусственный интеллект
IP Телефония
Asterisk ,
Не боимся, выбирам что нужно и настраиваем.
Если что не так - сохраняем ~/.bash_history и снова RPI-IMAGER