poniedziałek, 22 grudnia 2025

Lyrion Music Server: plugin Youtube, zdalne sterowanie

 Nawiązując do poprzedniego posta.

YT-dlp url extractor ustawiamy na yt-dlpAPI keyClient ID i Client Secret trzeba sobie ustawić według instrukcji dostarczanej przez panel administracyjny. Do kompletu należałoby włączyć YouTube Data API v3 w ustawieniach projektu aplikacja w Google Cloud.


Client Secret, inaczej Secret Key, przy tworzeniu musimy od razu sobie skopiować i zapisać w bezpiecznym miejscu bo później - według komunikatu który mi się wyświetlił - nie będzie możliwości ponownego wyświetlenia.


Oraz wcześniej wspomniany YouTube Data API v3:


Mając działającego Youtube'a, bibliotekę skompletowanej muzyki i dostęp do innych serwisów streamingowych (z których na tą chwilę nie korzystam) mamy tanie radio własnego "pomysłu".

Serwer możemy między innymi kontrolować z poziomu interfejsu webowego lub z poziomu Androida za pomocą aplikacji Squeezer.


Jest pilot, jest YT, jest biblioteka, jest wszystko :D

niedziela, 21 grudnia 2025

Instalacja i konfiguracja Lyrion Music Server na przykładzie Debiana

Całkiem przez przypadek znalazłem ostatnio Lyrion Music Server. Jest to serwer muzyki z masą różnych opcji i dodatków. Okazało się, że instalacja jest cholernie prosta, soft bardzo użyteczny a i jak ktoś ma stary sprzęt grający (tudzież wzmacniacz, głośniki, cokolwiek innego) to wystarczy zainwestować np w jakiś mały komputerek (terminal, mini pc, raspberry pi, cokolwiek podobnego) i mamy na czym słuchać :D

https://lyrion.org/

Poza instalacją Debiana wystarczy zainstalować paczkę deb z powyższej strony (najlepiej z wykorzystaniem gdebi to i dociągnie zależności) oraz dodatkowo wymagany będzie poniższy odtwarzacz:

https://packages.debian.org/trixie/squeezelite

Dla stable instalujemy...:

apt install squeezelite

Pakiet w repo dostępny jest od wydania Debiana Bullseye do Unstable (na 22.12.2025).

Jako że docelowo chciałem mieć możliwość odtwarzania muzyki zgranej z płyt do katalogu domowego docelowego użyszkodnika, to musiałem trochę pokombinować. Serwer tworzy użytkownika squeezeboxserver, więc testowo dodałem go do następujących grup:

gpasswd -a squeezeboxserver users

gpasswd -a squeezeboxserver uzyszkodnik

Uprawnienia dla katalogu domowego:

chmod -R 755 /home/uzyszkodnik

Pozwoli nam to na dostęp do muzyki. Dla list odtwarzania zrobiłem osobny katalog m3u i dla niego inne uprawnienia:

chmod -R 777 /home/uzyszkodnik/m3u

Dodatkowo, w opcjach serwera:


No i to by było na tyle. Reszta konfiguracji odbywa się poprzez panel administracyjny. Dostęp można zahasłować - panel Zaawansowane i Zabezpieczenia.



Konfiguracja transmission-daemon na przykładzie Debiana Stable

Kilka tygodni temu potrzebowałem skonfigurować klienta Transmission w trybie systemowej usługi (tzw demona). Oto bardzo krótki poradnik na przykładzie Debiana Stable (wersja 13 w momencie pisania). U mnie usługa działa na użytkowniku na którym docelowo operuję.

Najpierw instalujemy:

apt install transmission-cli transmission-common transmission-daemon

Usługa po wystartowaniu ładuje sobie konfig i w trakcie wyłączania np systemu nadpisuje wcześniej zapamiętaną konfigurację. Niweluje nam to wprowadzone w między czasie zmiany także jeżeli po powyższej instalacji, o ile usługa sama z siebie wystartuje, wyłączamy:

systemctl stop transmission-daemon.service

Następnie musimy utworzyć następujący plik (katalog, jeśli nie istniejemy, również należy utworzyć)...:

nano /etc/systemd/system/transmission-daemon.service.d/user.conf

... o następującej zawartości:

[Service]

User=

User=xxx

Group=xxx

