Musonic

Musonic Server · self-hostedMusonic Server · auto-hébergé

Install it on your server. Be free.Installez-le chez vous. Soyez libre.

One server for your whole music: your files, an online catalogue beside them, playlists from Spotify and Deezer, every device in sync, and a console to run it all. Your music never leaves your hardware. Un seul serveur pour toute votre musique : vos fichiers, un catalogue en ligne à côté, vos playlists Spotify et Deezer, tous vos appareils synchronisés, et une console pour tout gérer. Votre musique ne quitte jamais votre machine.

Docker or a single program · Linux, x86 and ARM · free for personal useDocker ou un seul programme · Linux, x86 et ARM · gratuit pour un usage personnel

Musonic Server console Musonic Server console

1What it doesCe qu'il fait

  • Your libraryVotre bibliothèque

    Scans your music folder (tags, covers, lyrics, several artists per song) in seconds, and watches it: a new file shows up on its own.Analyse votre dossier de musique (tags, pochettes, paroles, plusieurs artistes par titre) en quelques secondes, et le surveille : un nouveau fichier apparaît tout seul.

  • Every app works with itToutes les applis marchent avec

    The Musonic apps, and any Subsonic app such as Substreamer or Symfonium. Lower bit rates on mobile data thanks to ffmpeg.Les applis Musonic, et toute appli Subsonic comme Substreamer ou Symfonium. Débits réduits en données mobiles grâce à ffmpeg.

  • An online catalogueUn catalogue en ligne

    Search and browse beyond your library; like an online song or add it to a playlist, and it becomes a file in your library.Cherchez et parcourez au-delà de votre bibliothèque ; likez un titre en ligne ou ajoutez-le à une playlist, il devient un fichier de votre bibliothèque.

  • Your playlists from elsewhereVos playlists d'ailleurs

    Spotify and Deezer playlists imported from their address, by any account.Les playlists Spotify et Deezer importées depuis leur adresse, par n'importe quel compte.

  • Every device in syncTous les appareils synchronisés

    A like on your phone shows at once on your computer: likes, playlists, plays, queue, imports.Un like sur votre téléphone s'affiche aussitôt sur votre ordinateur : likes, playlists, écoutes, file d'attente, imports.

  • For your family and friendsPour votre famille et vos amis

    Accounts by invitation link, rights and quotas, a console to run everything. Written in Rust: fast, and light on memory.Des comptes par lien d'invitation, des droits et des quotas, une console pour tout gérer. Écrit en Rust : rapide, et léger en mémoire.

2Install with DockerInstaller avec Docker

You need a Linux machine (a home server, a Raspberry Pi, a VPS) with Docker, and your music in a folder.

Il vous faut une machine Linux (un serveur maison, un Raspberry Pi, un VPS) avec Docker, et votre musique dans un dossier.

  1. In the folder where your data will live, get compose.yml: curl -o compose.yml https://raw.githubusercontent.com/DoodzDev/Musonic/main/apps/server/compose.example.yml
  2. Set the path of your music folder, and the user owning it (user: "1000:1000").
  3. Start it: docker compose up -d. The server, ffmpeg and its console are downloaded and started.
  4. Put a reverse proxy with HTTPS in front (Caddy, nginx, a Cloudflare tunnel…): the server listens on 127.0.0.1:4533.
  1. Dans le dossier où vivront vos données, récupérez compose.yml : curl -o compose.yml https://raw.githubusercontent.com/DoodzDev/Musonic/main/apps/server/compose.example.yml
  2. Indiquez le chemin de votre dossier de musique, et l'utilisateur qui en est propriétaire (user: "1000:1000").
  3. Lancez : docker compose up -d. Le serveur, ffmpeg et sa console sont téléchargés et démarrés.
  4. Placez un reverse proxy en HTTPS devant (Caddy, nginx, un tunnel Cloudflare…) : le serveur écoute sur 127.0.0.1:4533.
services:
  musonic-server:
    image: ghcr.io/doodzdev/musonic-server:1
    restart: unless-stopped
    user: "1000:1000"
    ports:
      - "127.0.0.1:4533:4533"
    volumes:
      - ./data:/data              # database, caches, daily backups
      - /path/to/music:/music     # :ro if you do not want imports

