Храните ключи и настройки вашего бота на странице Бот, в разделе Окружение: добавляйте их по одному или вставьте весь файл .env, отметьте Хранить значение в секрете для паролей и ключей, затем перезапустите бота. Ваш код читает их как любые переменные окружения.
Почему здесь, а не в файле
- Сохранённые здесь значения панель хранит в зашифрованном виде, а не в файлах вашего сервера. Они не видны в Files, по SFTP и в бэкапах.
- Секретное значение больше никогда не показывается ни вам, ни тем, кому вы дали доступ: в списке видны точки и последние четыре символа.
- Вы можете делиться кодом или выложить его на GitHub, не раскрыв ключ.
Как добавить одну переменную
- Откройте сервер вашего бота в панели, затем страницу Бот, раздел Окружение.
- В разделе Добавить переменную введите Имя, например
OPENAI_API_KEY, и Значение. - Хранить значение в секрете включается само для имён, похожих на секретные (оканчивающихся на
KEY,TOKEN,SECRET,PASSWORDи подобные, или адрес базы данных). Поставьте или снимите галочку по необходимости. - Нажмите Добавить переменную.
- На панели написано Изменения применятся при следующем запуске бота. Если бот работает, нажмите Перезапустить сейчас.

Как вставить весь файл .env
- Нажмите Вставить файл .env.
- Вставьте содержимое своего
.env. Пока ничего не отправляется: в окне показан список найденных имён, а у тех, которые будут сохранены как секреты, стоит значок Секрет. - Имена, которые панель не примет, помечены Пропущено: токен бота под любым из его имён (
DISCORD_TOKEN,TOKEN,BOT_TOKEN,DISCORD_BOT_TOKEN),GIT_TOKEN, собственные настройки вашего типа бота (они находятся в разделе Код), системные имена вродеPATHи имена, меняющие способ запуска среды выполнения, такие какPYTHONPATH,NODE_PATHили любое имя, начинающееся сLD_. Примечание говорит, где им место. Строки, которые вообще не удалось прочитать, перечислены с номерами строк. - Нажмите кнопку импорта, например Импортировать 6 переменных. Пропущенные строки в число не входят.
Работают обычные формы .env: KEY=value, export KEY=value, комментарии и значения в кавычках 'single' или "double" (двойные кавычки могут занимать несколько строк). Если имя встречается дважды, действует последнее.

Как читать их в коде
| Язык | Код |
|---|---|
| Node.js, Bun | process.env.OPENAI_API_KEY |
| Python | os.environ["OPENAI_API_KEY"] |
| Java | System.getenv("OPENAI_API_KEY") |
| C# | Environment.GetEnvironmentVariable("OPENAI_API_KEY") |
| Deno | Deno.env.get("OPENAI_API_KEY") |
| Go | os.Getenv("OPENAI_API_KEY") |
| Rust | std::env::var("OPENAI_API_KEY") |
Ваш код уже использует dotenv или python-dotenv? Он продолжит работать: эти библиотеки не перезаписывают уже заданную переменную, поэтому значения панели имеют приоритет над оставшимся файлом .env.
Как изменить или удалить переменную
- У обычного значения есть кнопка Изменить, у секретного Заменить. Секретное значение сначала пустое, потому что его значение никогда не отправляется обратно: введите новое значение и нажмите Сохранить.
- Удалить спрашивает Удалить OPENAI_API_KEY?; подтвердите кнопкой Удалить переменную. При следующем запуске этой переменной у бота уже не будет.
Правила и ограничения
- Имя состоит из букв, цифр и символов подчёркивания, не длиннее 64 символов и не начинается с цифры.
- Значение занимает до 4 KB. У бота может быть до 50 переменных.
- Имена, которые панель задаёт сама, отклоняются сообщением
... is set by PlayNHost and cannot be changed here.: это имена токена (DISCORD_TOKEN,TOKEN,BOT_TOKEN,DISCORD_BOT_TOKEN),GIT_TOKEN,PATH,HOME,NODE_OPTIONS, имена, начинающиеся сSERVER_илиPNH_, и собственные настройки вашего типа бота, напримерMAIN_FILE. - Имена, которые меняют способ запуска среды выполнения или оболочки, отклоняются в разделе Добавить переменную сообщением
... controls how the bot starts and cannot be set here.(вставленный.envпомечает их как Пропущено), напримерPYTHONPATH,NODE_PATH,JAVA_TOOL_OPTIONSили любое имя, начинающееся сLD_,NPM_CONFIG_,PIP_илиGIT_.
Ваш токен Discord попадает в код без какой-либо переменной с вашей стороны: как DISCORD_TOKEN, а также как TOKEN, BOT_TOKEN и DISCORD_BOT_TOKEN. Поэтому эти имена здесь задать нельзя.
У готового бота нет собственного списка переменных: его ключи это фиксированные поля на карточке Учётные данные в этом разделе. Ключ, без которого бот не запустится, помечен Обязательно, и пока он не задан, карточка Настройка бота на странице Обзор держит кнопку Запустить бота неактивной и ведёт сюда ссылкой Открыть окружение: Как изменить настройки готового бота.
См. также: Как защитить токен вашего Discord-бота, Как использовать базу данных с Discord-ботом.



