NUEVO 📢 Oferta de lanzamiento limitada: ¡hasta un 70% de descuento en tu primer mes, en todos los juegos!Ver planes

Cómo definir variables de entorno y secretos para tu bot de Discord

Hosting de bots de DiscordUpdated Oct 29, 20266 min read

Pon las claves y los ajustes de tu bot en la página Bot, sección Entorno: añádelos uno a uno o pega todo tu archivo .env, marca Mantener este valor en secreto para contraseñas y claves, y reinicia el bot. Tu código los lee como cualquier variable de entorno.

Por qué aquí y no en un archivo

  • Los valores guardados aquí los almacena cifrados el panel, no en los archivos de tu servidor. No aparecen en Files, ni por SFTP, ni en los backups.
  • Un valor secreto nunca se vuelve a mostrar, ni a ti ni a nadie a quien des acceso: la lista muestra puntos y sus últimos cuatro caracteres.
  • Puedes compartir tu código, o ponerlo en GitHub, sin filtrar una clave.

Añade una variable

  1. Abre tu servidor de bots en el panel, luego la página Bot, sección Entorno.
  2. En Añadir una variable, escribe el Nombre, por ejemplo OPENAI_API_KEY, y el Valor.
  3. Mantener este valor en secreto se marca solo con los nombres que parecen secretos (que terminan en KEY, TOKEN, SECRET, PASSWORD y similares, o una URL de base de datos). Márcalo o desmárcalo según necesites.
  4. Pulsa Añadir variable.
  5. La sección dice Los cambios se aplican la próxima vez que se inicie el bot. Si el bot está en marcha, pulsa Reiniciar ahora.

La tarjeta Variables de entorno con tres variables, una marcada como Secreto y mostrada con puntos, y el formulario Añadir una variable debajo.

Pega un archivo .env entero

  1. Pulsa Pegar un archivo .env.
  2. Pega el contenido de tu .env. Todavía no se envía nada: el diálogo lista los nombres que encontró, con una insignia Secreto en los que guardará como secretos.
  3. Los nombres que el panel no acepta se marcan como Omitida: el token del bot con cualquiera de sus nombres (DISCORD_TOKEN, TOKEN, BOT_TOKEN, DISCORD_BOT_TOKEN), GIT_TOKEN, los ajustes propios del tipo de tu bot (están en la sección Código), nombres del sistema como PATH, y nombres que cambian cómo arranca un entorno de ejecución, como PYTHONPATH, NODE_PATH o cualquiera que empiece por LD_. Una nota dice dónde van. Las líneas que no puede leer en absoluto se listan con su número de línea.
  4. Pulsa el botón de importar, por ejemplo Importar 6 variables. Las líneas omitidas no cuentan.

Funcionan las formas habituales de .env: KEY=value, export KEY=value, comentarios, y valores entre comillas simples ('single') o dobles ("double", que pueden ocupar varias líneas). Si un nombre aparece dos veces, gana el último.

El diálogo Pegar un archivo .env con líneas pegadas, una línea DISCORD_TOKEN marcada como Omitida con la nota de que el token va en la sección Discord, una insignia Secreto en una contraseña, y el botón Importar.

Léelas en tu código

LenguajeCódigo
Node.js, Bunprocess.env.OPENAI_API_KEY
Pythonos.environ["OPENAI_API_KEY"]
JavaSystem.getenv("OPENAI_API_KEY")
C#Environment.GetEnvironmentVariable("OPENAI_API_KEY")
DenoDeno.env.get("OPENAI_API_KEY")
Goos.Getenv("OPENAI_API_KEY")
Ruststd::env::var("OPENAI_API_KEY")

¿Tu código ya usa dotenv o python-dotenv? Sigue funcionando: esas librerías no sobrescriben una variable que ya está definida, así que los valores del panel ganan a un archivo .env que hayas dejado.

Cambia o quita una

  • Un valor normal tiene Editar; un secreto tiene Reemplazar. Un secreto empieza vacío porque su valor nunca se devuelve: escribe el valor nuevo y pulsa Guardar.
  • Quitar pregunta ¿Quitar OPENAI_API_KEY?; confirma con Quitar variable. El bot ya no la tendrá en su próximo inicio.

Reglas y límites

  • Un nombre son letras, dígitos y guiones bajos, hasta 64 caracteres, y no empieza por un dígito.
  • Un valor admite hasta 4 KB. Un bot puede tener hasta 50 variables.
  • Los nombres que define el propio panel se rechazan con ... is set by PlayNHost and cannot be changed here.: los nombres del token (DISCORD_TOKEN, TOKEN, BOT_TOKEN, DISCORD_BOT_TOKEN), GIT_TOKEN, PATH, HOME, NODE_OPTIONS, los nombres que empiezan por SERVER_ o PNH_, y los ajustes propios del tipo de tu bot, como MAIN_FILE.
  • Los nombres que cambian cómo arranca un entorno de ejecución o el shell se rechazan en Añadir una variable con ... controls how the bot starts and cannot be set here. (un .env pegado los marca como Omitida), por ejemplo PYTHONPATH, NODE_PATH, JAVA_TOOL_OPTIONS o cualquiera que empiece por LD_, NPM_CONFIG_, PIP_ o GIT_.

Tu token de Discord llega a tu código sin que tengas que poner ninguna variable, como DISCORD_TOKEN y también como TOKEN, BOT_TOKEN y DISCORD_BOT_TOKEN. Por eso esos nombres no se pueden definir aquí.

Un bot listo para usar no tiene una lista propia de variables: sus claves son campos fijos de la tarjeta Credenciales de esta sección. Una clave sin la que el bot no puede iniciarse muestra Obligatorio, y mientras no se defina, la tarjeta Configura tu bot del Resumen mantiene desactivado Iniciar bot y enlaza aquí con Abrir Entorno: Cómo cambiar los ajustes de un bot listo para usar.

Relacionado: Cómo mantener seguro el token de tu bot de Discord, Cómo usar una base de datos con tu bot de Discord.

¿Ya tienes tu bot en otro proveedor? Tráelo con nosotros

NUESTROS ÚLTIMOS BLOGS