Auddly has built docker images. You can use docker compose to run all the required services.
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
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
To display artist pictures you need to sign up for Spotify Developer Account and create a new application https://developer.spotify.com/dashboard/login
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
Description | |
---|---|
GET /system/info |
Get music library details |
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 |
Description | |
---|---|
GET /search |
Search (query: q) |
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 |
Description | |
---|---|
GET /artists |
Get all artists (query: skip, limit) |
GET /artists/random |
Get random artists (query: limit) new |
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 |
Description | |
---|---|
GET /genres |
Get all genres |