Without Docker: download the program for Linux x86 or ARM from the releases (server-v…), it is a single program, its console next to it. Sans Docker : téléchargez le programme pour Linux x86 ou ARM dans les versions (server-v…), c'est un seul programme, avec sa console à côté. DetailsDétails

3First startPremier démarrage

  1. Create your administrator account: docker compose exec musonic-server musonic-server user add <name> --admin (it asks for a password).
  2. Open your server's address in a browser: the console opens. Sign in.
  3. Invite your family and friends from Accounts: each gets a link and chooses their own name and password.
  4. In the apps, enter your server's address and sign in.
  1. Créez votre compte administrateur : docker compose exec musonic-server musonic-server user add <nom> --admin (il demande un mot de passe).
  2. Ouvrez l'adresse de votre serveur dans un navigateur : la console s'ouvre. Connectez-vous.
  3. Invitez famille et amis depuis Comptes : chacun reçoit un lien et choisit lui-même son nom et son mot de passe.
  4. Dans les applis, entrez l'adresse de votre serveur et connectez-vous.

4Online catalogue and importsCatalogue en ligne et imports

Search shows your library and the online catalogue together (Deezer's public catalogue: songs, albums, artists, covers). Browsing it writes nothing. The moment you like an online song, add it to a playlist or like its album, it joins your library under one id, and is imported as a file in your music folder (Musonic/Artist/Album/), tagged and with its cover. Likes and playlists stay where they are.

La recherche montre ensemble votre bibliothèque et le catalogue en ligne (le catalogue public de Deezer : titres, albums, artistes, pochettes). Le parcourir n'écrit rien. Dès que vous likez un titre en ligne, l'ajoutez à une playlist ou likez son album, il entre dans votre bibliothèque sous un seul identifiant, et il est importé en fichier dans votre dossier de musique (Musonic/Artiste/Album/), tagué, avec sa pochette. Likes et playlists restent où ils sont.

  • Without anything else, online songs play as 30-second previews.
  • Full songs and imports come from audio providers plugged into the server, for instance another Subsonic server to relay audio from (documented interface: PROVIDERS.md).
  • Imports run in the background, retry on their own, and follow each account's rights and quotas. Quality: MP3 128, MP3 320 or FLAC.
  • Sans rien d'autre, les titres en ligne se lisent en extraits de 30 secondes.
  • Les titres complets et les imports viennent de fournisseurs audio branchés sur le serveur, par exemple un autre serveur Subsonic dont il relaie l'audio (interface documentée : PROVIDERS.md).
  • Les imports tournent en arrière-plan, réessaient seuls, et suivent les droits et quotas de chaque compte. Qualité : MP3 128, MP3 320 ou FLAC.

5Playlist importsImports de playlists

Any account pastes the address of a Spotify or Deezer playlist in Musonic Web and gets it as a Musonic playlist. Each song is looked for in the library first (never downloaded twice), then online; a report lists the uncertain songs and those not found. Pop playlists are found almost entirely; about 9 classical pieces in 10.

N'importe quel compte colle l'adresse d'une playlist Spotify ou Deezer dans Musonic Web et la retrouve en playlist Musonic. Chaque titre est cherché d'abord dans la bibliothèque (jamais téléchargé deux fois), puis en ligne ; un bilan liste les titres incertains et introuvables. Les playlists pop sont retrouvées presque entièrement ; environ 9 œuvres classiques sur 10.

How it works and the measured ratesFonctionnement et taux mesurés

6Real-time syncSynchro en temps réel

Every device signed in to an account is told at once what changed: a like, a playlist edited, a song played, the queue saved, an import finished. Your phone and your computer always show the same thing.

Chaque appareil connecté à un compte est prévenu aussitôt de ce qui change : un like, une playlist modifiée, un titre écouté, la file d'attente enregistrée, un import terminé. Votre téléphone et votre ordinateur montrent toujours la même chose.

Coming soon: Musonic Connect. See what plays on each of your devices and control it from another one: pause, skip, move the music from your phone to your computer.Bientôt : Musonic Connect. Voir ce qui joue sur chacun de vos appareils et le piloter depuis un autre : pause, titre suivant, passer la musique du téléphone à l'ordinateur.

8SettingsRéglages

Most settings change from the console. The others are environment variables:

La plupart des réglages se changent depuis la console. Les autres sont des variables d'environnement :

SettingRéglageVariableVariableDefaultPar défaut
Address it listens onAdresse d'écouteMUSONIC_BIND127.0.0.1:4533
Data folderDossier des donnéesMUSONIC_DATA_DIRdata
Music folderDossier de musiqueMUSONIC_MUSIC_DIR—
Online catalogueCatalogue en ligneMUSONIC_ONLINEtrue
Imports, their folder, their qualityImports, leur dossier, leur qualitéMUSONIC_IMPORT, …_IMPORT_DIR, …_IMPORT_QUALITYtrue, Musonic, mp3_320
Scan every … minutesScan toutes les … minutesMUSONIC_SCAN_INTERVAL_MINUTES60
Daily backups keptSauvegardes quotidiennes gardéesMUSONIC_BACKUP_DAYS14

Every settingTous les réglages

9Security and backupsSécurité et sauvegardes

  • Passwords are hashed (argon2); each device can get its own key, revoked in one click when a phone is lost.
  • Too many wrong passwords block an address for 15 minutes; the console shows it and can unblock it.
  • The older Subsonic sign-in (used by many apps) can be turned off for keys only.
  • The database is backed up every day; backups are listed and downloaded from the console.
  • Les mots de passe sont hachés (argon2) ; chaque appareil peut avoir sa propre clé, révoquée en un clic en cas de téléphone perdu.
  • Trop de mots de passe faux bloquent une adresse 15 minutes ; la console le montre et peut débloquer.
  • L'ancienne connexion Subsonic (utilisée par beaucoup d'applis) peut être coupée pour n'accepter que les clés.
  • La base est sauvegardée chaque jour ; les sauvegardes se listent et se téléchargent depuis la console.

