Бекапы серверов для macOS

Сервер может упасть. Копия уже дома.

CopyHome по SSH снимает дампы MySQL и архивы каталогов, скачивает их на Mac, проверяет каждый файл и кладёт копию в облако. Тихо, по расписанию, из строки меню.

0агентов и скриптов на сервере: только ssh, mysqldump и tar
100%файлов по умолчанию проверяются после скачивания
1 кликиз строки меню, чтобы снять бекап прямо сейчас
sha256сверяется для каждого файла, ушедшего в облако

Всё про проект на одном экране

Видно, что бекап есть, а не кажется

Статус последнего запуска, следующий бекап, сколько места занято и как растёт база. Если что-то пошло не так, CopyHome скажет об этом простыми словами.

Расписание

Как вам удобно, без cron в голове

Вручную, каждый час, день или неделю. Если хочется точнее, есть своё cron-выражение. Mac спал в 03:00? Пропущенный бекап выполнится, как только он проснётся, а неудачный повторится через 15 и 60 минут.

ВручнуюКаждый часКаждый день в 03:00По понедельникам15 */6 * * *

Проверка

Каждый файл распаковывается до конца

  • ✓mysql-shop.sql.zst-- Dump completed
  • ✓dir-uploads.tar.gzконечный маркер tar
  • ✓размерне упал больше чем на 30%

Уведомления

Пишет, только когда есть повод

Давно не было бекапа «Блог»Последняя хорошая копия — 14 октября в 03:00
Бекап «Лендинги»: проверьте размерСнимок на 42% меньше прошлого
CopyHomeМагазин: бекап готов, проверен и выгружен

Строка меню

Работает в фоне и не мешает

Закрыли окно, а расписание продолжает работать. Стартует при входе в систему.

Ротация

Хранит последние N копий

Старые снимки удаляются сами, на Mac и в облаке отдельно. И только после удачной полной копии, так что упавший сервер не съест хорошие бекапы.

И локально

MySQL в Docker на этом Mac

Проект «На этом компьютере» снимает дамп без SSH. Клиент MySQL найдётся сам в Homebrew или MAMP.

127.0.0.1:3307

Параметры дампа

Сжатие и таблицы без данных

CopyHome сам выберет самое быстрое сжатие на сервере. Логи и сессии можно забирать только структурой.

Как устроено

Три шага до спокойного сна

  1. 01

    Добавьте сервер

    Хост и пользователь, вход по ключу или паролю. Работают ваши ~/.ssh/config и ssh-agent. Кнопка «Проверить SSH» покажет, есть ли на сервере всё нужное.

  2. 02

    Выберите, что беречь

    Базы MySQL и каталоги с исключениями вроде cache/ или node_modules. Каждый источник можно забекапить отдельно.

  3. 03

    Задайте расписание

    Сколько копий хранить и нужна ли копия в облаке. Дальше CopyHome всё делает сам и пишет, если что-то не так.

Что происходит во время бекапа

    

Дамп идёт потоком прямо в файл на Mac и не ложится на диск сервера. Логин и пароль MySQL передаются через stdin, поэтому их не видно в ps.

Копия в облаке

Одна копия дома, ещё одна в облаке

Правило «3-2-1» без ручной работы. После каждого бекапа CopyHome выгружает снимок в ваше хранилище и сверяет контрольные суммы.

  • Файлы больше лимита аккаунта режутся на части без лишнего места на Mac
  • Связь оборвалась, Mac уснул? Выгрузка продолжится сама
  • Удалили копию с Mac? Скачайте её обратно из Истории
  • CopyHome трогает только свою папку на Диске
Яндекс ДискВход через страницу Яндекса
Готово
Google DriveСледующим
Скоро
S3-совместимыеYandex Object Storage, Selectel, Backblaze
В планах
WebDAVNextcloud и свои серверы
В планах
Диск / CopyHome/
└─ Магазин/
   └─ 2026-10-17T03-00-00/
      ├─ mysql-shop.sql.zst
      ├─ dir-uploads.tar.gz.part001
      ├─ dir-uploads.tar.gz.part002
      └─ .copyhome.json  ✓ sha256

Безопасность

Ваши данные остаются у вас

Без посредников

Копии идут с сервера прямо на ваш Mac. Ни наш сервис, ни чужой не видит ваши данные. В облако копия уходит, только если вы подключили своё хранилище.

Шифрование age

Включите шифрование, и дамп шифруется ещё по пути в файл: открытой копии на диске нет, в облако уходит уже зашифрованная. Файл .age открывается стандартной утилитой age, без CopyHome.

Связка ключей macOS

Пароли MySQL, SSH и токены облаков шифруются ключом из связки ключей. В открытом виде они не лежат нигде.

Системный ssh

Никаких своих реализаций протокола. Ваши ключи, конфиг и агент. Смена ключа хоста блокирует подключение.

Не видно в ps

Пароль базы уходит на сервер через stdin, а не в аргументах команды, поэтому соседи по серверу его не увидят.

OAuth с PKCE

Вход в облако через страницу Яндекса. Секрет приложения не нужен и не хранится в коде.

Вопросы

Коротко о главном

Нужно ли что-то устанавливать на сервер?

Нет. Нужны только bash, gzip, tar и mysqldump, которые почти всегда уже есть. Если пароль базы не задан, CopyHome возьмёт его из ~/.my.cnf на сервере.

Где хранятся бекапы на Mac?

В ~/Backups/fast-backup/<Проект>/<дата-время>/: обычные .sql.gz, .sql.zst и .tar.gz, которые открываются без CopyHome. Никаких закрытых форматов.

А если Mac спал или был выключен?

Пропущенный по расписанию бекап (за последние 7 дней) выполнится сразу, как только Mac проснётся или CopyHome запустится. Неудачный бекап по расписанию CopyHome сам повторит через 15 и через 60 минут. А если хорошей копии давно нет, придёт уведомление «Давно не было бекапа».

Что если окно закрыто?

CopyHome остаётся в строке меню и продолжает работать по расписанию. Можно включить запуск при входе в систему, тогда окно даже не откроется.

А если база огромная?

Дамп снимается с --single-transaction и не блокирует таблицы InnoDB, а сжатие zstd или pigz работает на всех ядрах сервера. Большие таблицы логов можно забирать только структурой.

PostgreSQL поддерживается?

Пока нет. PostgreSQL следующий в планах, вместе с инкрементальными бекапами каталогов через rsync и восстановлением в один клик.

Иконка CopyHome

Пусть копии едут домой сами

Приложение для macOS. Ваши бекапы хранятся у вас.