Wszystkie strony Instalacja

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

  1. 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
    
  2. Otwórz .env i przed uruchomieniem ustaw te cztery wartości:

    Ustawienie Co wpisać
    FLASK_SECRET_KEY Losowy klucz o długości co najmniej 32 znaków. Rainy nie uruchomi się bez niego.
    MYSQL_PASSWORD Silne hasło dla użytkownika bazy danych Rainy.
    MYSQL_ROOT_PASSWORD Inne silne hasło dla użytkownika root w MySQL.
    MUSIC_LIBRARY_PATH Bezwzględna ścieżka do folderu z muzyką albo ./music dla pustej biblioteki.

    Aby wygenerować klucz sesji, uruchom python3 -c "import secrets; print(secrets.token_hex(32))" i wklej wynik po FLASK_SECRET_KEY=.

  3. Jeśli komputer nie ma karty NVIDIA GPU, usuń cały blok deploy: pod usługą app w compose.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.

  4. Zbuduj i uruchom stos:

    docker compose up --build -d
    
  5. 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 /music jako ścieżkę biblioteki. W tym miejscu w kontenerze pojawia się folder z MUSIC_LIBRARY_PATH.

  6. 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 w app.environment. Aby ustawić inną opcję RAINY_* w Dockerze, dodaj ją do tej listy w compose.yaml i ponownie uruchom docker 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 PATH albo w folderze bin projektu. Bez niego jako duplikaty liczą się tylko pliki identyczne co do bajtu.

Linux i macOS

  1. Sklonuj repozytorium i wejdź do folderu.
  2. Utwórz .env i ustaw backend bazy danych. Skopiuj szablon, a następnie otwórz .env:

    cp .env.example .env
    

    Odkomentuj RAINY_DB=sqlite. Bez tego aktywne wiersze MYSQL_* w szablonie wybiorą MySQL, a Rainy spróbuje połączyć się z serwerem bazy danych.

  3. Uruchom Rainy skryptem startowym. Tworzy on .venv, instaluje wymagania i zapisuje bezpieczny FLASK_SECRET_KEY w .env, jeśli wartość brakuje lub jest słaba:

    ./start.sh
    

    Aby użyć konkretnego interpretera, ustaw PYTHON=python3.12 ./start.sh.

  4. 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

  1. Sklonuj repozytorium i otwórz folder w Eksploratorze plików.
  2. Utwórz .env, kopiując .env.example, następnie odkomentuj RAINY_DB=sqlite i sam ustaw FLASK_SECRET_KEY. W przeciwieństwie do start.sh, plik start.bat nie generuje tego klucza. Użyj losowej wartości o długości co najmniej 32 znaków.
  3. Kliknij dwukrotnie start.bat albo uruchom go z wiersza poleceń. Tworzy on .venv, instaluje wymagania i uruchamia app.py.
  4. 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.

Powiązane