К содержимому
СайтПанельСтатус
NolayДокументация
СайтПанельСтатус
РазделыСправочник: nolay.toml
Начало
  • Обзор раздела
  • Что такое Nolay
  • Что такое VPS
  • Требования к серверу
  • Подключение сервера
  • Первый проект
Руководства
  • Обзор раздела
  • Домены и HTTPS
  • Секреты
  • Туннель за NAT
Понятия
  • Обзор раздела
  • Что хранится и где
Справочник
  • Обзор раздела
  • Коды ошибок
  • nolay.toml
Безопасность
  • Обзор раздела
Переезд
  • Обзор раздела
Если не работает
  • Обзор раздела
Изменения
  • Обзор раздела
Начало
  • Обзор раздела
  • Что такое Nolay
  • Что такое VPS
  • Требования к серверу
  • Подключение сервера
  • Первый проект
Руководства
  • Обзор раздела
  • Домены и HTTPS
  • Секреты
  • Туннель за NAT
Понятия
  • Обзор раздела
  • Что хранится и где
Справочник
  • Обзор раздела
  • Коды ошибок
  • nolay.toml
Безопасность
  • Обзор раздела
Переезд
  • Обзор раздела
Если не работает
  • Обзор раздела
Изменения
  • Обзор раздела
  1. Документация
  2. Справочник
  3. nolay.toml

nolay.toml

Все поля файла настроек проекта с типами и значениями по умолчанию.

Markdown

nolay.toml лежит в корне репозитория проекта. Все поля необязательны: без файла агент определит сборщик и порт сам. Файл в репозитории имеет приоритет над формой в панели, а панель никогда не умеет больше, чем этот файл.

Секреты в nolay.toml не пишутся: файл лежит в репозитории. Их задают в панели на странице Секреты.

Пример

builder = "auto"

[run]
port = 3000

[env]
NODE_ENV = "production"

[health]
path = "/healthz"

[proxy]
domains = ["app.example.com"]
redirect_www = true

[[volumes]]
name = "data"
path = "/app/data"

[backup]
schedule = "0 3 * * *"
targets = ["volumes"]

Поля

Таблица собрана из схемы протокола nolay-toml.v1.json. Путь с [] означает элемент списка таблиц, например [[cron]]; source(git) и source(archive) это два варианта секции [source].

builderstringПо умолчанию: "auto"

Как собирается образ. auto выбирает сам: свой Dockerfile, затем шаблон Nolay, затем Railpack. compose пока не поддержан, nixpacks оставлен для старых проектов и в auto не участвует.

Значения: auto, nixpacks, railpack, dockerfile, compose, static, image, template:node, template:next-standalone, template:python-uvicorn, template:python-gunicorn, template:go, template:bun, template:ruby, template:static

backuptable

Расписание бэкапов в ваше S3-хранилище. Нет секции, нет бэкапов. Ключи S3 здесь не пишутся: это секреты проекта NOLAY_S3_*.

backup.dbtable

Как снимать дамп базы. Нужна, если в targets есть db.

backup.db.container_envstring

Имя переменной с паролем базы, например POSTGRES_PASSWORD. Само значение агент берёт из секретов проекта.

backup.db.databasestring

Имя базы для postgres и mysql.

backup.db.kindstringПо умолчанию: "postgres"

Какая база в контейнере проекта.

Значения: postgres, mysql, sqlite

backup.db.servicestring

Имя сервиса каталога из uses, из которого снимать дамп. Пользователь, база и пароль тогда берутся из сервиса.

backup.db.sqlite_pathstring

Путь к файлу базы внутри контейнера, только для sqlite.

backup.db.userstring

Пользователь базы для postgres и mysql. Это не секрет.

backup.keep_dailyintegerПо умолчанию: 7

Сколько суточных копий хранить.

backup.keep_monthlyintegerПо умолчанию: 3

Сколько месячных копий хранить.

backup.keep_weeklyintegerПо умолчанию: 4

Сколько недельных копий хранить.

backup.schedulestringПо умолчанию: "0 3 * * *"

