Dokumentacja Pierwsze kroki
Instalacja
Zainstaluj Rainy za pomocą Docker Compose albo uruchom go bezpośrednio z Pythonem na Linuksie, macOS lub Windows.
Rainy można uruchomić na dwa sposoby. Docker Compose to zalecana ścieżka: stos sam dostarcza bazę danych MySQL 8.4, ffmpeg, narzędzie fpcalc (odciski akustyczne) i środowisko uruchomieniowe JavaScript Deno, więc nie musisz niczego instalować osobno. Ścieżka z Pythonem wymaga Pythona 3.11 lub nowszego i przechowuje wszystko w jednym pliku SQLite, co dobrze pasuje do komputera osobistego.
Obie ścieżki uruchamiają serwer na porcie 6969 i wymagają folderu z muzyką na komputerze, na którym działa Rainy.
Opcja A: Docker Compose
-
Sklonuj repozytorium i wejdź do folderu. Muszą być zainstalowane Git oraz wtyczka Docker Compose.
git clone https://github.com/Rainer-Technologies/Rainy.git cd Rainy cp .env.example .env -
Otwórz
.envi przed uruchomieniem ustaw te cztery wartości:Ustawienie Co wpisać FLASK_SECRET_KEYLosowy klucz o długości co najmniej 32 znaków. Rainy nie uruchomi się bez niego. MYSQL_PASSWORDSilne hasło dla użytkownika bazy danych Rainy. MYSQL_ROOT_PASSWORDInne silne hasło dla użytkownika root w MySQL. MUSIC_LIBRARY_PATHBezwzględna ścieżka do folderu z muzyką albo ./musicdla pustej biblioteki.Aby wygenerować klucz sesji, uruchom
python3 -c "import secrets; print(secrets.token_hex(32))"i wklej wynik poFLASK_SECRET_KEY=. -
Jeśli komputer nie ma karty NVIDIA GPU, usuń cały blok
deploy:pod usługąappwcompose.yaml. Domyślnie żąda on urządzeń NVIDIA, a Compose nie uruchomi się bez NVIDIA Container Toolkit. Bez tego bloku Rainy analizuje pokazy świateł na procesorze. Konfigurację GPU opisuje akceleracja GPU. -
Zbuduj i uruchom stos:
docker compose up --build -d -
Otwórz
http://localhost:6969. Jeśli zmieniłeśRAINY_PORT, użyj tego portu. Wypełnij formularz konfiguracji, aby utworzyć konto administratora, i wpisz/musicjako ścieżkę biblioteki. W tym miejscu w kontenerze pojawia się folder zMUSIC_LIBRARY_PATH. -
Przejdź do Ustawienia > Konserwacja i uruchom Szybkie skanowanie, aby zindeksować pliki, które już znajdują się w folderze.
Kontener app czeka, aż baza danych będzie gotowa, inicjalizuje schemat, a następnie uruchamia Gunicorn. Twoja muzyka pozostaje w folderze na hoście; baza danych znajduje się w wolumenie Docker mysql_data.
Compose przekazuje do kontenera tylko zmienne wymienione wapp.environment. Aby ustawić inną opcjęRAINY_*w Dockerze, dodaj ją do tej listy wcompose.yamli ponownie uruchomdocker compose up -d. Zobacz konfigurację.
Opcja B: Python z SQLite
Najpierw zainstaluj:
- Python 3.11 lub nowszy.
- ffmpeg w
PATH. Rainy używa go do przetwarzania dźwięku. - Środowisko uruchomieniowe JavaScript do importów z YouTube: Deno, Node.js lub Bun. Bez niego większość formatów z YouTube kończy się błędem HTTP 403.
- fpcalc (Chromaprint), opcjonalnie. Rainy używa go, aby rozpoznać ten sam utwór z innego źródła. Umieść go w
PATHalbo w folderzebinprojektu. Bez niego jako duplikaty liczą się tylko pliki identyczne co do bajtu.
Linux i macOS
- Sklonuj repozytorium i wejdź do folderu.
-
Utwórz
.envi ustaw backend bazy danych. Skopiuj szablon, a następnie otwórz.env:cp .env.example .envOdkomentuj
RAINY_DB=sqlite. Bez tego aktywne wierszeMYSQL_*w szablonie wybiorą MySQL, a Rainy spróbuje połączyć się z serwerem bazy danych. -
Uruchom Rainy skryptem startowym. Tworzy on
.venv, instaluje wymagania i zapisuje bezpiecznyFLASK_SECRET_KEYw.env, jeśli wartość brakuje lub jest słaba:./start.shAby użyć konkretnego interpretera, ustaw
PYTHON=python3.12 ./start.sh. -
Otwórz
http://localhost:6969, utwórz konto administratora i wpisz bezwzględną ścieżkę do folderu z muzyką. Folder musi już istnieć. Następnie uruchom Ustawienia > Konserwacja > Szybkie skanowanie.
Do trwałego serwera uruchom zamiast tego ./start.sh --gunicorn. Opcja --gunicorn jest obsługiwana tylko przez skrypt startowy dla Linuksa i macOS.
Windows
- Sklonuj repozytorium i otwórz folder w Eksploratorze plików.
- Utwórz
.env, kopiując.env.example, następnie odkomentujRAINY_DB=sqlitei sam ustawFLASK_SECRET_KEY. W przeciwieństwie dostart.sh, plikstart.batnie generuje tego klucza. Użyj losowej wartości o długości co najmniej 32 znaków. - Kliknij dwukrotnie
start.batalbo uruchom go z wiersza poleceń. Tworzy on.venv, instaluje wymagania i uruchamiaapp.py. - Otwórz
http://localhost:6969, dokończ konfigurację i uruchom szybkie skanowanie jak wyżej.
Uruchamianie z wirtualnego środowiska
Jeśli wolisz samodzielnie zarządzać środowiskiem, skrypty startowe wykonują te same kroki:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python app.py
W Windows użyj py -m venv .venv i .venv\Scripts\activate.
Użycie MySQL zamiast tego
Jeśli masz już MySQL 8, ustaw RAINY_DB=mysql w .env i uzupełnij MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD oraz MYSQL_DATABASE. Użytkownik bazy danych musi mieć prawo tworzenia i zmieniania tabel w tej bazie.
Aktualizacja
Przy Dockerze wykonaj kopię zapasową wolumenu mysql_data, pliku .env i folderu z muzyką, a następnie uruchom:
git pull
docker compose up --build -d
Unikaj docker compose down -v, które usuwa wolumen bazy danych. Przy instalacji z Pythonem uruchom git pull, a potem ponownie ./start.sh. Skrypt startowy zainstaluje na nowo wszystkie zmienione wymagania.
Rozwiązywanie problemów
| Problem | Co sprawdzić |
|---|---|
Rainy nie chce się uruchomić i wspomina FLASK_SECRET_KEY |
Klucz brakuje, nadal jest wartością zastępczą albo ma mniej niż 32 znaki. |
| Lokalny start próbuje połączyć się z MySQL | Ustaw RAINY_DB=sqlite w .env. |
| Konfiguracja odrzuca ścieżkę do muzyki | W Dockerze użyj /music. Lokalnie użyj istniejącej bezwzględnej ścieżki. |
| Importy z YouTube kończą się błędem | Sprawdź, czy zainstalowano ffmpeg i środowisko JavaScript. W Dockerze oba są już dołączone. |
| Compose nie może wybrać sterownika NVIDIA | Na komputerze bez GPU usuń blok deploy: z compose.yaml. |
Wszystkie ustawienia, które odczytuje Rainy, opisuje konfiguracja. Gdy serwer zacznie odpowiadać, przejdź do pierwszego uruchomienia.