Documentació Primers passos
Instal·lació
Instal·la Rainy amb Docker Compose, o executa'l directament amb Python a Linux, macOS o Windows.
Pots executar Rainy de dues maneres. Docker Compose és la via recomanada: la pila porta la seva pròpia base de dades MySQL 8.4, ffmpeg, l'eina fpcalc (empremtes acústiques) i l'entorn d'execució de JavaScript Deno, així que no cal instal·lar res més. La via de Python necessita Python 3.11 o una versió posterior i ho guarda tot en un únic fitxer SQLite, que és ideal per a un ordinador personal.
Totes dues vies arrenquen el servidor al port 6969 i necessiten una carpeta de música a la màquina que executa Rainy.
Opció A: Docker Compose
-
Clona el repositori i entra a la carpeta. Cal tenir instal·lats Git i el complement de Docker Compose.
git clone https://github.com/Rainer-Technologies/Rainy.git cd Rainy cp .env.example .env -
Obre
.envi defineix aquests quatre valors abans d'iniciar:Configuració Què hi has de posar FLASK_SECRET_KEYUna clau aleatòria d'almenys 32 caràcters. Rainy no s'inicia sense ella. MYSQL_PASSWORDUna contrasenya segura per a l'usuari de la base de dades de Rainy. MYSQL_ROOT_PASSWORDUna contrasenya segura diferent per a l'usuari root de MySQL. MUSIC_LIBRARY_PATHLa ruta absoluta a la teva carpeta de música, o ./musicper a una biblioteca buida.Per generar una clau de sessió, executa
python3 -c "import secrets; print(secrets.token_hex(32))"i enganxa la sortida després deFLASK_SECRET_KEY=. -
Si l'equip no té una GPU NVIDIA, elimina tot el bloc
deploy:sota el serveiappacompose.yaml. Per defecte sol·licita dispositius NVIDIA, i Compose no s'iniciarà sense el NVIDIA Container Toolkit. Sense ell, Rainy analitza els espectacles de llums amb la CPU. Per a la configuració de la GPU, consulta acceleració per GPU. -
Construeix i inicia la pila:
docker compose up --build -d -
Obre
http://localhost:6969. Si has canviatRAINY_PORT, fes servir aquest port. Completa el formulari de configuració per crear el compte d'administrador i introdueix/musiccom a ruta de la biblioteca. Aquí és on apareix dins del contenidor la carpeta deMUSIC_LIBRARY_PATH. -
Ves a Configuració > Manteniment i executa Escaneig ràpid per indexar els fitxers que ja hi ha a la carpeta.
El contenidor app espera que la base de dades estigui en bon estat, inicialitza l'esquema i després arrenca Gunicorn. La teva música es queda a la carpeta de l'amfitrió; la base de dades viu al volum de Docker mysql_data.
Compose només passa a dins del contenidor les variables que apareixen aapp.environment. Per definir qualsevol altra opcióRAINY_*amb Docker, afegeix-la a aquesta llista decompose.yamli torna a executardocker compose up -d. Consulta configuració.
Opció B: Python amb SQLite
Instal·la primer aquests components:
- Python 3.11 o una versió posterior.
- ffmpeg al teu
PATH. Rainy l'utilitza per processar l'àudio. - Un entorn d'execució de JavaScript per a les importacions de YouTube: Deno, Node.js o Bun. Sense cap d'ells, la majoria de formats de YouTube fallen amb HTTP 403.
- fpcalc (Chromaprint), opcional. Rainy l'utilitza per reconèixer la mateixa cançó d'una altra font. Posa'l al
PATHo a la carpetabindel projecte. Sense ell, només compten com a duplicats els fitxers idèntics byte a byte.
Linux i macOS
- Clona el repositori i entra a la carpeta.
-
Crea
.envi defineix el backend de la base de dades. Copia la plantilla i obre.env:cp .env.example .envDescomenta
RAINY_DB=sqlite. Sense això, les líniesMYSQL_*actives de la plantilla seleccionen MySQL i Rainy intenta connectar-se a un servidor de base de dades. -
Inicia Rainy amb el llançador. Crea
.venv, instal·la els requisits i escriu unaFLASK_SECRET_KEYsegura a.envsi el valor falta o és feble:./start.shPer fer servir un intèrpret concret, defineix
PYTHON=python3.12 ./start.sh. -
Obre
http://localhost:6969, crea el compte d'administrador i introdueix la ruta absoluta a la teva carpeta de música. La carpeta ha d'existir ja. Després executa Configuració > Manteniment > Escaneig ràpid.
Per a un servidor permanent, executa ./start.sh --gunicorn. L'opció --gunicorn només és compatible amb el llançador de Linux i macOS.
Windows
- Clona el repositori i obre la carpeta a l'Explorador de fitxers.
- Crea
.envcopiant.env.example, després descomentaRAINY_DB=sqlitei defineix tu mateixFLASK_SECRET_KEY. A diferència destart.sh,start.batno genera la clau. Fes servir un valor aleatori de 32 caràcters o més. - Fes doble clic a
start.bato executa'l des d'una finestra d'ordres. Crea.venv, instal·la els requisits i iniciaapp.py. - Obre
http://localhost:6969, completa la configuració i executa un escaneig ràpid tal com s'ha explicat abans.
Execució des d'un entorn virtual
Si prefereixes gestionar tu mateix l'entorn, els llançadors fan els mateixos passos:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python app.py
A Windows, fes servir py -m venv .venv i .venv\Scripts\activate.
Ús de MySQL
Si ja tens MySQL 8 en marxa, defineix RAINY_DB=mysql a .env i omple MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD i MYSQL_DATABASE. L'usuari de la base de dades ha de poder crear i modificar taules en aquesta base de dades.
Actualització
Amb Docker, fes una còpia de seguretat del volum mysql_data, del teu .env i de la carpeta de música, i després executa:
git pull
docker compose up --build -d
Evita docker compose down -v, que esborra el volum de la base de dades. Amb la instal·lació de Python, executa git pull i després ./start.sh de nou. El llançador reinstal·la els requisits que hagin canviat.
Resolució de problemes
| Problema | Què has de comprovar |
|---|---|
Rainy no s'inicia i menciona FLASK_SECRET_KEY |
La clau falta, encara és el marcador de posició o té menys de 32 caràcters. |
| L'inici local intenta connectar-se a MySQL | Defineix RAINY_DB=sqlite a .env. |
| La configuració rebutja la ruta de música | Fes servir /music amb Docker. En local, fes servir una ruta absoluta que existeixi. |
| Les importacions de YouTube fallen | Comprova que hi hagi ffmpeg i un entorn d'execució de JavaScript instal·lats. A Docker ja hi són tots dos. |
| Compose no pot seleccionar un controlador NVIDIA | Elimina el bloc deploy: de compose.yaml en un equip sense GPU. |
Per a cada configuració que llegeix Rainy, consulta configuració. Quan el servidor respongui, continua amb primera execució.