The administration consoleLa console d'administration

10OverviewPrésentation

The console comes with the server, at its own address, in English and French. It is for administrators only: the apps stay exactly the same for everyone. Nothing to install, nothing to type in a terminal after the first account.

La console est livrée avec le serveur, à sa propre adresse, en français et en anglais. Elle est réservée aux administrateurs : les applis restent exactement les mêmes pour tout le monde. Rien à installer, plus rien à taper dans un terminal après le premier compte.

Click a screenshot to see it full screen.

Cliquez sur une capture pour la voir en plein écran.

Dashboard
Dashboard
Accounts and invitations
Accounts and invitations
Devices and security
Devices and security
Library
Library
Imports and providers
Imports and providers
Data
Data
Settings and maintenance
Settings and maintenance
Activity
Activity
Dashboard
Tableau de bord
Accounts and invitations
Comptes et invitations
Devices and security
Appareils et sécurité
Library
Bibliothèque
Imports and providers
Imports et fournisseurs
Data
Données
Settings and maintenance
Réglages et maintenance
Activity
Activité

11Dashboard and dataTableau de bord et données

  • A live bar on every page: network, who is listening, imports, CPU and memory, and alerts.
  • Alerts when something needs you: a provider no longer connected, imports given up, disk almost full, no backup lately, a new version out.
  • The library's figures, disk space (music, imports, database, backups), recent activity, who listens to what right now.
  • Data: traffic, CPU, memory and disk measured hour by hour, by day, week, month or year, and the month's upload against your host's limit.
  • Une barre en direct sur chaque page : réseau, qui écoute, imports, processeur et mémoire, et alertes.
  • Des alertes quand quelque chose demande votre attention : un fournisseur déconnecté, des imports abandonnés, un disque presque plein, pas de sauvegarde récente, une nouvelle version.
  • Les chiffres de la bibliothèque, la place disque (musique, imports, base, sauvegardes), l'activité récente, qui écoute quoi en ce moment.
  • Données : trafic, processeur, mémoire et disque mesurés heure par heure, par jour, semaine, mois ou année, et l'envoi du mois face à la limite de votre hébergeur.