Расписание в формате cron, пять полей, время UTC.

backup.targetsarray of stringПо умолчанию: ["volumes"]

Что бэкапить: тома проекта, дамп базы или оба.

Значения: volumes, db

buildtable

Параметры сборки образа.

build.argstable of string

Аргументы сборки (ARG в Dockerfile). Ключи заглавными латинскими буквами, цифрами и _. Секретам здесь не место: файл лежит в репозитории.

build.base_dirstring

Зарезервировано. Агент пока не читает это поле, подкаталог репозитория задаётся в source.subdir.

build.build_cmdstring

Команда сборки для Railpack, nixpacks и шаблонов, например npm run build.

build.dockerfilestring

Путь к Dockerfile внутри каталога проекта. По умолчанию Dockerfile.

build.imagestring

Готовый образ для builder = "image", например nginx:alpine. Для остальных сборщиков не используется.

build.install_cmdstring

Только nixpacks: заменяет его шаг установки целиком. Без него nixpacks сам ставит зависимости по package.json и похожим файлам.

build.static_dirstring

Каталог с уже собранной статикой для builder = "static", по умолчанию dist. Фронтенд агент не собирает.

cronarray of table

Задачи по расписанию. Каждый срок запускает одноразовый контейнер из образа проекта. Не больше 20 задач на проект.

cron[].cmdstring

Команда, которая выполняется как sh -c <cmd> в контейнере задачи.

cron[].namestring

Имя задачи, уникальное в проекте: строчные латинские буквы, цифры и дефис, до 32 символов.

cron[].schedulestring

Расписание cron, пять полей, UTC. Если прошлый запуск ещё идёт, срок пропускается.

cron[].timeout_secsintegerПо умолчанию: 900

Сколько секунд может идти один запуск, от 1 до 21600. Потом контейнер останавливается.

envtable of string

Несекретные переменные окружения. Секреты задаются в панели; если ключ есть и там, и здесь, побеждает секрет.

healthtable

Проверка готовности. Нет секции: проект готов, когда контейнер работает. Есть path: агент ждёт ответа 2xx или 3xx по этому пути.

health.interval_secintegerПо умолчанию: 10

Пауза между попытками проверки, секунды.

health.pathstring

Путь HTTP-проверки, например /healthz. Без него проверяется HEALTHCHECK образа.

health.timeout_secintegerПо умолчанию: 60

Сколько всего ждать готовности, секунды. Не дождались: новая версия не включается, старая продолжает работать.

protectiontable

Защита домена на входном прокси. Нет секции: действуют значения по умолчанию из этой таблицы.

protection.allow_ipsarray of stringПо умолчанию: []

Адреса и подсети, которым открыт домен. Пусто: доступ открыт всем. Проверка сертификата ACME не закрывается никогда.

protection.block_bad_botsbooleanПо умолчанию: true

Отвечать 403 известным сканерам по User-Agent. Поисковых роботов в списке нет.

protection.frame_optionsstringПо умолчанию: "SAMEORIGIN"

Значение заголовка X-Frame-Options: SAMEORIGIN или DENY. Убрать поле: заголовок не ставится.

protection.https_redirectbooleanПо умолчанию: true

Перенаправлять HTTP на HTTPS кодом 308. Для *.localhost, *.test и IP не действует.

protection.max_body_mbintegerПо умолчанию: 32

Предельный размер тела запроса в МиБ. Больше: ответ 413.

protection.rate_limitstringПо умолчанию: "300/1m"

Лимит запросов с одного IP в виде <число>/<окно>, например 300/1m, или off.

protection.wafstringПо умолчанию: "off"

Фильтр атак Coraza с правилами OWASP CRS. low почти без ложных срабатываний, medium строже. Стоит около 100 МиБ памяти.

Значения: off, low, medium

protection.waf_excludearray of stringПо умолчанию: []

Пути, на которых фильтр не работает, по префиксу, например /api/upload.

proxytable

Домены проекта. Нет доменов: проект доступен только внутри сети Docker на сервере.

