Якщо ви хостите свій UniFi контролер самостійно, на дашборді Network Application вас напевно зустрічав банер із пропозицією оновитися. У цій статті я опишу, як виконується міграція UniFi на UniFi OS Server на базі Raspberry Pi 5. Ми покроково розберемо процес зупинки старого Docker-контейнера, розгортання ізольованого середовища Podman та відновлення мережевої конфігурації з файлу .unf.
Якщо ви починали свій шлях у self-hosted рішеннях з мого гайду як встановити UniFi контролер на Raspberry Pi 4 або використовували детальну інструкцію про запуск Unifi Network Application в Docker, цей матеріал стане логічним наступним кроком для еволюції вашої мережі.
Скріншот нагадування оновитись до UniFi на UniFi OS Server

Річ у тім, що Ubiquiti повністю змінює підхід до self-hosted рішень. Замість окремого застосунку Network Application вони тепер пропонують повноцінне середовище UniFi OS Server, яке розгортається за допомогою контейнеризації podman і дає такий самий користувацький досвід, як і на фірмових консолях компанії.
Створення бекапу поточної системи
Найголовніше правило будь-якої міграції – зробити бекап. Оскільки ми повністю змінюємо архітектуру контролера, нам потрібен повний файл конфігурації мережі.
- Обираємо меню Settings -> System -> Backups.
- Натискаємо Download та обираємо необхідну дату бекапу.
- Зберігаємо файл із розширенням .unf у надійне місце на комп’ютері.

