Todas las páginas Configuración

Documentación Primeros pasos

Configuración

Todas las variables de entorno que lee Rainy, con su valor por defecto y lo que cambian.

Rainy lee sus ajustes de variables de entorno. En una instalación de Python, los valores de .env se cargan al iniciar el servidor. Con Docker Compose, Compose lee .env para la sustitución y solo pasa al contenedor las variables listadas en app.environment. Reinicia Rainy después de cambiar un valor. Con Docker, ejecuta docker compose up -d para que el contenedor se recree con el nuevo entorno.

Parte de .env.example, que enumera los ajustes que más personas cambian. Las tablas siguientes cubren todo lo que lee el código de la aplicación. Un valor por defecto indicado como «sin definir» significa que Rainy funciona sin la variable y activa o desactiva la función relacionada en consecuencia.

Los ajustes que leen solo los scripts de inicio (start.sh, start.bat) o el punto de entrada de Docker se definen en tu shell. Los valores que solo usa Compose, como RAINY_PORT y MUSIC_LIBRARY_PATH, van en .env, porque Compose lee ese archivo para la sustitución. Se enumeran por separado al final.

Núcleo y seguridad

Variable Valor por defecto Qué hace
FLASK_SECRET_KEY Vacía Firma las cookies de sesión. Rainy no arranca a menos que tenga al menos 32 caracteres y no sea un marcador de posición, salvo que RAINY_DEV esté definida. Genérala con python -c "import secrets; print(secrets.token_hex(32))".
RAINY_DEV Desactivado Modo de desarrollo. Acepta 1, true o yes. Permite una clave aleatoria temporal que se reinicia en cada arranque, y activa el depurador de Werkzeug al ejecutar app.py. No lo uses en un servidor expuesto.
SESSION_LIFETIME_DAYS 30 Cuánto dura un inicio de sesión. La sesión se amplía cada vez que se usa.

Base de datos

Variable Valor por defecto Qué hace
RAINY_DB Automático mysql o sqlite. Si no se define, Rainy usa MySQL cuando hay alguna variable MYSQL_* definida, y SQLite en caso contrario. Cualquier otro valor detiene el arranque con un error.
SQLITE_PATH data/rainy.db Ruta del archivo SQLite, relativa a la carpeta del proyecto salvo que indiques una ruta absoluta.
MYSQL_HOST localhost Host de MySQL. Puedes añadir un puerto, como en 127.0.0.1:3306.
MYSQL_PORT 3306 Puerto de MySQL. Si no se define, se usa el puerto escrito en MYSQL_HOST.
MYSQL_USER root Usuario de MySQL. Crea un usuario dedicado en lugar de usar root.
MYSQL_PASSWORD Vacía Contraseña de MySQL.
MYSQL_DATABASE rainy Nombre de la base de datos MySQL.
Si MYSQL_USER no está definida, Rainy se conecta como root. Define la cuenta dedicada que creaste para Rainy.

Red y proxies

Variable Valor por defecto Qué hace
RAINY_HTTP_PORT 6969 Puerto en el que escucha Rainy al ejecutar python app.py.
RAINY_COOKIE_SECURE Desactivado Añade el flag Secure a las cookies de sesión, para que los navegadores solo las envíen por HTTPS. Actívalo cuando sirvas Rainy por HTTPS.
RAINY_TRUST_PROXY Desactivado Confía en las cabeceras X-Forwarded-For, X-Forwarded-Proto y X-Forwarded-Host. Actívalo solo detrás de un proxy inverso que controles, para que los límites por IP vean al cliente real. Nunca lo actives si se puede acceder a Rainy directamente.
RAINY_CORS_ORIGINS Vacía Lista separada por comas de otros orígenes autorizados a llamar a la API con credenciales. Las solicitudes a la API que cambian datos desde cualquier otro origen se rechazan.

Medios y herramientas de importación

Variable Valor por defecto Qué hace
RAINY_YTDLP_AUTO_UPDATE Activado Mantiene yt-dlp actualizado. Rainy comprueba aproximadamente cada 12 horas mientras se ejecuta. Define 0 para fijar la versión instalada.
LASTFM_API_KEY Vacía Una clave gratuita de la API de Last.fm para etiquetas, artistas similares y biografías. Sin ella, se omite el enriquecimiento de Last.fm y se sigue usando MusicBrainz.

Rainy necesita ffmpeg para procesar el audio y un entorno de ejecución de JavaScript para las importaciones de YouTube. La imagen de Docker los instala, y se describen en la página de instalación.

Letras y espectáculo de luces

Variable Valor por defecto Qué hace
RAINY_WHISPER_MODEL base El modelo de faster-whisper que se usa para alinear las letras con el audio. Los modelos más grandes son más lentos y más precisos.
RAINY_LYRICS_LANG Sin definir Fuerza el idioma usado para la alineación de letras, por ejemplo en. Si no se define, Rainy lo detecta a partir del audio.
RAINY_LIGHTSHOW_DEVICE auto Dónde se ejecuta el análisis del espectáculo de luces. auto usa una GPU CUDA útil y recurre a la CPU si no la hay. cpu nunca usa la GPU. cuda usa la GPU útil con más memoria y recurre a la CPU si no hay ninguna. cuda:N usa la GPU número N, o la CPU si esa GPU no se puede usar.
RAINY_LIGHTSHOW_THREADS Núcleos de CPU, hasta 8 Hilos de trabajo de CPU para el análisis del espectáculo de luces. Un valor de 0 o que no sea un número usa el valor por defecto.

Para la configuración de la GPU y lo que cabe esperar de cada valor de dispositivo, consulta aceleración por GPU.

Lanzadores y contenedores

Estos ajustes los leen start.sh, start.bat o los archivos de Docker. Define las variables de los lanzadores en tu shell. Define las variables que solo usa Compose en .env.

Variable Valor por defecto Dónde se aplica
PYTHON Detectado automáticamente start.sh. Intérprete que se usa para crear .venv; solo se acepta si es Python 3.11 o superior.
RAINY_USE_GUNICORN 0 start.sh. Define 1 para servir con Gunicorn. Es lo mismo que pasar --gunicorn.
RAINY_GUNICORN_WORKERS 2 start.sh con Gunicorn. Número de procesos worker.
RAINY_GUNICORN_THREADS 4 start.sh con Gunicorn. Hilos por worker.
RAINY_GUNICORN_TIMEOUT 120 start.sh con Gunicorn. Segundos antes de reiniciar un worker que no responde.
DATABASE_INIT_MAX_ATTEMPTS 30 Punto de entrada de Docker. Intentos de crear o migrar el esquema, separados dos segundos, antes de que el contenedor se rinda.
RAINY_PORT 6969 Compose lo usa para definir el puerto del host, y start.sh lo usa como puerto de Gunicorn cuando RAINY_HTTP_PORT no está definida.
MUSIC_LIBRARY_PATH ./music Solo Compose. La carpeta del host montada en /music.
MYSQL_ROOT_PASSWORD Obligatorio Solo Compose. Contraseña root del servicio MySQL incluido.

Con Docker Compose, el servicio app también define MYSQL_HOST con la base de datos incluida, además de MYSQL_PORT, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE y FLASK_SECRET_KEY. Cualquier otro ajuste RAINY_* debe añadirse en app.environment de compose.yaml para que surta efecto.

Relacionado