
Subsonic
Personal music streaming server with universal app support
Subsonic is a web-based media server written in Java that runs on any operating system with Java support. It supports streaming to multiple clients simultaneously with any streamable media including MP3, AAC, OGG, and more. With extensive mobile app support, automatic transcoding, and offline sync capabilities, Subsonic provides a robust personal music streaming solution. QuickBox Pro installs Subsonic from official .deb packages with BellSoft Java 8, per-user systemd services, and auto-incremented ports.
Universal Music Streaming
Stream MP3, AAC, OGG, FLAC, and any format to web browser or mobile apps
On-the-Fly Transcoding
Automatic format conversion and bitrate adjustment for any device
Multi-User Management
Create accounts with individual libraries, quotas, and access permissions
Extensive App Support
Compatible with 50+ third-party apps for Android, iOS, and desktop platforms
Offline Sync
Download music to mobile devices for offline playback without streaming
Podcast & Internet Radio
Subscribe to podcasts and stream internet radio stations
Subsonic pioneered the Subsonic API, which has become the de facto standard for music streaming servers. Apps built for Subsonic work with Airsonic, Navidrome, and other compatible servers.
Installation
Install from the Dashboard
Open App Dashboard → Package Management (/dashboard?mode=packages), find Subsonic in the catalog (browse Media Servers or search), and click Install. The dashboard streams the install log live and Subsonic appears in your Application Control panel when it finishes. Reinstall, Update, and Remove are available from the same panel.
What you see and can manage is gated by your account: admins manage any user’s apps; regular users manage their own. For the full package flow see App Management.
Install and manage from the CLI
The CLI runs the same install and is suited to automation and scripting:
qb install subsonic -u username
qb reinstall subsonic -u username
qb update subsonic -u username
qb remove subsonic -u username
qb help subsonicFull flag reference: CLI Reference.
QuickBox automatically assigns ports per user:
- HTTP port: Starting at
4040(auto-incremented per user) - HTTPS port: Starting at
4141(auto-incremented per user)
Find your assigned ports in the QuickBox dashboard or in /home/username/.config/Subsonic/subsonic.properties.
Subsonic requires BellSoft Java 8 to run. QuickBox Pro automatically installs BellSoft Java 8 if not already present on your system.
Accessing Subsonic
After installation, access Subsonic at:
https://your-server-ip/username/subsonicSubsonic is automatically integrated into your QuickBox dashboard. Find it in the Service Control panel with port and status information. Click the LAUNCH icon to open the web interface.
Default Credentials:
- Username:
admin - Password:
admin
Important: Change the default admin password immediately after first login for security. Navigate to Settings → Users and update the password.
Initial Configuration
1. Secure Admin Account
On first access, secure your installation:
- Login with default credentials (
admin/admin) - Navigate to Settings → Users
- Click Edit on the admin user
- Change password to a strong, unique password
- Update email address for password recovery
- Click Save
2. Add Music Folders
Configure your music libraries:
- Go to Settings → Media folders
- Default folder is
/home/username/.config/Subsonic/Music - To add additional folders:
- Click Add
- Enter folder path (e.g.,
/home/username/media/music) - Set folder name for display
- Click Save
- Click Scan media folders now to index your library
3. Configure Transcoding
Optimize streaming for different devices:
- Navigate to Settings → Transcoding
- Enable transcoding profiles:
- Max bitrate - Maximum streaming quality
- Medium bitrate - Balanced quality (default 128 kbps)
- Low bitrate - Mobile/low bandwidth (default 64 kbps)
- Configure transcoding command (FFmpeg-based)
- Test transcoding with different file formats
- Save settings
Service Management
Subsonic runs as a per-user systemd service.
systemctl status subsonic@username # Check status
systemctl restart subsonic@username # Restart service
journalctl -u subsonic@username -f # View live logs
systemctl enable subsonic@username # Start on boot (already enabled)
systemctl disable subsonic@username # Prevent auto-startTroubleshooting
Subsonic Won’t Start
journalctl -u subsonic@username -fCheck Java installation:
/usr/lib/jvm/bellsoft-java8-amd64/bin/java -version
# Should show Java 8
# Verify Java alternative
update-alternatives --list java
# If Java 8 not found, reinstall:
qb reinstall subsonic -u usernameMusic Not Appearing in Library
Symptoms
- Added music folder but no tracks showing
- Library scan completed but library empty
- New music not detected after adding files
- Album art or metadata missing
Resolution
- Verify folder path exists: ls -la /home/username/media/music
- Check file permissions - Subsonic needs read access
- Trigger manual scan in Settings → Media folders → Scan now
- Check logs: journalctl -u subsonic@username -f | grep -i scan
- Verify supported formats (MP3, FLAC, OGG, M4A, AAC, WMA, WAV)
Transcoding Not Working
# Verify FFmpeg is installed
ffmpeg -version
# Check transcoding settings
# Settings → Transcoding → Enable transcoding
# Verify transcoding command is correct
# Settings → Transcoding → View/edit transcoding commands
# Test transcoding manually
journalctl -u subsonic@username -f | grep -i transcodeCannot Login After Password Change
# Stop Subsonic service
systemctl stop subsonic@username
# Reset admin password by editing database
# WARNING: Advanced users only
nano /home/username/.config/Subsonic/db/subsonic.script
# Or reinstall (preserves library but resets password):
qb reinstall subsonic -u usernameMobile App Cannot Connect
# Verify Subsonic is running
systemctl status subsonic@username
# Check nginx reverse proxy
sudo nginx -t
sudo systemctl reload nginx
# Verify URL format in mobile app:
# Server: https://your-server-ip/username/subsonic
# Username: Your Subsonic username
# Password: Your Subsonic password
# For API-based apps, use base path:
# Server: https://your-server-ip/username/subsonic/rest
# Test access from browser first
curl -I https://your-server-ip/username/subsonicHigh CPU Usage During Transcoding
# Limit concurrent transcoding streams
# Settings → Advanced → Maximum number of concurrent streams
# Reduce transcoding quality
# Settings → Transcoding → Lower bitrate limits
# Check active transcoding sessions
# Players tab shows current streams with bitrate info
# Monitor system resources
top -u usernameBest Practices
Do
- Organize music with proper ID3 tags and folder structure (Artist/Album/Track)
- Change default admin password immediately after installation
- Set user quotas to prevent excessive storage usage
- Configure transcoding profiles based on common device types
- Enable automatic library scans weekly for new music detection
- Create separate user accounts for family members with access controls
- Regularly update Subsonic via qb update subsonic for fixes and features
- Backup /home/username/.config/Subsonic/db/ directory for library metadata
Don't
- Don't delete /home/username/.config/Subsonic directory—contains library database
- Don't use special characters in folder paths that confuse the database
- Don't share admin account credentials—create separate user accounts instead
- Don't manually edit database files while Subsonic is running
- Don't enable all transcoding profiles simultaneously—increases CPU load
- Don't ignore high CPU usage—limit concurrent streams or disable transcoding
- Don't forget to set folder permissions—Subsonic needs read access to music files
- Don't store music on the same partition as OS without sufficient space
Related Applications
Additional Resources
Join the Community
Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.