UNPKG

shadowsocks-manager

Version:

A shadowsocks manager tool for multi user and traffic control.

52 lines (49 loc) 1.52 kB
const knex = appRequire('init/knex').knex; const tableName = 'server'; const config = appRequire('services/config').all(); const manager = appRequire('services/manager'); const log4js = require('log4js'); const logger = log4js.getLogger('flowSaver'); const createTable = async () => { const hasTable = await knex.schema.hasTable(tableName); if(!hasTable) { await knex.schema.createTable(tableName, function(table) { table.increments('id'); table.string('name'); table.string('host'); table.integer('port'); table.string('password'); table.float('scale').defaultTo(1); table.string('method').defaultTo('aes-256-cfb'); table.string('comment').defaultTo(''); table.integer('shift').defaultTo(0); }); } const list = await knex('server').select(['name', 'host', 'port', 'password']); if(list.length === 0) { const host = config.manager.address.split(':')[0]; const port = +config.manager.address.split(':')[1]; const password = config.manager.password; await manager.send({ command: 'flow', options: { clear: false, }, }, { host, port, password, }).catch(() => { logger.error(`connect to server ${ password }@${ host }:${ port } fail.`); process.exit(1); }); await knex('server').insert({ name: 'default', host, port, password, }); } return; }; exports.createTable = createTable;