MacOS
macOS: подготовка и развёртывание self‑hosted сервисов
macOS — надёжная и энергоэффективная платформа, которая отлично подходит для запуска серверных приложений, особенно если вы используете оборудование Apple (Mac mini, Mac Studio, MacBook в закрытом режиме). Благодаря встроенному терминалу с интерфейсом UNIX и поддержке Docker Desktop, на macOS можно развернуть те же сервисы, что и на Linux, с минимальными отличиями.
В этой статье описана настройка macOS Ventura (13) и новее (Intel и Apple Silicon). Инструкции проверены на обеих архитектурах.
1. Подготовка системы
1.1. Установка Homebrew (пакетного менеджера)
Homebrew — аналог apt (Linux) для macOS. Он упрощает установку недостающих утилит.
Откройте Терминал и выполните:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
После установки добавьте brew в PATH (обычно это уже сделано, но для проверки выполните):
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)"
Проверьте:
brew --version
1.2. Установка базовых утилит
Через Homebrew установите необходимый минимум:
brew install git wget htop net-tools
Также в macOS уже есть SSH-сервер, но его нужно включить: перейдите в «Системные настройки» → «Общий доступ» → включите «Удалённый вход» (Remote Login).
2. Установка Docker Desktop
Docker Desktop для macOS — официальное приложение, которое работает как на Intel, так и на Apple Silicon (использует виртуализацию через HyperKit или Virtualization.framework).
- Скачайте установщик с [официального сайта Docker](https://www.docker.com/products/docker-desktop/).
- Откройте .dmg-файл и перетащите Docker в папку «Программы».
- Запустите Docker из папки «Программы» (подтвердите разрешение, если система запросит).
- В строке меню появится значок кита — это означает, что Docker работает.
Убедитесь, что в настройках Docker (шестерёнка → Settings → General) включена опция «Use Virtualization Framework» (для Apple Silicon) или «Use HyperKit» (для Intel). Это повышает производительность.
Проверьте в терминале:
docker --version docker run hello-world
Docker Compose уже входит в состав Docker Desktop, проверьте:
docker compose version
3. Развёртывание Nextcloud
Используем Docker Compose, как и на других платформах — это универсальный способ.
Создайте папку для проекта, например, в домашней директории:
mkdir ~/nextcloud && cd ~/nextcloud
Создайте файл docker-compose.yml (можно через nano, vim или любой редактор):
version: '3'
services:
db:
image: mariadb:10.6
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=secretrootpass
- MYSQL_PASSWORD=secretpass
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:stable
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./data:/var/www/html/data
- ./config:/var/www/html/config
- ./apps:/var/www/html/custom_apps
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=secretpass
depends_on:
- db
Замените пароли на свои. Запустите контейнеры:
docker compose up -d
Nextcloud будет доступен по адресу http://localhost:8080. Для доступа с других устройств используйте IP-адрес вашего Mac (можно узнать через ifconfig или системные настройки сети).
4. Установка ZeroTier
ZeroTier для macOS устанавливается через официальный установщик.
- Скачайте пакет
.pkgс [zerotier.com](https://www.zerotier.com/download/). - Откройте скачанный файл и пройдите установку (потребуется ввести пароль администратора).
- После установки в строке меню появится значок ZeroTier (или запустите его вручную из папки «Программы»).
Присоединитесь к сети:
sudo zerotier-cli join <network_id>
В веб-панели ZeroTier одобрите новое устройство. Статус можно проверить:
sudo zerotier-cli listnetworks
Чтобы ZeroTier запускался автоматически, выполните:
sudo launchctl load /Library/LaunchDaemons/com.zerotier.one.plist
5. Настройка брандмауэра
В macOS встроен брандмауэр (в «Системные настройки» → «Сеть» → «Брандмауэр»). Включите его и добавьте исключения:
- Для Docker: разрешите входящие соединения для приложения
Docker.app. - Для ZeroTier: разрешите для
ZeroTier One. - Для доступа к Nextcloud извне откройте порт 8080 TCP (если планируете принимать внешние подключения). Для этого можно использовать утилиту
pfctlили сторонние менеджеры брандмауэра (например, Little Snitch).
Упрощённо можно временно отключить брандмауэр для тестов, но в продакшене настройте правила.
6. Особенности для Apple Silicon (M1/M2/M3)
- Большинство Docker-образов уже имеют сборки для ARM, поэтому производительность высокая.
- Если образ не имеет ARM-сборки, Docker автоматически эмулирует x86 (через Rosetta 2), но это медленнее. Старайтесь использовать образы с тегом
linux/arm64. - При установке Homebrew обращайте внимание на архитектуру:
/opt/homebrew— для ARM,/usr/local— для Intel.
Проверить архитектуру процессора:
uname -m
Если выведет arm64 — это Apple Silicon.
7. Рекомендации по безопасности
- Регулярно обновляйте macOS и установленные приложения (через App Store и Homebrew:
brew upgrade). - Используйте FileVault (шифрование диска) для защиты данных.
- Настройте автоматический вход только при необходимости, лучше использовать пароль при каждой перезагрузке.
- Для публичного доступа к Nextcloud обязательно настройте HTTPS через обратный прокси (например, Caddy или Nginx) с сертификатом Let's Encrypt.
- Ограничьте запуск Docker только для доверенных образов.
8. Полезные команды для терминала
| Команда | Назначение |
|---|---|
docker ps |
список запущенных контейнеров |
docker logs <имя> |
просмотр логов |
docker exec -it <имя> /bin/bash |
вход в контейнер (если есть bash) |
docker compose up -d |
перезапуск сервисов |
brew services list |
список сервисов, управляемых через brew |