В мене автоматично бекапи створюються щоденно, о 2:30 ночі. Мій файл бекапу має назву network_backup_06.11.2026_02-30_v10.6.109.unf
Після успішної міграції та перевірки стабільності, не забудьте про базовий захист – дізнайтеся про створення чорного списку IP-адрес за допомогою Zone-Based Firewall на UniFi роутері.
Зупинка старого контейнера
Заходимо по SSH на Raspberry Pi та зупиняємо старий контейнер. Залежно від того, як ви його розгортали, команда буде відрізнятися , я запускав докер через docker compose.
Оскільки новий UniFi OS Server буде використовувати ті самі системні порти для зв’язку з точками доступу (8080, 8443, 3478 тощо), нам потрібно їх звільнити. Конфлікт портів – найчастіша помилка під час міграції.
Попрерше, треба перейти в робочу директорію і запустити команду:
docker compose down
[+] down 3/3
✔ Container unifi-db Removed 0.4s
✔ Container unifi Removed 10.4s
✔ Network unifi_default Removed 0.1s
Всі контейнери причетні до Unifi зупинені та видалені.
Встановлення Podman
Новий інсталятор від Ubiquiti базується на рушії podman. Він чудово працює на одній машині зі звичайним Docker, тож нам потрібно просто додати його в систему:
sudo apt update
sudo apt install podman slirp4netns
Ми встановлюємо podman як середовище для контейнерів, а пакет slirp4netns необхідний йому, щоб контролер UniFi міг безпечно взаємодіяти з нашою локальною мережею без необхідності мати root-права в системі.
Перевірка, що подман встановлено, визначимо його версію:
podman --version
podman version 5.4.2
Завантаження та встановлення UniFi OS Server
На момент виходу статті актуальна стабільна версія – UniFi OS Server 5.1.42 for Linux (arm64). Саме цю версію і будемо встановлювати. Щоб скоротити назву, в команді завантаження, файл одразу перейменуємо на коротку назву, наприклад unifiosinstaller.
wget -O unifiosinstaller "https://fw-download.ubnt.com/data/unifi-os-server/f730-linux-arm64-5.1.42-d2bca8bd-d6fc-4d20-99e5-b78235843c2f.42-arm64"
Надаємо права на виконання
chmod +x unifiosinstaller
і останній етап – запускаємо процес інсталяції
sudo ./unifiosinstaller
You are about to install UniFi OS Server version 5.1.42.
Proceed? (y/N): y
В спойлер приховав повний процес установки:
INFO Installing UniFi OS Server 5.1.42...
INFO Checking compatible podman runtime available...
INFO Checking disk space for required directories...
INFO - /home/: Requires 15.00 GB, available 81.76 GB
INFO - /var/lib/uosserver: Requires 1.00 GB, available 81.76 GB
INFO - /usr/local/bin/: Requires 0.12 GB, available 81.76 GB
INFO - /tmp/: Requires 2.00 GB, available 3.94 GB
INFO - /var/tmp/: Requires 2.00 GB, available 81.76 GB
INFO All disk space requirements met.
INFO Checking ports...
INFO Adding uosserver user and group...
INFO Adding user 'rpi' to 'uosserver' group...
INFO Creating /var/lib/uosserver dir...
INFO Creating /var/lib/uosserver/bin dir...
INFO Creating /var/lib/uosserver/logs dir...
INFO Creating /home/uosserver/.config dir...
INFO Creating /home/uosserver/.local dir...
INFO Creating /home/uosserver/tmp dir...
INFO Creating /home/uosserver/.config/containers dir...
INFO Creating /home/uosserver/.config dir...
INFO Creating /home/uosserver/.local/share dir...
INFO Setting up /var/lib/uosserver/portmap.json file...
INFO Setting up /var/lib/uosserver/mounts.json file...
INFO Setting up /usr/local/bin/uosserver binary...
INFO Setting up /usr/local/bin/uosserver-purge binary...
INFO Setting up /var/lib/uosserver/bin/discovery binary...
INFO Setting up /var/lib/uosserver/bin/pasta binary...
INFO Setting up /var/lib/uosserver/bin/uosserver-service service binary...
INFO Setting up /var/lib/uosserver/bin/updater-service binary...
INFO Initializing podman conf...
INFO Allowing raw socket execution...
INFO Creating file /var/lib/uosserver/server.conf...
INFO Creating systemd services...
INFO Loading container image...
INFO [podman] Getting image source signatures
INFO [podman] Copying blob sha256:104799d4ff5b18bad31a13cbbc383730eebef29a1cac161b7905792a8dbe5bd3
INFO [podman] Copying blob sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1
INFO [podman] Copying blob sha256:6ead6cf9b03eaf98dfb1d1f44248d3f07f0204768a7216ac8b4b595b3ccbbfb5
INFO [podman] Copying blob sha256:2f1fabd6996e166495bb3135a04d43f4c67177e8adc8af82e97b3b96e7c6903c
INFO [podman] Copying blob sha256:163572df90516683b16db199ca300a91f4dd1626616453cd312f9320d79a795e
INFO [podman] Copying blob sha256:e2280296e50e3d1722c2c7b027da0263ed9c97bd136e1ae1cede56a5409a4934
INFO [podman] Copying blob sha256:94affbd2e5d1e4b842fa41ee28e146ff37476ed36b86f002f5252d216108e001
INFO [podman] Copying blob sha256:d5972ffc155bda2da0015b93164773a5685b9e784c1b340cad537313d09e69ab
INFO [podman] Copying blob sha256:496eab1cc43238a07e7497fe918f7e9b2554ad33e814d843b795dd0ba4e4ba47
INFO [podman] Copying blob sha256:d6c0aea61236768e96654a43f0f4b6ece37e38215aa969a9e66936dd595734e4
INFO [podman] Copying blob sha256:39e1bd5159680c6dddcc244a89e0319d97f789cdd28192976f8482a8a729bd63
INFO [podman] Copying config sha256:ad6a329d32292a6438840f51f30d798be05b5119416e371619f8c6eb9ed2e42f
INFO [podman] Writing manifest to image destination
INFO [podman] Loaded image: docker.io/library/uosserver:c9603dec9010
INFO Starting container...
INFO Initializing container...
INFO Container doesn't exist, creating new...
INFO dac27ec9929090ba50f70ab7975158e6d95adf62879909356248185cf7392c47
INFO run --detach --pids-limit 65536 --systemd=always --name uosserver --restart unless-stopped --health-cmd curl --fail http://127.0.0.1/api/ping || exit 1 --health-interval 60s --health-timeout 5s --health-retries 3 --network pasta:--ns-ifname,eth0,--map-host-loopback,203.0.113.113,--dns-forward,203.0.113.113 --add-host host.docker.internal:203.0.113.113 --add-host host.containers.internal:203.0.113.113 --dns 203.0.113.113 --cap-add=NET_RAW --cap-add=NET_ADMIN -e UOS_UUID=f940cced-cd34-5daa-8286-52806a0d84d4 -e APP_VERSION=5.1.42 -e APP_MODEL=UOSSERVER -e PRODUCT_NAME=UniFi OS Server -e FIRMWARE_PLATFORM=linux-arm64 -v uosserver_persistent:/persistent -v uosserver_var_log:/var/log -v uosserver_data:/data -v uosserver_srv:/srv -v uosserver_etc_rabbitmq_ssl:/etc/rabbitmq/ssl -v uosserver_var_lib_mongodb:/var/lib/mongodb -v uosserver_var_lib_unifi:/var/lib/unifi -p 0.0.0.0:9543:9543 -p 0.0.0.0:28082:28082 -p 0.0.0.0:3478:3478/udp -p 0.0.0.0:5514:5514/udp -p 0.0.0.0:5671:5671 -p 0.0.0.0:6789:6789 -p 0.0.0.0:8080:8080 -p 0.0.0.0:8444:8444 -p 0.0.0.0:8880:8880 -p 0.0.0.0:8881:8881 -p 0.0.0.0:8882:8882 -p 127.0.0.1:11084:11084 -p 0.0.0.0:10003:10003/udp -p 0.0.0.0:11443:443 docker.io/library/uosserver:c9603dec9010
INFO Waiting for container 'uosserver' to start (timeout: 60s)
INFO Container 'uosserver' is running. (elapsed: 0.0s)
INFO Waiting for systemd to be ready (timeout: 60s)
INFO Systemd is ready. (elapsed: 0.0s)
INFO Starting uosserver systemd service...
INFO Waiting for UniFi OS Server to start...
INFO
!!! INSTALLATION COMPLETE !!!
To grant permission for a user to run 'uosserver' commands:
-> Add the user to the 'uosserver' group:
usermod -aG uosserver
-> Then log out and log back in for the changes to take effect.
To get started with available commands, run:
uosserver help
UniFi OS Server буде запущено та доступ буде відбуватись по порту 11443: https://192.168.99.44:11443/ за цією адресою відкриється вікно першого налаштування UniFi OS Server.