Naszego użytkownika, w omawianym przypadku xxx, dodajemy do odpowiedniej grupy:
gpasswd -a xxx debian-transmission
W katalogu domowym tworzymy katalog:
mkdir .config/transmission-daemon
I z katalogu plik z ustawieniami:
cp /etc/transmission-daemon/settings.json .config/transmission-daemon/
Zawartość /etc/transmission-daemon profilaktycznie usuwamy (z poziomu roota):
rm -R /etc/transmission-daemon/*
W pliku konfiguracyjnym .config/transmission-daemon/settings.json znajdujemy i zmieniamy następujące linie tak, żeby ściągnięte materiały były np w naszym katalogu domowym:
    "download-dir": "/home/xxx/Pobrane",
    "incomplete-dir": "/home/xxx/Pobrane",
Hasło znajduje się w poniższej linijce...:
    "rpc-password": "jakies-haslo",
Hasło wpisujemy jakie chcemy, transmission-daemon na swój sposób je przetworzy dając wynik w - na pozór - losowych znakach w pliku wyżej (zakładam, że dlatego wczytuje i nadpisuje konfigurację uniemożliwiając dokonanie zmian w trakcie działania).

Teraz wykonujemy z poziomu roota następujące dwie komendy:
systemctl daemon-reload ; systemctl start transmission-daemon.service
I to by było na tyle. Pisane z pamięci, mam nadzieję że się nie pomyliłem gdzieś po drodze :D

niedziela, 14 września 2025

Server VNC z poziomu ekranu logowania - GNU/Linux Debian

Od jakiegoś czasu zachodziła potrzeba uruchomienia serwera vnc na kilku maszynach. Nie zawsze jest czas żeby biegać od ekranu do ekranu, nawet jeżeli są to jednostki do testów itp.


Naskrobałem (no dobra, podobne rozwiązanie można znaleźć...) usługę systemową (unit w systemd pod Debianem 13). Tworzymy plik /etc/systemd/system/x11vnc.service o następującej zawartości:


[Unit]

Description=x11vnc

After=display-manager.service network.target syslog.target

 

[Service]

Type=forking

ExecStart=/usr/bin/x11vnc -forever -display :0 -auth guess -rfbauth plik.z.haslem

ExecStop=/usr/bin/killall x11vnc

Restart=on-failure

 

[Install]

WantedBy=multi-user.target


Tworzymy plik.z.haslem (najwygodniej w katalogu /etc lub ewentualnie /opt):


x11vnc -storepasswd haslo plik.z.haslem


Następnie, oczywiście z uprawnieniami roota:


systemctl daemon-reload

systemctl enable x11vnc.service

systemctl start x11vnc.service

 

I to było na tyle.

niedziela, 13 lipca 2025

Pierwsza stacja zasilania niskiego napięcia na wyjazdy pod namiot

.... czyli o tym jak nie tworzyć skrzynek ;)

Wykorzystane elementy:
- skrzynka narzędziowa
- dławiki kablowe PG7
- akumulator 18Ah
- regulator mppt
- panel fotowoltaiczny
- 2 łączniki cieselskie
- złącza hermetyczne ip68
- blok rozdzielczy do 'spięcia' okablowania
- bezpiecznik nadprądowy wykorzystany jako wyłącznik
- podstawa bezpiecznikowa z wkładką 10x38 (zastosowana wkładka 16A ale powinno być 10A)

poniedziałek, 12 maja 2025

iwlwifi - wyłączenie trybu oszczędzania energii powersave

 Cześć!


Pokrótce. Na wifi6 Intela (AX200) sieć po dłuższym czasie zaczynała "ścinać" i pracować niestabilnie. Pomagało rozłączenie i połączenie na nowo.

Szczegóły znajdują się w tym (wątku)

Używam Network Managera i u mnie zadziałały dwie metody.


Pierwsza metoda jest dla NM. Robimy taki skrypcik (nazwa i zapis w pliku *.sh dowolnie):

wifi=`nmcli connection show --active | grep wifi | awk '{print $1}'`

sudo nmcli connection modify $wifi 802-11-wireless.powersave disable

Niestety składnia wiersza poleceń nmcli wymusza każdorazowe wykonanie skryptu po zmianie sieci więc trzeba zrobić to manualnie. Można wrzucić to też do cron'a lub napisać własną usługę żeby skrypt sprawdzał (w dodatkowej linijce) czy powersave jest włączony, jeśli tak to go wyłączamy jak wyżej i to wszystko.


Druga metoda jest bardziej pewna bo powersave jest wyłączony na poziomie "kernela" i jest to zrobione w trakcie uruchamiania się systemu. W swoim bootloaderze dopisujemy takie cudo jako opcję kernela:

iwlwifi.power_save=0

Dla gruba domyślnie będzie to plik /etc/default/grub i następująca linijka:

GRUB_CMDLINE_LINUX_DEFAULT="quiet iwlwifi.power_save=0"


Trzecią metodą, której nie sprawdzałem ale powinna zadziałać, jest utworzenie pliku /etc/modprobe.d/iwlwifi.conf z poniższą zawartością:

options iwlwifi power_save=0

I tyle.