Raspberry Pi Music jukebox

Recommended boards:

  • Raspberry Pi 4 Model B

  • Raspberry Pi 3 Model B+

You will need:

Component Purpose
Raspberry Pi Main computer
MicroSD card (32GB+) Operating system
Power supply 5V 3A
Speakers Audio output
USB DAC or amplifier Better sound quality

Optional Upgrades

These make the jukebox much cooler:

  • Touchscreen display

  • Arcade buttons for song selection

  • Rotary knob for volume

  • LED lighting

  • Wooden jukebox-style case

  • Large USB drive for music storage

 Install the Jukebox Software

The easiest software for this project is Volumio.

It is designed specifically for DIY music streamers and jukeboxes.

Step 1 – Download Volumio

Download the image from:

https://volumio.com
Step 2:

Install Raspberry Pi Imager or balenaEtcher.

Flash the Volumio image to the SD card.

Steps:

  1. Insert SD card

  2. Open flashing software

  3. Select Volumio image

  4. Select SD card

  5. Flash

Insert the card into the Raspberry Pi.

4. First Boot

Power on the Raspberry Pi.

Wait about:

2–3 minutes

Volumio will automatically create a network interface.

5. Access the Jukebox Interface

From any device connected to the same network:

Open a browser and go to:

http://volumio.local

or

http://<raspberry-pi-ip>

You will see the Volumio music interface.

6. Add your Music Library

You can add music several ways.

Method 1 – USB drive

  1. Insert USB drive

  2. Volumio automatically scans it

  3. Music appears in library

Supported formats include:

  • MP3

  • FLAC

  • WAV

  • AAC

  • OGG

Method 2 – Network storage

You can mount:

  • NAS drives

  • Shared folders

  • External servers

Go to:

Settings → Sources

Add a network share.

Method 3 – Upload music

Some plugins allow direct uploads from the web interface.

7. Connect Speakers

Option 1 – HDMI audio

Connect the Pi to a TV or receiver.

Option 2 – 3.5mm headphone jack

Simple but average quality.

Option 3 – USB DAC (Best audio quality)

Use a USB audio adapter or DAC.

Common examples include:

  • AudioQuest DragonFly Black

  • HiFiBerry DAC+

These significantly improve sound quality.

8. Enable Internet Radio

Volumio includes thousands of stations.

Go to:

Browse → Web Radio

You can also manually add stream URLs.

9. Enable Spotify

Install the plugin:

Settings → Plugins → Spotify

This adds Spotify Connect.

Your jukebox will appear as a device in Spotify.

10. Make It a Real Jukebox

You can connect physical buttons to GPIO pins.

Example controls:

  • Next song

  • Previous song

  • Play / Pause

  • Volume

Python script example:

import RPi.GPIO as GPIO
import osGPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)

while True:
if GPIO.input(17) == False:
os.system(“mpc next”)

This lets you build arcade-style controls.

11. Add a Touchscreen

Add a display such as:

  • Raspberry Pi 7-inch Touchscreen Display

Mount it in a case and run the Volumio interface full screen.

This creates a self-contained jukebox interface.

12. Auto Start Music

You can configure playlists to start automatically.

In settings:

Playback → Startup Options

Example:

Play random music at startup

Perfect for parties or background music.

[mai mult...]

Wireless USB flash drive using Raspberry Pi

1. What this Project does

You will create a portable Wi-Fi storage device that:

  • Acts like a USB flash drive over Wi-Fi

  • Lets phones, laptops, or tablets connect wirelessly

  • Allows file upload/download

  • Can create its own Wi-Fi network

  • Runs from a power bank

Final result:

Phone / Laptop

Wi-Fi

Raspberry Pi

USB Flash Drive / SD Storage

2. Hardware Requirements

You need:

Core components

  • Raspberry Pi Zero W (best for portable)

  • MicroSD card (16–32GB recommended)

  • USB flash drive (optional for extra storage)

  • Micro USB OTG adapter

  • Power bank or USB power supply

Optional but useful

  • Case

  • Heat sinks

  • Small OLED screen for status

3. Install Raspberry Pi OS

Download Raspberry Pi OS and flash it.

Step 1 – Install Raspberry Pi Imager

Download:

Install Raspberry Pi Imager

Step 2 – Flash the SD card

Choose:

Raspberry Pi OS Lite

(Lite version is best for this project)

Configure before writing:

Enable:

  • SSH

  • Wi-Fi

  • Username/password

Insert the card into the Pi and boot.

4. Update the System

Connect via SSH:

ssh pi@raspberrypi.local

Update everything:

sudo apt update
sudo apt upgrade -y

5. Attach the USB Flash Drive

Insert your USB drive and check:

lsblk

Example output:

