30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import {Sequelize} from 'sequelize';
|
|
import {createClient} from "redis";
|
|
|
|
// Load & check environment
|
|
require('dotenv').config();
|
|
require('./util/envCheck').validate();
|
|
|
|
export const redisClient = createClient();
|
|
redisClient.on("error", (error) => console.error(`Error : ${error}`));
|
|
|
|
(async () => {
|
|
await redisClient.connect();
|
|
})();
|
|
|
|
// Connect to database
|
|
export const sequelize = new Sequelize(process.env.DB_NAME || '', process.env.DB_USER || '', process.env.DB_PASS || '', {host: process.env.DB_HOST || '', dialect: 'mariadb'});
|
|
|
|
sequelize.authenticate().then(() => {
|
|
console.log('[DB] Connected to database');
|
|
start();
|
|
}).catch(err => console.error(err));
|
|
|
|
// Start all servers
|
|
const start = async () => {
|
|
(await import("./server/api")).startServer(parseInt(process.env.API_PORT || ''));
|
|
(await import("./server/shortener")).startServer(parseInt(process.env.SHORTENER_PORT || ''));
|
|
if (!process.env.DISABLE_CONTENT_DELIVERY)
|
|
(await import("./server/contentDelivery")).startServer(parseInt(process.env.CDN_PORT || ''));
|
|
sequelize.sync();
|
|
} |