12AccountsComptes

  • Invitation links: the person creates their own account, name and password. The administrator never sees a password.
  • Password reset links, used once, valid from a minute to a year.
  • Roles (administrator or user), suspension without deleting anything, sign out everywhere.
  • Rights and quotas per account: imports, online catalogue, downloads, public playlists, imports per day or month, space, highest bit rate. Everything allowed by default.
  • Liens d'invitation : la personne crée elle-même son compte, son nom et son mot de passe. L'administrateur ne voit jamais un mot de passe.
  • Liens de nouveau mot de passe, à usage unique, valables d'une minute à un an.
  • Rôles (administrateur ou utilisateur), suspension sans rien supprimer, déconnexion partout.
  • Droits et quotas par compte : imports, catalogue en ligne, téléchargements, playlists publiques, imports par jour ou par mois, place, débit maximal. Tout autorisé par défaut.

13Devices and securityAppareils et sécurité

Every device key of every account, with its last use, revoked in one click; the last sign-ins (who, which app, from where); the addresses blocked after wrong passwords, unblocked in one click; the older Subsonic sign-in on or off.

Toutes les clés d'appareils de tous les comptes, avec leur dernière utilisation, révoquées en un clic ; les dernières connexions (qui, quelle appli, d'où) ; les adresses bloquées après des mots de passe faux, débloquées en un clic ; l'ancienne connexion Subsonic activée ou non.

14Library and importsBibliothèque et imports

  • Library: quick or full scan, every song with its file, and the lists to look at: missing files, duplicates, songs without a cover, online songs without a file. A page per song (tags, files, likes, plays) and a button to listen to a file.
  • Imports: the queue (waiting, running, failed, done), retry or remove, the audio providers and their state; a provider's credential is changed here, checked before it replaces the old one, and never shown again.
  • Import settings: on or off, quality, online catalogue, 30-second previews.
  • Bibliothèque : scan rapide ou complet, chaque titre avec son fichier, et les listes à surveiller : fichiers manquants, doublons, titres sans pochette, titres en ligne sans fichier. Une fiche par titre (tags, fichiers, likes, écoutes) et un bouton pour écouter un fichier.
  • Imports : la file (en attente, en cours, en échec, faits), relancer ou retirer, les fournisseurs audio et leur état ; l'identifiant d'un fournisseur se change ici, vérifié avant de remplacer l'ancien, et jamais réaffiché.
  • Réglages des imports : activés ou non, qualité, catalogue en ligne, extraits de 30 secondes.

15Settings and maintenanceRéglages et maintenance

  • The server's settings, with a « Restart now » when one needs it; the page comes back on its own.
  • Backups: the list, one now, days kept, download.
  • Musonic Web installed on your server at /app in one click, and updated the same way.
  • The server's last log lines, live, filtered by level; empty the caches; check for updates.
  • Les réglages du serveur, avec un « Redémarrer maintenant » quand l'un d'eux le demande ; la page revient toute seule.
  • Sauvegardes : la liste, une maintenant, les jours gardés, le téléchargement.
  • Musonic Web installé sur votre serveur à /app en un clic, et mis à jour de la même façon.
  • Les dernières lignes des journaux du serveur, en direct, filtrées par niveau ; vider les caches ; vérifier les mises à jour.

16Activity and journalActivité et journal

Everything that happens, in plain sentences: sign-ins, accounts, imports, backups, settings changed. The administration journal shows what administrators did. Filter by kind and period, search, new lines arrive live. Its maximum size is up to you; the oldest lines go first.

Tout ce qui se passe, en phrases simples : connexions, comptes, imports, sauvegardes, réglages modifiés. Le journal d'administration montre ce que les administrateurs ont fait. Filtre par type et par période, recherche, nouvelles lignes en direct. Sa taille maximale est réglable ; les plus anciennes lignes partent en premier.

LicenseLicence

Musonic Server is free to use and adapt for personal, non-commercial purposes (PolyForm Noncommercial 1.0.0). Selling it, or a service built on it, is not allowed.

Musonic Server est libre d'utilisation et d'adaptation pour un usage personnel et non commercial (PolyForm Noncommercial 1.0.0). Le vendre, ou vendre un service construit dessus, est interdit.

What changedCe qui a changé · Source codeCode source