proxy.domainsarray of stringПо умолчанию: []

Домены в нижнем регистре, без *. Сертификат выпускает агент на вашем сервере.

proxy.redirect_wwwbooleanПо умолчанию: false

Перенаправлять www.<домен> на <домен> кодом 308.

resourcestable

Лимиты контейнера проекта.

resources.cpufloat

Доля процессора, например 0.5 или 2.

resources.mem_mbinteger

Лимит памяти в МиБ для контейнера и для сборки. Не задан: сборка идёт с лимитом 512 МиБ.

runtable

Как запускается проект.

run.exposearray of stringПо умолчанию: []

Зарезервировано, агент пока не читает это поле.

run.portinteger

Порт, на котором отвечает приложение. У шаблонов свой порт по умолчанию, задавать не обязательно.

run.post_deploystring

Зарезервировано, агент пока не читает это поле.

run.pre_deploystring

Зарезервировано, агент пока не читает это поле. Миграции запускайте из команды запуска приложения.

run.privileged_capsarray of stringПо умолчанию: []

Linux capability сверх базового набора, без префикса CAP_, не больше восьми. Каждая пишется в журнал агента.

run.start_cmdstring

Команда запуска, если сборщик не угадал её сам, например npm start.

sourcetable

Откуда агент берёт код. Обычно секцию пишет панель, в репозитории её держать не нужно.

source(git).commitstring

Точный коммит. Проставляет панель, в репозитории это поле не пишут.

source(git).kindstringобязательно

git для репозитория.

Значения: git

source(git).refstringПо умолчанию: "main"

Ветка, тег или хеш коммита.

source(git).subdirstring

Подкаталог репозитория, из которого идёт сборка. Не задан: корень.

source(git).urlstring

Адрес репозитория по HTTPS или SSH. Логин и токен в адрес не пишутся: для закрытого репозитория есть секреты NOLAY_GIT_TOKEN и NOLAY_GIT_SSH_KEY.

source(archive).formatstringПо умолчанию: "tar_gz"

Формат архива. Проставляет панель при загрузке.

Значения: tar_gz, zip, tar, tar_zst, tar_xz, tar_bz2

source(archive).kindstringобязательно

archive для архива, загруженного через панель.

Значения: archive

source(archive).sha256string

Контрольная сумма архива. Агент сверяет её до распаковки.

source(archive).sizeintegerПо умолчанию: 0

Размер архива в байтах.

source(archive).upload_idstringПо умолчанию: "00000000-0000-0000-0000-000000000000"

Номер загрузки. Проставляет панель.

usesarray of stringПо умолчанию: []

Сервисы каталога сервера, к которым подключается проект, например ["db", "cache"]. Строка подключения приходит секретом DATABASE_URL, REDIS_URL или MONGO_URL.

volumesarray of table

Тома Docker для постоянных данных. Без томов содержимое контейнера пропадает при следующем деплое.

volumes[].namestringобязательно

Имя тома в проекте: строчные латинские буквы, цифры и дефис.

volumes[].pathstringобязательно

Абсолютный путь внутри контейнера, куда монтируется том.

workersarray of table

Фоновые процессы: контейнеры из того же образа без порта и домена. Не больше 10 на проект.

workers[].cmdstring

Команда запуска как sh -c <cmd>. Второе имя ключа start_cmd.

workers[].namestring

Имя процесса, уникальное в проекте.

workers[].replicasintegerПо умолчанию: 1

Сколько одинаковых контейнеров держать, от 1 до 10.

workers[].resourcestable

Лимиты процесса. Не заданы: берутся из [resources] проекта.

workers[].resources.cpufloat

Доля процессора.

workers[].resources.mem_mbinteger

Лимит памяти в МиБ.

НазадКоды ошибокДальшеБезопасность

На этой странице

  • Пример
  • Поля
Обновлено 2026-09-23
Nolay

Документация Nolay: подключение своего сервера, деплой, домены, секреты.

Документация

НачалоСправочникИзмененияllms.txt для ИИ

Продукт

СайтПанельСтатус
Nolay