В моєму випадку необхідно відновити налаштування з файлу бекапа. Внизу сторінки буде посилання “Restore From Backup“.
Відновлення бекапу
Для відновлення бекапа треба спочатку увійти в свій профіль Unifi, ввести логін, пароль, погодитись з умовами, при необхідності ввести код двофакторної авторизації.

Після входу в систему будуть запропоновані хмарні бекапи для відновлення, проте в моєму випадку хмарних бекапів нема, тому необхідно буде обрати саме локальний файл для відновлення.
Select the configuration backup file you would like to restore this UniFi OS Server with, or upload one.
Для цього треба клікнути на синє посилання upload та обрати файл бекапу який було створено на першому етапі.

На наступному кроці можна просто драг-н-дропом скинути фай файл або відкрити, для подальшого відновлення.

Клацаємо на кнопку “resore” і очікуєм на завершення відновлення налаштувань. Процес відновлення може заняти десь 5 хвилин. Під час відновлення, буде створено перелік сервісів, або пристроїв які були задіяні раніше, в моєму випадку це:
- Network
- UniFi OS Settings
Ось як виглядає вікно успішного завершення відновлення бекапа

Чи варто переходити на UniFi OS Server?
Міграція з класичного Docker-контейнера на нову архітектуру від Ubiquiti – це не просто косметична зміна дашборду, а фундаментальний перехід на більш сучасний та безпечний стек.
Ось головні висновки після розгортання та замірів навантажень на Raspberry Pi 5:
- Безпека на першому місці. Головна фішка нового інсталятора – використання рушія Podman у режимі rootless. Ваш контролер тепер працює від імені ізольованого користувача
uosserver, а не від усемогутнього демона Docker. Навіть мережевий трафік маршрутизується у просторі користувача user-space. Для self-hosted рішень, які часто дивляться в інтернет, це величезний плюс. - Дива з оперативною пам’яттю не сталося. Відмова від класичного Docker не зробила контролер легшим. Java-машина та база даних MongoDB споживають ті самі 1.2 – 1.4 ГБ оперативної пам’яті незалежно від того, як їх запакувати.
- Незначний оверхед на процесор. У стані спокою навантаження на процесор (Broadcom BCM2712) зросло з ~0.8% до ~2.7%. Це плата за user-space мережу та додаткові фонові сервіси самої UniFi OS. Проте для потужностей Raspberry Pi 5 (і навіть Pi 4) це абсолютно непомітні цифри.
- Досвід “як із коробки”. Ви отримуєте ідентичний інтерфейс та логіку керування, як у власників недешевих апаратних консолей UDM-Pro чи Cloud Key. Усі оновлення системи та бекапи тепер зручно робити з єдиного порталу.
Процес міграції виявився напрочуд гладким: старий .unf бекап ідеально підтягнувся, і всі точки доступу перепідключилися без жодних танців з бубном. Якщо ви досі тримаєте свій контролер у legacy-контейнері – час оновлюватися. Архітектура Server OS працює стабільно, а процес переходу займає лічені хвилини.
