This commit is contained in:
parent
0a4b652493
commit
6a4e92a999
168
cli/init.js
168
cli/init.js
|
@ -1,168 +0,0 @@
|
||||||
const fs = require('fs');
|
|
||||||
const path = require('path');
|
|
||||||
const yaml = require('js-yaml');
|
|
||||||
const inquirer = require('inquirer');
|
|
||||||
const chalk = require('chalk');
|
|
||||||
|
|
||||||
const configDirPath = `${__dirname}/../.config`;
|
|
||||||
const configPath = `${configDirPath}/default.yml`;
|
|
||||||
|
|
||||||
const form = [{
|
|
||||||
type: 'input',
|
|
||||||
name: 'maintainerName',
|
|
||||||
message: 'Your name:'
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'maintainerUrl',
|
|
||||||
message: 'Your home page URL or your mailto URL:'
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'url',
|
|
||||||
message: 'URL you want to run Misskey:',
|
|
||||||
validate: function(wannabeurl) {
|
|
||||||
return wannabeurl.match('^http\(s?\)://') ? true :
|
|
||||||
'URL needs to start with http:// or https://';
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'port',
|
|
||||||
message: 'Listen port (e.g. 443):'
|
|
||||||
}, {
|
|
||||||
type: 'confirm',
|
|
||||||
name: 'https',
|
|
||||||
message: 'Use TLS?',
|
|
||||||
default: false
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'https_key',
|
|
||||||
message: 'Path of tls key:',
|
|
||||||
when: ctx => ctx.https
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'https_cert',
|
|
||||||
message: 'Path of tls cert:',
|
|
||||||
when: ctx => ctx.https
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'https_ca',
|
|
||||||
message: 'Path of tls ca:',
|
|
||||||
when: ctx => ctx.https
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'mongo_host',
|
|
||||||
message: 'MongoDB\'s host:',
|
|
||||||
default: 'localhost'
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'mongo_port',
|
|
||||||
message: 'MongoDB\'s port:',
|
|
||||||
default: '27017'
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'mongo_db',
|
|
||||||
message: 'MongoDB\'s db:',
|
|
||||||
default: 'misskey'
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'mongo_user',
|
|
||||||
message: 'MongoDB\'s user:'
|
|
||||||
}, {
|
|
||||||
type: 'password',
|
|
||||||
name: 'mongo_pass',
|
|
||||||
message: 'MongoDB\'s password:'
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'redis_host',
|
|
||||||
message: 'Redis\'s host:',
|
|
||||||
default: 'localhost'
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'redis_port',
|
|
||||||
message: 'Redis\'s port:',
|
|
||||||
default: '6379'
|
|
||||||
}, {
|
|
||||||
type: 'password',
|
|
||||||
name: 'redis_pass',
|
|
||||||
message: 'Redis\'s password:'
|
|
||||||
}, {
|
|
||||||
type: 'confirm',
|
|
||||||
name: 'elasticsearch',
|
|
||||||
message: 'Use Elasticsearch?',
|
|
||||||
default: false
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'es_host',
|
|
||||||
message: 'Elasticsearch\'s host:',
|
|
||||||
default: 'localhost',
|
|
||||||
when: ctx => ctx.elasticsearch
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'es_port',
|
|
||||||
message: 'Elasticsearch\'s port:',
|
|
||||||
default: '9200',
|
|
||||||
when: ctx => ctx.elasticsearch
|
|
||||||
}, {
|
|
||||||
type: 'password',
|
|
||||||
name: 'es_pass',
|
|
||||||
message: 'Elasticsearch\'s password:',
|
|
||||||
when: ctx => ctx.elasticsearch
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'recaptcha_site',
|
|
||||||
message: 'reCAPTCHA\'s site key:'
|
|
||||||
}, {
|
|
||||||
type: 'input',
|
|
||||||
name: 'recaptcha_secret',
|
|
||||||
message: 'reCAPTCHA\'s secret key:'
|
|
||||||
}];
|
|
||||||
|
|
||||||
inquirer.prompt(form).then(as => {
|
|
||||||
// Mapping answers
|
|
||||||
const conf = {
|
|
||||||
maintainer: {
|
|
||||||
name: as['maintainerName'],
|
|
||||||
url: as['maintainerUrl']
|
|
||||||
},
|
|
||||||
url: as['url'],
|
|
||||||
port: parseInt(as['port'], 10),
|
|
||||||
mongodb: {
|
|
||||||
host: as['mongo_host'],
|
|
||||||
port: parseInt(as['mongo_port'], 10),
|
|
||||||
db: as['mongo_db'],
|
|
||||||
user: as['mongo_user'],
|
|
||||||
pass: as['mongo_pass']
|
|
||||||
},
|
|
||||||
redis: {
|
|
||||||
host: as['redis_host'],
|
|
||||||
port: parseInt(as['redis_port'], 10),
|
|
||||||
pass: as['redis_pass']
|
|
||||||
},
|
|
||||||
elasticsearch: {
|
|
||||||
enable: as['elasticsearch'],
|
|
||||||
host: as['es_host'] || null,
|
|
||||||
port: parseInt(as['es_port'], 10) || null,
|
|
||||||
pass: as['es_pass'] || null
|
|
||||||
},
|
|
||||||
recaptcha: {
|
|
||||||
site_key: as['recaptcha_site'],
|
|
||||||
secret_key: as['recaptcha_secret']
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if (as['https']) {
|
|
||||||
conf.https = {
|
|
||||||
key: as['https_key'] || null,
|
|
||||||
cert: as['https_cert'] || null,
|
|
||||||
ca: as['https_ca'] || null
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(`Thanks. Writing the configuration to ${chalk.bold(path.resolve(configPath))}`);
|
|
||||||
|
|
||||||
try {
|
|
||||||
fs.writeFileSync(configPath, yaml.dump(conf));
|
|
||||||
console.log(chalk.green('Well done.'));
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -43,7 +43,8 @@ Please install and setup these softwares:
|
||||||
|
|
||||||
*4.* Make configuration file
|
*4.* Make configuration file
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
You need to generate config file via `npm run config` command.
|
1. Copy the `.config/example.yml` and rename it to `default.yml`.
|
||||||
|
2. Edit it
|
||||||
|
|
||||||
*5.* Build Misskey
|
*5.* Build Misskey
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
|
@ -43,7 +43,7 @@ web-push generate-vapid-keys
|
||||||
|
|
||||||
*4.* 設定ファイルを作成する
|
*4.* 設定ファイルを作成する
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
`npm run config`コマンドを利用して、ガイドに従って情報を入力してください。
|
`.config/example.yml`をコピーしたのち`default.yml`にリネームして編集してください。
|
||||||
|
|
||||||
*5.* Misskeyのビルド
|
*5.* Misskeyのビルド
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
"main": "./built/index.js",
|
"main": "./built/index.js",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"config": "node ./cli/init.js",
|
|
||||||
"start": "node ./built",
|
"start": "node ./built",
|
||||||
"debug": "DEBUG=misskey:* node ./built",
|
"debug": "DEBUG=misskey:* node ./built",
|
||||||
"swagger": "node ./swagger.js",
|
"swagger": "node ./swagger.js",
|
||||||
|
@ -44,7 +43,6 @@
|
||||||
"@types/gulp-replace": "0.0.31",
|
"@types/gulp-replace": "0.0.31",
|
||||||
"@types/gulp-uglify": "3.0.5",
|
"@types/gulp-uglify": "3.0.5",
|
||||||
"@types/gulp-util": "3.0.34",
|
"@types/gulp-util": "3.0.34",
|
||||||
"@types/inquirer": "0.0.42",
|
|
||||||
"@types/is-root": "1.0.0",
|
"@types/is-root": "1.0.0",
|
||||||
"@types/is-url": "1.2.28",
|
"@types/is-url": "1.2.28",
|
||||||
"@types/js-yaml": "3.11.2",
|
"@types/js-yaml": "3.11.2",
|
||||||
|
@ -129,7 +127,6 @@
|
||||||
"highlight.js": "9.12.0",
|
"highlight.js": "9.12.0",
|
||||||
"html-minifier": "3.5.19",
|
"html-minifier": "3.5.19",
|
||||||
"http-signature": "1.2.0",
|
"http-signature": "1.2.0",
|
||||||
"inquirer": "6.0.0",
|
|
||||||
"is-root": "2.0.0",
|
"is-root": "2.0.0",
|
||||||
"is-url": "1.2.4",
|
"is-url": "1.2.4",
|
||||||
"js-yaml": "3.12.0",
|
"js-yaml": "3.12.0",
|
||||||
|
|
Loading…
Reference in New Issue