No description
Find a file
2026-03-20 21:30:01 +07:00
.github/workflows Deploy: Use GitHub Actions to push to Forgejo Registry 2026-02-07 22:46:19 +07:00
.tools Deploy: Add Dockerfile and static file serving 2026-02-07 22:27:15 +07:00
backend-rust Fix Rust edition for Docker build compatibility 2026-03-20 21:26:19 +07:00
frontend-vite Migrate from Go to Rust backend, add auto-refresh, fix playback issues 2026-03-20 21:21:44 +07:00
scripts Resolve conflicts: keep Rust backend version 2026-03-20 21:22:45 +07:00
.dockerignore Fix Rust edition for Docker build compatibility 2026-03-20 21:26:19 +07:00
.gitignore Resolve conflicts: keep Rust backend version 2026-03-20 21:22:45 +07:00
deploy_commands.sh Update: Mobile UX, Show All, Infinite Scroll & New Categories 2026-01-01 11:12:21 +07:00
docker-compose.yml Fix docker-compose.yml merge conflict 2026-03-20 21:30:01 +07:00
DOCKER_README.md Initial commit: Spotify Clone with Audiophile specs and Synology support 2025-12-17 11:18:36 +07:00
Dockerfile Fix docker-compose.yml merge conflict 2026-03-20 21:30:01 +07:00
README.md Migrate from Go to Rust backend, add auto-refresh, fix playback issues 2026-03-20 21:21:44 +07:00
README_MIGRATION.md Deploy: Add Dockerfile and static file serving 2026-02-07 22:27:15 +07:00

Spotify Clone 🎵

A fully functional Spotify-like web player built with React (Vite), Rust (Axum), and TailwindCSS. Features include real-time lyrics, custom playlists, and YouTube Music integration.


🚀 Quick Start (Docker)

Option 1: Pull from Forgejo Registry

docker run -p 3110:8080 git.khoavo.myds.me/vndangkhoa/spotify-clone:v3

Open http://localhost:3110.

Option 2: Build Locally

docker build -t spotify-clone:v3 .
docker run -p 3110:8080 spotify-clone:v3

🐳 Docker Deployment

Image Details

  • Registry: git.khoavo.myds.me/vndangkhoa/spotify-clone
  • Tag: v3
  • Architecture: linux/amd64
  • Ports:
    • 8080 (Backend API)

docker-compose.yml

services:
  spotify-clone:
    image: git.khoavo.myds.me/vndangkhoa/spotify-clone:v3
    container_name: spotify-clone
    restart: unless-stopped
    ports:
      - "3110:8080"
    environment:
      - PORT=8080
    volumes:
      - ./data:/tmp/spotify-clone-downloads
      - ./cache:/tmp/spotify-clone-cache
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

🖥️ Synology NAS Deployment (Container Manager)

Method A: Using Container Manager UI

  1. Open Container Manager (or Docker on older DSM).
  2. Go to RegistryAdd → Enter:
    • Registry: git.khoavo.myds.me
  3. Search for spotify-clone and download the v3 tag.
  4. Go to Image → Select the image → Run.
  5. Configure:
    • Container Name: spotify-clone
    • Network: Bridge
    • Port Settings: Local Port 3110 → Container Port 8080
    • Volume Settings:
      • Create folder /docker/spotify-clone/data/tmp/spotify-clone-downloads
      • Create folder /docker/spotify-clone/cache/tmp/spotify-clone-cache
  6. Click Run.

Method B: Using Docker Compose

  1. Create folder: /volume1/docker/spotify-clone
  2. Save the docker-compose.yml above to that folder.
  3. Open Container Manager → ProjectCreate.
  4. Select the folder path.
  5. The container will start automatically.
  6. Access at http://YOUR_NAS_IP:3110

🔄 Auto-Refresh

The backend automatically fetches trending content from YouTube Music every 5 minutes. No additional setup required.


🛠️ Local Development

Prerequisites

  • Node.js 20+
  • Rust 1.75+
  • Python 3.11+
  • ffmpeg

Backend (Rust)

cd backend-rust
cargo run

Frontend

cd frontend-vite
npm install
npm run dev

Features

  • YouTube Music Integration: Search and play from YouTube Music
  • Trending Auto-Fetch: 15+ categories updated every 5 minutes
  • Real-Time Lyrics: Sync lyrics from multiple sources
  • Custom Playlists: Create, save, and manage playlists (IndexedDB)
  • PWA Support: Works offline with cached content
  • Responsive Design: Mobile-first with dark theme

📝 License

MIT License