| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- 'use strict';
 
- process.env.NODE_CONFIG_DIR = `${__dirname}/config`;
 
- const async = require('async');
 
- const db = require('./logic/db');
 
- const app = require('./logic/app');
 
- const io = require('./logic/io');
 
- const stations = require('./logic/stations');
 
- const songs = require('./logic/songs');
 
- const cache = require('./logic/cache');
 
- const notifications = require('./logic/notifications');
 
- const config = require('config');
 
- async.waterfall([
 
- 	// setup our Redis cache
 
- 	(next) => {
 
- 		cache.init(config.get('redis').url, () => {
 
- 			// load some test stations into the cache
 
- 			/*async.waterfall([
 
- 				(next) => cache.hset('stations', 'edm', cache.schemas.station({
 
- 					name: 'edm',
 
- 					genres: ['edm'],
 
- 					type: 'official',
 
- 					displayName: 'EDM',
 
- 					description: 'EDM Music',
 
- 					playlist: [
 
- 						'gCYcHz2k5x0'
 
- 					],
 
- 					currentSong: {
 
- 						id: 'gCYcHz2k5x0',
 
- 						title: 'Title',
 
- 						artists: ['Artist1'],
 
- 						genres: ['edm', 'pop'],
 
- 						thumbnail: 'test',
 
- 						duration: 100,
 
- 						skipDuration: 10,
 
- 						likes: 0,
 
- 						dislikes: 0
 
- 					}
 
- 				}), next),
 
- 				(next) => cache.hset('stations', 'chill', cache.schemas.station({
 
- 					name: 'chill',
 
- 					genres: ['chill'],
 
- 					type: 'official',
 
- 					displayName: 'Chill',
 
- 					description: 'Chill Music',
 
- 					playlist: [
 
- 						'gCYcHz2k5x0'
 
- 					]
 
- 				}), next),
 
- 			], next);*/
 
- 			next();
 
- 		});
 
- 	},
 
- 	// setup our MongoDB database
 
- 	(next) => db.init(config.get("mongo").url, next),
 
- 	// setup the express server (not used right now, but may be used for OAuth stuff later, or for an API)
 
- 	(next) => app.init(next),
 
- 	// setup the socket.io server (all client / server communication is done over this)
 
- 	(next) => io.init(next),
 
- 	// setup the notifications
 
- 	(next) => notifications.init(config.get('redis').url, next),
 
- 	// setup the stations
 
- 	(next) => stations.init(next),
 
- 	// setup the songs
 
- 	(next) => songs.init(next),
 
- 	// setup the frontend for local setups
 
- 	(next) => {
 
- 		if (!config.get("isDocker")) {
 
- 			const express = require('express');
 
- 			const app = express();
 
- 			const server = app.listen(8080);
 
- 			app.use(express.static(__dirname + "/../frontend/build/"));
 
- 		}
 
- 		next();
 
- 	}
 
- ], (err) => {
 
- 	if (err && err !== true) {
 
- 		console.error('An error occurred while initializing the backend server');
 
- 		console.error(err);
 
- 	} else {
 
- 		console.info('Backend server has been successfully started');
 
- 	}
 
- });
 
 
  |