Configuración: el archivo .env
Toda la configuración de rApanel vive en un archivo de texto llamado .env,
en la raíz de tu instalación. El instalador lo deja funcionando, así que la mayoría de
estas variables no las vas a tocar nunca. Esta página explica qué hace cada una, para
cuando necesites cambiar algo y quieras saber qué estás moviendo.
1 · Cómo se edita #
El archivo se llama .env y está en la raíz de tu instalación, dentro de
/var/www/. El nombre de esa carpeta lo elegiste tú en el primer paso del
instalador: si pulsaste Enter será rapanel, pero puede ser cualquier otro.
Si no lo recuerdas:
# lista las instalaciones que hay en el servidor
ls /var/www/
A partir de aquí, donde esta guía escriba /var/www/rapanel/, sustituye
rapanel por el nombre de tu carpeta. Dentro del archivo, cada línea es una
variable y su valor, sin espacios alrededor del igual.
Después de cualquier cambio hay que refrescar la configuración, o el panel seguirá usando la anterior:
php artisan config:clear && php artisan cache:clear
Es la causa número uno de "cambié la variable y no pasó nada".
Si un valor contiene espacios o caracteres especiales como $,
;, @ o #, enciérralo entre comillas simples. Las
contraseñas de correo son las que más problemas dan por esto.
2 · Licencia #
RAPANEL_LICENSE_KEY— tu clave de licencia.RAPANEL_LICENSE_FINGERPRINT— identificador de esta instalación.
Las completa el instalador y no se editan a mano. Modificarlas deja el panel sin poder validarse. Si necesitas mover tu licencia a otro servidor, hazlo desde tu panel de cliente en HRO liberando la instalación anterior.
3 · Aplicación #
APP_NAME— nombre interno de la aplicación. Aparece en el asunto de los correos.APP_ENV— entorno. En un servidor real, siempreproduction.APP_KEY— clave de cifrado de la aplicación. La genera el instalador. Nunca la cambies en una instalación en uso: invalida las sesiones y los datos cifrados.APP_DEBUG—falseen producción, sin excepciones. Entrue, cualquier error muestra al visitante rutas internas y fragmentos de configuración.APP_URL— la dirección pública del panel, conhttps://una vez tengas certificado. De aquí salen los enlaces de los correos y las rutas de los recursos.RA_SERVER_NAME— el nombre de tu servidor tal como se muestra en el panel.APP_LOCALE— idioma por defecto. Disponibles:en,es,pt,pt-BR,fr,de,ru.
La zona horaria
APP_TIMEZONE merece párrafo aparte porque es fuente de confusión. Debe
coincidir con la del sistema operativo y con la del motor de base de datos. Si
las tres no están alineadas, las fechas se guardan corridas y los rankings o los
registros de actividad muestran horas que no cuadran.
# cambiar la zona horaria del sistema
sudo timedatectl set-timezone America/Santiago
4 · Bases de datos #
El panel no usa una base propia: se conecta a la de tu servidor de rAthena y crea allí
sus tablas con el prefijo ra_. Hay tres grupos de credenciales porque
rAthena puede repartir sus datos en bases distintas; en la mayoría de instalaciones las
tres apuntan al mismo sitio.
DB_CONNECTION— motor:mysqlomariadb.DB_HOSTyDB_PORT— dónde escucha la base de datos.DB_DATABASE,DB_USERNAME,DB_PASSWORD— la base principal de rAthena y sus credenciales.
Los otros dos grupos siguen el mismo patrón y suelen repetir los valores anteriores:
DB_LOG_HOST,DB_LOG_PORT,DB_LOG_DATABASE,DB_LOG_USERNAME,DB_LOG_PASSWORD— la base de registros de rAthena.DB_WEB_HOST,DB_WEB_PORT,DB_WEB_DATABASE,DB_WEB_USERNAME,DB_WEB_PASSWORD— la base web de rAthena.
Si el panel y rAthena están en máquinas distintas, el usuario de base de datos tiene
que tener permisos desde la IP del panel, no solo desde
localhost. Es el motivo más frecuente de que la instalación falle.
5 · Servidor rAthena #
RA_EMULATOR—rathenaohercules.RA_GAME_MODE—renewalopre-renewal. Afecta a cómo el panel interpreta ciertos datos del juego.
Las direcciones y puertos de los cuatro servicios se usan únicamente para el indicador de estado en línea y el conteo de jugadores de la portada. Si no los configuras, el panel funciona igual; solo dejará de mostrar ese dato.
RA_LOGIN_IPyRA_LOGIN_PORT— servidor de acceso (6900 por defecto).RA_CHAR_IPyRA_CHAR_PORT— servidor de personajes (6121).RA_MAP_IPyRA_MAP_PORT— servidor de mapas (5121).RA_WEB_IPyRA_WEB_PORT— servicio web de rAthena (8888).
6 · Cuentas y personajes #
RA_USE_MD5_PASSWORDS tiene que coincidir exactamente con
la opción use_MD5_passwords de tu rAthena. Si no coinciden, las cuentas
que se creen desde el panel no podrán entrar al juego, o al revés. rAthena viene con
esa opción desactivada, así que el valor por defecto aquí es false.
RA_MAX_GAME_ACCOUNTS— cuántas cuentas de juego puede crear cada usuario del panel.RA_RESET_MAP,RA_RESET_X,RA_RESET_Y— dónde aparece un personaje cuando se usa el reset de posición. Por defecto, el centro de Prontera.
Multiplicadores de experiencia
Son solo informativos: el panel los muestra, no los aplica. Los que mandan en el juego
son los de battle/exp.conf de rAthena, y aquí se replican para que el
visitante vea las tasas correctas. Usan el mismo formato que rAthena, donde
100 equivale a ×1 y 1000 a ×10.
RA_BASE_EXP_RATE— experiencia base.RA_JOB_EXP_RATE— experiencia de clase.RA_MVP_EXP_RATE— experiencia de MVP.
7 · Funcionalidades #
Cada una enciende o apaga una sección del panel. Varias dependen de que tu emulador tenga las tablas correspondientes; si activas una y la tabla no existe, el panel oculta la sección en silencio en vez de fallar.
RA_REQUIRE_EMAIL_VERIFY— exige confirmar el correo al registrarse. Necesita el correo configurado.RA_VIP_ENABLED— sistema VIP.RA_BANK_ENABLED— banco de zeny.RA_CASHPOINTS_ENABLED— puntos de tienda.RA_MASTER_STORAGE_ENABLED— almacén premium nativo de rAthena.RA_GEPARD_SHIELD_ENABLED— sección de administración del anticheat Gepard Shield, si tu emulador lo tiene instalado.RA_DDOS_SECURITY_ENABLED— muestra el sello de protección en el pie de página. Es solo un distintivo visual: no activa ninguna protección.RA_ROBROWSER_URL— dirección pública de tu cliente web, si publicas uno. Vacío oculta el botón de jugar en el navegador. El panel no aloja el cliente.
Acceso y sesión
RA_2FA_ENABLED— permite a los usuarios activar la verificación en dos pasos desde su perfil.RA_2FA_FORCE_ADMINS— obliga a los administradores a tenerla. Requiere que la anterior esté activa.RA_INACTIVITY_TIMEOUT— minutos de inactividad antes de cerrar la sesión.0lo desactiva.
Activar las dos de doble factor es de las mejoras de seguridad más baratas que puedes hacer: protege las cuentas de administración aunque alguien se haga con la contraseña.
8 · Consola en vivo #
La Consola en Vivo muestra la salida de los procesos de rAthena en tiempo real dentro del panel. Necesita un servicio auxiliar corriendo en la máquina del emulador.
RA_WS_PORT— puerto en el que escucha ese servicio. Por defecto 3001.RA_WS_SECRET— secreto compartido entre el panel y el servicio. Genera uno largo y aleatorio, y ponlo idéntico en los dos lados. Sin él la consola no funciona.RA_WS_INTERNAL_URL— cómo llega el panel al servicio, por la red interna.RA_WS_PUBLIC_URL— cómo llega el navegador al servicio.
Las dos últimas se detectan solas en la mayoría de instalaciones. Solo hay que fijarlas cuando la red lo exige, y hay una regla importante: si tu panel está en HTTPS, el navegador no aceptará una conexión sin cifrar. En ese caso la dirección pública tiene que ir por el proxy de tu servidor web, y no directa al puerto.
9 · Sesiones y caché #
SESSION_DRIVER— dónde se guardan las sesiones.databasees lo habitual.SESSION_LIFETIME— duración de la sesión en minutos.SESSION_ENCRYPT— cifra el contenido de la sesión. Recomendado entrue.SESSION_SECURE_COOKIE— envía la cookie solo por conexión cifrada.SESSION_PATHySESSION_DOMAIN— alcance de la cookie. No hace falta tocarlos.CACHE_STOREyQUEUE_CONNECTION— almacén de caché y de tareas en segundo plano.
SESSION_SECURE_COOKIE=true con el sitio todavía en HTTP hace que el
navegador deseche la cookie: el formulario de acceso parece no responder y no hay
ningún mensaje de error. Actívala después de tener el certificado.
10 · Correo #
Se usa para verificar el correo al registrarse y para recuperar contraseñas. Si no exiges verificación y nadie recupera su contraseña, no hace falta configurarlo.
MAIL_MAILER—smtppara enviar de verdad, ologpara que los correos solo se escriban en el registro.loges cómodo para probar el registro sin servidor de correo.MAIL_HOSTyMAIL_PORT— servidor de salida y su puerto.MAIL_USERNAMEyMAIL_PASSWORD— credenciales del buzón.MAIL_FROM_ADDRESSyMAIL_FROM_NAME— remitente que verán tus usuarios.
MAIL_SCHEME define el cifrado y depende del puerto de tu proveedor:
smtpscon el puerto 465 — lo más común en hosting compartido.tlscon el puerto 587 — Gmail, Outlook y la mayoría de servicios de envío.- Vacío usa el puerto 25 sin cifrar, que no es recomendable en producción.
Usa una dirección de remitente que exista de verdad en tu dominio. Un remitente inventado hace que muchos servidores rechacen el envío, y el síntoma — registros que fallan sin explicación — no apunta al correo en absoluto.
11 · Integraciones #
Todas son opcionales y vienen apagadas.
Discord
Muestra un bloque de Discord en la portada, con miembros conectados en tiempo real.
DISCORD_BOT_TOKEN— token del bot que consulta esos datos.DISCORD_SERVER_ID— identificador de tu servidor de Discord.DISCORD_INVITE_URL— enlace de invitación para el botón de unirse.
Acceso con GitHub y Google
Permite registrarse y entrar con una cuenta existente. Cada proveedor se activa por separado con credenciales propias, que se obtienen en la consola de cada uno.
SOCIAL_GITHUB_ENABLED,GITHUB_CLIENT_ID,GITHUB_CLIENT_SECRETSOCIAL_GOOGLE_ENABLED,GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET
Mapa de jugadores
Dibuja en el panel de administración un mapa con la distribución de tus jugadores.
Requiere una cuenta gratuita de MaxMind y descargar la base local con
php artisan location:update. Sin credenciales, el mapa aparece vacío.
GEOLOCATION_DRIVER— método de consulta.MAXMIND_USER_IDyMAXMIND_LICENSE_KEY— credenciales de tu cuenta.
12 · Donaciones #
Tres pasarelas, independientes entre sí. Cada una se activa con su interruptor y sus credenciales, que se obtienen en el panel de desarrollador del proveedor.
- PayPal —
DONATION_PAYPAL_ENABLED,DONATION_PAYPAL_CLIENT_ID,DONATION_PAYPAL_SECRETyDONATION_PAYPAL_SANDBOX, que entrueusa el entorno de pruebas. - Stripe —
DONATION_STRIPE_ENABLED,DONATION_STRIPE_PUBLIC_KEY,DONATION_STRIPE_SECRET_KEYyDONATION_STRIPE_WEBHOOK_SECRET. - Mercado Pago —
DONATION_MP_ENABLED,DONATION_MP_ACCESS_TOKENyDONATION_MP_PUBLIC_KEY. Disponible en buena parte de Latinoamérica.
Prueba siempre en el entorno de pruebas del proveedor antes de pasar a producción, y recuerda que Stripe necesita además que registres la dirección de notificación en su panel. Sin ese paso los pagos se cobran pero el panel no se entera.
13 · Internas #
Estas rara vez se tocan. Las listamos para que sepas qué son cuando las veas en el archivo.
APP_FALLBACK_LOCALE— idioma que se usa si falta una traducción. Déjalo enen.APP_FAKER_LOCALE— solo para datos de prueba en desarrollo.APP_MAINTENANCE_DRIVER— cómo se marca el modo mantenimiento durante las actualizaciones.BCRYPT_ROUNDS— coste del cifrado de contraseñas. Subirlo endurece pero ralentiza cada inicio de sesión.LOG_CHANNEL,LOG_STACK,LOG_DEPRECATIONS_CHANNEL— a dónde van los registros.LOG_LEVEL— cuánto detalle se registra. En producción convienewarningo superior: condebuglos archivos crecen muy rápido.BROADCAST_CONNECTION,FILESYSTEM_DISK,VITE_APP_NAME— infraestructura interna.
Reporte de errores
Opcional y apagado por defecto. Si lo activas, los errores del panel se envían a tu cuenta de Sentry para que puedas verlos sin entrar al servidor. Vacío, no se conecta a ningún sitio y los errores solo quedan en el registro local.
SENTRY_LARAVEL_DSN— la dirección de tu proyecto. Vacío lo desactiva.SENTRY_ENVIRONMENT— separa entornos dentro de un mismo proyecto.SENTRY_SAMPLE_RATE— proporción de errores enviados.1.0los manda todos.
14 · Qué no compartir #
El .env completo es un archivo sensible: no lo publiques en foros, capturas
ni repositorios, ni siquiera para pedir ayuda. Si tienes que enseñar tu configuración,
borra antes los valores de estas variables:
APP_KEY— la clave de cifrado de todo el panel.- Cualquier
*_PASSWORD, empezando por las de base de datos y correo. RA_WS_SECRET.RAPANEL_LICENSE_KEYyRAPANEL_LICENSE_FINGERPRINT.- Los tokens y claves de Discord, GitHub, Google, MaxMind, Sentry y las tres pasarelas de pago.
El archivo debe estar además fuera del alcance del navegador y con permisos restringidos. El Health Check del panel comprueba las dos cosas por ti, y la guía de seguridad explica cómo corregirlo si algo no está en su sitio.