MacOS

Материал из wiki

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).

  1. Скачайте установщик с [официального сайта Docker](https://www.docker.com/products/docker-desktop/).
  2. Откройте .dmg-файл и перетащите Docker в папку «Программы».
  3. Запустите Docker из папки «Программы» (подтвердите разрешение, если система запросит).
  4. В строке меню появится значок кита — это означает, что 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 устанавливается через официальный установщик.

  1. Скачайте пакет .pkg с [zerotier.com](https://www.zerotier.com/download/).
  2. Откройте скачанный файл и пройдите установку (потребуется ввести пароль администратора).
  3. После установки в строке меню появится значок 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

См. также

  • Linux – настройка Linux
  • Windows – настройка Windows
  • Docker – подробнее о контейнеризации
  • Nextcloud – углублённая настройка Nextcloud
  • ZeroTier – расширенные сценарии ZeroTier
  • VPN – обзор и настройка VPN