sda1 64G

Create mount point:

sudo mkdir /mnt/usb

Mount it:

sudo mount /dev/sda1 /mnt/usb

Make it permanent:

sudo nano /etc/fstab

Add:

/dev/sda1 /mnt/usb vfat defaults,nofail 0 0

Install Samba:

sudo apt install samba -y

Edit config:

sudo nano /etc/samba/smb.conf

Add at bottom:

[USB]
path = /mnt/usb
browseable = yes
writeable = yes
create mask = 0777
directory mask = 0777
public = yes
guest ok = yes

Restart Samba:

sudo systemctl restart smbd

7. Create a Wi-Fi Access Point

Install required tools:

sudo apt install hostapd dnsmasq -y

Stop services temporarily:

sudo systemctl stop hostapd
sudo systemctl stop dnsmasq

Edit:

sudo nano /etc/dhcpcd.conf

Add:

interface wlan0
static ip_address=192.168.4.1/24
nohook wpa_supplicant

Configure hostapd

Create config:

sudo nano /etc/hostapd/hostapd.conf

Add:

interface=wlan0
driver=nl80211
ssid=PiFlashDrive
hw_mode=g
channel=7
wmm_enabled=0
auth_algs=1
wpa=2
wpa_passphrase=raspberry123
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

Tell hostapd to use the config:

sudo nano /etc/default/hostapd

Change:

DAEMON_CONF=”/etc/hostapd/hostapd.conf”

Configure DHCP

Backup original:

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

Create new config:

sudo nano /etc/dnsmasq.conf

Add:

interface=wlan0
dhcp-range=192.168.4.10,192.168.4.50,255.255.255.0,24h

8. Enable Services

Start services:

sudo systemctl start hostapd
sudo systemctl start dnsmasq

Enable on boot:

sudo systemctl enable hostapd
sudo systemctl enable dnsmasq

9. Test the Wireless Flash Drive

  1. Power the Raspberry Pi

  2. Look for Wi-Fi network:

PiFlashDrive
  1. Connect using password:

raspberry123
  1. Access storage from:

Windows:

\\192.168.4.1

Mac/Linux:

smb://192.168.4.1

You now have a wireless USB flash drive.

10. Optional Improvements

Web file manager

Install FileBrowser for browser uploads.

Add battery monitoring

Useful for portable setups.

Enable internet sharing

So the Pi acts as Wi-Fi storage + internet router.

Add SSD storage

For large capacity wireless storage.

11. Powering the Device

Use:

  • 10,000mAh power bank

  • 5V 2A output

Runtime:

6–12 hours

depending on model.

12. Final Result

You now have a DIY wireless USB drive that:

  • Works with phones

  • Works with Windows / macOS / Linux

  • Requires no cables

  • Can hold hundreds of GB.

[mai mult...]

Tutorial de comenzi Linux env pentru începători

Comanda Linux env este utilizată pentru a afișa și gestiona variabilele de mediu într-o sesiune shell. Variabilele de mediu sunt valori dinamice care afectează procesele sau programele care rulează în shell, cum ar fi căile către fișierele executabile, setările specifice utilizatorului și comportamentul sistemului. Prin rularea comenzii env fără argumente, aceasta listează toate variabilele de mediu curente și valorile acestora.

În plus, env poate fi utilizat pentru a executa o comandă cu un mediu modificat prin setarea temporară sau suprascrierea anumitor variabile de mediu pe durata comenzii respective. Acest lucru este util pentru testarea sau rularea programelor într-un mediu specific fără a modifica configurația globală.

Dar înainte de a face asta, merită menționat faptul că toate comenzile și instrucțiunile din acest tutorial au fost testate pe Debian 12 și Ubuntu 24.04.

Comandă Linux env

Prin definiție, comanda env vă permite să rulați un program într-un mediu modificat. Sintaxa comenzii, așa cum este menționată pe pagina sa de manual, este următoarea:

env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]

Și iată ce spune pagina de manual despre mediu:

Setați fiecare NAME la VALUE în env și executați COMMAND.

Următoarele exemple în stil Întrebări și Răspunsuri ar trebui să vă ofere o idee mai bună despre cum funcționează această comandă:

Cum se schimbă temporar mediul folosind env?

Caracteristica cheie a programului env este capacitatea de a modifica temporar mediul unui proces. De exemplu, am creat un mic fișier executabil — denumit env — care afișează valoarea variabilei de mediu USER la execuție.

Iată rezultatul în scenariul normal:

Acum, ceea ce am făcut a fost să folosim comanda env pentru a schimba temporar valoarea variabilei de mediu USER de la „himanshu” la „HTF” pentru executabil/proces. Iată comanda pe care am folosit-o în acest caz:

