> [!important] > we are currently working on turning monochrome into a **legal, bring your own music** app. please be patient with us in the time being.
An open-source, privacy-respecting, ad-free music app.
Website - Donate - Features - Usage - Self-Hosting - Contributing
--- ## What is Monochrome? **Monochrome** is an open-source, privacy-respecting, ad-free [TIDAL](https://tidal.com) web UI, built on top of Hi-Fi. It provides a beautiful, minimalist interface for streaming high-quality music without the clutter of traditional streaming platforms. [](https://monochrome.tf/album/90502209) ## [](https://monochrome.tf/album/413189044) ## Features ### Audio Quality - High-quality High-Res/lossless audio streaming - Support for local music files - API caching for improved performance ### Interface - Dark, minimalist interface optimized for focus - Animated Album Covers For Supported Albums - High-quality Music Videos - Customizable themes & Community Theme Store - Accurate and unique audio visualizer - Offline-capable Progressive Web App (PWA) - Media Session API integration for system controls ### Library & Organization - Recently Played tracking for easy history access - Comprehensive Personal Library for favorites - Queue management with shuffle and repeat modes - Native Podcast support & organization - Playlist import from other platforms - Public playlists for social sharing - Smart recommendations for new songs, albums & artists - Infinite Recommendation Radio - Explore Page (Hot & New) for discovering newly added music and whats trending overall or within each genre ### Lyrics & Metadata - Lyrics support with karaoke mode - Genius integration for lyrics - Track downloads with automatic metadata embedding ### Integrations - Account system for cross-device syncing - Customizable & Public Profiles - Real-time Listening Parties for synced playback with friends - Last.fm and ListenBrainz integration for scrobbling - OAuth support (Google, Discord, GitHub, Spotify) - Unreleased music from [ArtistGrid](https://artistgrid.cx) - Dynamic Discord Embeds - Artist Biography + Social Links for learning more about your favorite artists - Multiple API instance support with failover ### Power User Features - Keyboard shortcuts & Command Palette (CTRL+K) for power users --- ## Quick Start ### Live Instance Our Recommended way to use monochrome is through our official instance: **[monochrome.tf](https://monochrome.tf)** / **[monochrome.samidy.com](https://monochrome.samidy.com)** For alternative instances, check [INSTANCES.md](INSTANCES.md). --- ## Self-Hosting NOTE: Accounts will not work on self-hosted instances. Our Appwrite authentication system only allows authorized domains. We had to heavily customize the authentication system and write several custom scripts to support features like SMTP and Google OAuth (which are currently bugged in Appwrite). Because of this, we can no longer provide a self-hostable accounts system. ### Option 1: Docker (Recommended) ```bash git clone https://github.com/monochrome-music/monochrome.git cd monochrome/docker cp .env.example .env # or copy from .env.local docker compose up -d ``` Visit `http://localhost:3000` --- ### Synology NAS Setup This guide covers running Monochrome on a Synology NAS using Docker. #### Prerequisites - Docker Package installed on your Synology - SSH access to your NAS (optional, for troubleshooting) #### Step 1: Prepare Directories 1. Create a shared folder for Monochrome (e.g., `docker/monochrome`) 2. Upload the project files to this folder, or clone directly via SSH: ```bash cd /volume1/docker/monochrome git clone https://github.com/monochrome-music/monochrome.git . ``` #### Step 2: Configure Environment 1. Navigate to the `docker` folder 2. Copy the `.env` file (or create from `.env.local`): ```bash cd docker cp .env.local .env ``` 3. Edit `.env` with your settings: ```bash # Port for the web interface MONOCHROME_PORT=3000 # Enable authentication (set to true to require login) AUTH_ENABLED=false # Secret key - generate with: openssl rand -base64 32 AUTH_SECRET=your-random-secret-key-here # PocketBase URL (internal Docker network) POCKETBASE_URL=http://pocketbase:8090 # Session duration (7 days in milliseconds) SESSION_MAX_AGE=604800000 # PocketBase Admin credentials PB_ADMIN_EMAIL=admin@monochrome.local PB_ADMIN_PASSWORD=your-secure-password TZ=Asia/Ho_Chi_Minh # Adjust to your timezone POCKETBASE_PORT=8090 ``` #### Step 3: Start the Container Using SSH or the Docker UI: ```bash cd /volume1/docker/monochrome/docker docker compose up -d ``` Or in Docker Desktop / Container Manager: 1. Navigate to your project folder 2. Select `docker-compose.yml` 3. Click "Run" #### Step 4: Access the Application - **Local:** `http://Made with ❤️ by the Monochrome team
## Star History