# Настройки Frost хранит настройки в файле `config.toml` в своей папке конфигурации. Изменить их можно через `frost init`, `frost config set` или `frost config edit`, а также в любом текстовом редакторе. ## Чтение и изменение настроек | Команда | Что делает | | --- | --- | | `frost config` | Выводит все настройки. Учётные данные скрыты, если не добавить `--show-secrets` | | `frost config get ` | Выводит одну настройку. Списки выводятся по одному элементу в строке | | `frost config set ` | Меняет одну настройку и показывает, что изменилось | | `frost config edit [editor]` | Открывает `config.toml` в редакторе | Например: ```sh frost config get schedule.every frost config set schedule.every 6h frost config set paths ~/Documents ~/Pictures ``` - Список получает по одному значению на элемент, а `set` заменяет список целиком. - `true` и `false` включают и выключают настройки. - Изменение любой настройки `schedule` сразу обновляет задание по расписанию. В macOS и Windows изменение, сделанное во время копирования по расписанию, применяется сразу после его завершения, чтобы не прерывать его. - Если вы меняете место хранения, Frost проверяет новое место перед сохранением. Подробнее в разделе [Перенос резервных копий](#moving-backups). ## Редактирование файла ```sh frost config edit ``` Frost открывает копию `config.toml` в указанном вами редакторе, иначе в `$VISUAL` или `$EDITOR`, а если их нет, в nano, vim или vi. В Windows в этом случае открывается Блокнот. Когда вы закроете редактор, Frost покажет, что вы изменили, и сохранит копию, как только вы введёте `yes`. Если файл не удаётся разобрать, Frost укажет на ошибку и предложит открыть его снова, так что опечатка не сломает копирование по расписанию. Неизвестные настройки тоже считаются ошибкой, поэтому имя с опечаткой не пройдёт незамеченным. ## Редактирование вручную `config.toml` можно открыть в любом текстовом редакторе и сохранить. Frost читает файл при каждом запуске, поэтому большинство изменений действуют со следующего запуска. Двум видам изменений нужен ещё один шаг, и Frost делает его при следующем запуске любой команды Frost: - Если изменилось расписание, Frost обновляет задание по расписанию и сообщает "config.toml changed. Scheduled job updated" (config.toml изменился, задание по расписанию обновлено). В Linux это делает и следующее копирование по расписанию. Изменение, сделанное во время копирования по расписанию, ждёт его завершения, как и с `frost config set`. - Новое место хранения проходит те же проверки, что и с `frost config edit`, когда Frost впервые его использует. О проблемах Frost предупреждает. Перед сохранением файл никто не проверяет. Если его не удаётся разобрать, команды Frost сообщают об этом, пока вы его не исправите. ## Все настройки | Ключ | По умолчанию | Значение | | --- | --- | --- | | `paths` | | Папки для копирования | | `exclude` | `.DS_Store`, `Thumbs.db`, `*.tmp`, `*.swp`, `node_modules`, `.cache` | Имена и шаблоны, которые исключаются. См. раздел [Исключение файлов](#excluding-files) | | `schedule.enabled` | `true` | Делать копии автоматически | | `schedule.every` | `daily` | `hourly`, `2h`, `3h`, `4h`, `6h`, `8h`, `12h`, `daily` или `weekly` | | `schedule.time` | `15:00` | Время копирования в 24-часовом формате. Подробнее в разделе [Автоматическое резервное копирование](#scheduling) | | `schedule.day` | `sunday` | День еженедельного копирования, от `sunday` до `saturday` | | `schedule.catch_up` | `true` | Сделать пропущенную копию, когда компьютер снова заработает. `false` пропускает такие копии | | `verify.sample` | `20` | Сколько блоков скачивает выборочная проверка. `0` её выключает | | `update.auto` | `true` | Устанавливать новые версии после копирования по расписанию. `false` только сообщает о них | | `storage.backend` | | `permafrost`, `s3`, `sftp` для варианта [Собственный сервер](#self-hosted) или `local` для [локального диска](#local-drive) | | `storage.sftp.host` | | SSH-адрес вашего сервера, например `me@nas.local`, или `Host` из вашей конфигурации SSH | | `storage.sftp.port` | `0` | SSH-порт сервера. `0` берёт порт из вашей конфигурации SSH или 22 | | `storage.sftp.path` | `frost` | Папка на сервере. Относительный путь отсчитывается от вашей домашней папки на сервере | | `storage.local.path` | | Полный путь к папке на диске | | `storage.permafrost.url` | | Пусто для сервера по умолчанию, `https://permafrost.wihiaawb.com`. Иначе адрес `https://` или `http://` для сервера на вашем компьютере | | `storage.permafrost.token` | | Ваш ключ доступа Permafrost | | `storage.s3.endpoint` | | Например `s3.us-east-1.amazonaws.com`. Подойдёт и полный адрес `https://`, а адрес `http://` выключает TLS | | `storage.s3.region` | | Пусто, если ваш сервер или провайдер не использует регионы | | `storage.s3.bucket` | | Имя бакета. Бакет должен уже существовать | | `storage.s3.prefix` | `frost` | Папка в бакете, где лежат копии. Пусто для корня бакета | | `storage.s3.access_key_id` | | Идентификатор вашего ключа доступа | | `storage.s3.secret_access_key` | | Ваш секретный ключ доступа | | `storage.s3.insecure` | `false` | Использовать обычный HTTP для эндпоинтов без указания протокола. Только для локальных тестов | ## Переменные окружения | Переменная | Заменяет | | --- | --- | | `FROST_S3_ACCESS_KEY_ID` или `AWS_ACCESS_KEY_ID` | `storage.s3.access_key_id` | | `FROST_S3_SECRET_ACCESS_KEY` или `AWS_SECRET_ACCESS_KEY` | `storage.s3.secret_access_key` | | `FROST_PERMAFROST_TOKEN` | `storage.permafrost.token` | | `FROST_CONFIG_DIR` | Папку конфигурации, как `--config-dir` | | `FROST_CACHE_DIR` | Папку кэша | Frost никогда не записывает значения из окружения в `config.toml`. Копирование по расписанию не видит переменных, заданных в вашей оболочке, поэтому учётные данные всё равно должны быть в `config.toml`.