Coder Social home page Coder Social logo

node9909 / auddly-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wellenline/auddly-server

0.0 0.0 0.0 66.8 MB

Simple self-hosted music streaming server

Home Page: https://auddly.app

License: MIT License

JavaScript 0.10% TypeScript 99.51% Dockerfile 0.39%

auddly-server's Introduction

Auddly Music Server

Discord

Getting Started

Auddly has built docker images. You can use docker compose to run all the required services.

Using Docker-Compose

version: "3"
services:
  app:
    container_name: auddly-server
    restart: always
    build: 
      context: https://github.com/Wellenline/auddly-server.git
    environment:
      - MONGO_URL=mongodb://auddly:SUPER_SECRET_PASSWORD@mongodb/auddly?authSource=admin
      - MUSIC_PATH=/music
      - CACHE_PATH=/cache
      - SPOTIFY_ID= # YOUR SPOTIFY ID
      - SPOTIFY_SECRET= # YOUR SPOTIFY SECRET
      - LAST_FM_API_KEY=YOUR_LAST_FM_CREDENTIALS
      - LAST_FM_API_SECRET=YOUR_LAST_FM_CREDENTIALS
      - LAST_FM_USERNAME=YOUR_LAST_FM_CREDENTIALS
      - LAST_FM_PASSWORD=YOUR_LAST_FM_CREDENTIALS
      - PORT=5000
      - HOST=http://127.0.0.1:5000
	  - ADMIN_EMAIL=YOUR_ADMIN_EMAIL
	  - ADMIN_PASSWORD=YOUR_ADMIN_PASSWORD
	  - JWT_SECRET=YOUR_JWT_SECRET
    volumes:
      - ./CHANGE_THIS_TO_YOUR_MUSIC_PATH:/music # Mount your music inside docker
      - ./cache:/cache # Cache to store album art and transcoded audio
    ports:
      - 5000:5000
    links:
      - mongodb
    depends_on:
      - mongodb
  mongodb:
    image: mongo:latest
    container_name: "auddly-mongo"
    environment:
      - MONGO_DATA_DIR=/data
      - MONGO_LOG_DIR=/dev/null
      - MONGO_INITDB_ROOT_USERNAME=auddly
      - MONGO_INITDB_ROOT_PASSWORD=SUPER_SECRET_PASSWORD # Replace this
    volumes:
      - ./data/mongo:/data
    ports:
      - 27018:27017
    command: mongod --auth --logpath=/dev/null
docker-compose up -d

Building From Source

You'll need NPM and MongoDB installed before continuing.

Clone the repo:

git clone https://github.com/wellenline/auddly-server.git
cd auddly-server

Initialize the build using NPM:

npm i
npm run build
npm start

Sample .env file:

MONGO_URL=YOUR_MONGO_DB
MUSIC_PATH=PATH_TO_YOUR_MUSIC
CACHE_PATH=./cache
SPOTIFY_ID=YOUR_SPOTIFY_ID
SPOTIFY_SECRET=YOUR_SPOTIFY_SECRET
LAST_FM_API_KEY=YOUR_LAST_FM_CREDENTIALS
LAST_FM_API_SECRET=YOUR_LAST_FM_CREDENTIALS
LAST_FM_USERNAME=YOUR_LAST_FM_CREDENTIALS
LAST_FM_PASSWORD=YOUR_LAST_FM_CREDENTIALS
ADMIN_EMAIL=YOUR_ADMIN_EMAIL
ADMIN_PASSWORD=YOUR_ADMIN_PASSWORD
JWT_SECRET=YOUR_JWT_SECRET
PORT=5000
HOST=http://127.0.0.1:5000

Artist Pictures (from Spotify)

To display artist pictures you need to sign up for Spotify Developer Account and create a new application https://developer.spotify.com/dashboard/login

Artist Bio, similar artists, tags & scrobble (from Lastfm)

To display artist bio, get similar artists, tags and scrobble your music you need to create a new Lastfm application https://www.last.fm/api/account/create

API

System

Description
GET /system/info Get music library details

Tracks

Description
GET /tracks All tracks (query: skip, limit, genre, popular, liked, artist, album)
GET /tracks/play/:id Stream audio
GET /tracks/like/:id Toggle track favourite
GET /tracks/random Get random tracks (query: limit) new

Search

Description
GET /search Search (query: q)

Albums

Description
GET /albums Get all albums (query: skip, limit, artist)
GET /albums/:if Get all album
GET /albums/random Get random albums (query: limit) new
GET /albums/art/:id Get Album art

Artists

Description
GET /artists Get all artists (query: skip, limit)
GET /artists/random Get random artists (query: limit) new

Playlists ()

Description
GET /playlists Get all playlists (query: skip, limit)
POST /playlists Create a new playlist { name: string, picture?: string }
POST /playlists/:id Add track to playlist { track: number }
PUT /playlists/:id Update playlist { name: string, tracks: [] }
DELETE /playlists/:id Delete playlist
DELETE /playlists/:id/:track Delete track from playlist

Genres

Description
GET /genres Get all genres

auddly-server's People

Contributors

alex-phillips avatar cformal avatar dependabot[bot] avatar mihkelbaranov avatar wolveix avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.