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, comoRAINY_PORTyMUSIC_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. |
SiMYSQL_USERno está definida, Rainy se conecta comoroot. 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.