diff --git a/README.md b/README.md index 2018270..db204c1 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,13 @@ Follow the instructions after setup runs. ```bash npm run start ``` -You can also run this to skip checking the database version on startup. +You can also skip checking the database version and compiling templates (if you don't use server-side rendering) on startup. ```bash -npm run start -- --skip-migrate +npm run start -- --skip-migrate --skip-compile # don't forget to migrate manually when you update npm run migrate +# and compile templates after any changes +npm run make-templates ``` ## Contributing diff --git a/install/config.example.yml b/install/config.example.yml index c67d16b..be1a5a0 100644 --- a/install/config.example.yml +++ b/install/config.example.yml @@ -14,6 +14,7 @@ rtmp: http: # uncomment to set HSTS when SSL is ready #hsts: true + server_side_render: false database: user: '' diff --git a/src/cleanup.ts b/src/cleanup.ts index 56c9dc9..4a3fd58 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -1,8 +1,9 @@ import * as db from "./database"; import {readdirSync} from "fs"; +import { execSync } from "child_process"; -async function init(m?: boolean) { - if(!m){ +async function init() { + if(process.argv.indexOf('--skip-migrate') === -1){ console.log('Checking database version.'); var tmp: string[] = await db.query('show tables like \"db_meta\"'); if(tmp.length === 0){ @@ -17,6 +18,15 @@ async function init(m?: boolean) { else { console.log('Skipping database version check.'); } + + if(!require('./config').config['http']['server_side_render'] && process.argv.indexOf('--skip-compile') === -1) { + console.log("Compiling templates for client-side frontend."); + execSync(process.cwd()+'/node_modules/.bin/nunjucks-precompile -i [\"\\.html$\",\"\\.njk$\"] templates > site/templates.js'); + } + else if(!require('./config').config['http']['server_side_render']){ + console.log("Skipped compiling templates for client-side frontend."); + } + //If satyr is restarted in the middle of a stream //it causes problems //Live flags in the database stay live diff --git a/src/config.ts b/src/config.ts index 0fdeaa4..d9edb2e 100644 --- a/src/config.ts +++ b/src/config.ts @@ -36,7 +36,10 @@ const config: Object = { ping: 30, ping_timeout: 60 }, localconfig['rtmp']), http: Object.assign({ - hsts: false, directory: './site', port: 8000 + hsts: false, + directory: './site', + port: 8000, + server_side_render: true }, localconfig['http']), media: Object.assign({ record: false, diff --git a/src/index.ts b/src/index.ts index 889c20f..2573948 100644 --- a/src/index.ts +++ b/src/index.ts @@ -7,7 +7,7 @@ import { config } from "./config"; async function run() { await initDB(); - await clean(process.argv.indexOf('--skip-migrate') !== -1); + await clean(); await initHTTP(); await initRTMP(); await initChat();