env USER=HTF ./env

Și iată rezultatul produs în acest caz:

Cum se accesează toate variabilele de mediu folosind comanda env?

Mediul Bash, după cum probabil știți deja, constă din intrări VARNAME=VALUE. Pentru a accesa toate variabilele de mediu, precum și valorile asociate acestora, executați comanda env fără nicio opțiune.

env

Iată rezultatul comenzii de mai sus în cazul nostru:

Deci puteți vedea că executabilul a returnat noua valoare.

Notă: Așa cum sugerează sintaxa generică a instrumentului, puteți modifica valorile mai multor variabile de mediu și puteți face ca procesul să utilizeze aceste valori noi.

Cum se poate face ca un proces să ignore mediul existent folosind env?

Dacă doriți, puteți face ca un proces să ignore mediul existent/moștenit și să înceapă cu unul gol. Acest lucru se poate face folosind opțiunea -i sau –ignore-environment .

De exemplu:

Cum se face ca env să utilizeze NUL în loc de caracterul newline în ieșire?

În primul exemplu discutat mai sus, liniile de ieșire produse de env sunt separate prin linie nouă. Totuși, dacă doriți, puteți face ca env să utilizeze caracterul NUL ca separator. Această funcție poate fi accesată folosind opțiunea de linie de comandă –null.

env --nul

Mai jos este un exemplu de captură de ecran;

Cum pot afla eroarea pe baza stării de ieșire a comenzii env?

Comanda env produce următoarele coduri de ieșire: 0, 125, 126 și 127. Următoarele sunt descrierile erorilor asociate:

0   if no COMMAND is specified and the environment is output
125 if ‘env’ itself fails
126 if COMMAND is found but cannot be invoked
127 if COMMAND cannot be found

[mai mult...]

Cum se instalează Sysdig pentru a monitoriza încărcarea sistemului pe Ubuntu 24.04

Pentru sistemele de operare bazate pe Debian, cum ar fi Ubuntu și Debian, instalați Sysdig cu următoarea comandă:

apt install gnupg software-properties-common curl -y 
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash

Pentru sistemele de operare bazate pe RPM, cum ar fi AlmaLinux, Rocky Linux, CentOS, RHEL și Fedora, instalați Sysdig cu următoarea comandă:

rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public 
curl -s -o /etc/yum.repos.d/draios.repo https://s3.amazonaws.com/download.draios.com/stable/rpm/draios.repo 
dnf install sysdig -y

După instalarea Sysdig, verificați versiunea instalată de Sysdig folosind următoarea comandă:

sysdig --version

Veți obține următorul rezultat:

versiunea sysdig 1.61.10

Lucrul cu Sysdig

Puteți rula comanda csysdig pentru a afișa procesele care rulează, utilizarea CPU și utilizarea memoriei:

csysdig

Ar trebui să vedeți următorul ecran:

Acum apăsați F2 pentru a deschide celălalt meniu, așa cum se arată mai jos:

De aici, puteți apăsa tasta săgeată pentru a alege orice elemente doriți să monitorizați în panoul din stânga și apăsa Enter. De exemplu, selectați conexiunile și apăsați Enter. Ar trebui să vedeți toate conexiunile primite pe ecranul următor:

Pentru a vizualiza informații despre Procese și CPU, selectați Procese CPU și apăsați Enter. Ar trebui să vedeți următoarea pagină:

Dacă doriți să monitorizați toate conexiunile de rețea direct din interfața liniei de comandă, executați următoarea comandă:

sysdig -c netstat

Ar trebui să vedeți următorul ecran:

Puteți vedea jurnalul cererilor HTTP folosind următoarea comandă:

sysdig -c httplog

Ar trebui să vedeți toate cererile HTTP primite în următoarea ieșire:

2024-08-23 11:21:17.228051410 < metodă=GET url=69.87.220.62/ cod_răspuns=200 latență=1ms dimensiune=3138B
2024-08-23 11:21:23.139933688 < metodă=GET url=69.87.220.62/ cod_răspuns=200 latență=1ms dimensiune=3138B

Pentru a monitoriza procesul în funcție de utilizarea CPU-ului, executați următoarea comandă:

sysdig -c topprocs_cpu

Ar trebui să vedeți următorul ecran:

Rulați următoarea comandă pentru a vedea toate opțiunile disponibile cu comanda sysdig:

sysdig -cl

Ar trebui să vedeți următorul ecran:

Puteți folosi sysdig cu spy_users pentru a afișa activitatea interactivă a utilizatorilor.

sysdig -c utilizatori_spion

Ar trebui să vedeți următoarea ieșire:

13133 11:38:03 root) free -m
13133 11:38:22 root) df -h

 [mai mult...]