shadowsocks-manager
Version:
A shadowsocks manager tool for multi user and traffic control.
41 lines (38 loc) • 1.16 kB
JavaScript
const knex = appRequire('init/knex').knex;
const tableName = 'server';
const config = appRequire('services/config').all();
const manager = appRequire('services/manager');
const createTable = async () => {
await knex.schema.createTable(tableName, function(table) {
table.increments('id');
table.string('name');
table.string('host');
table.integer('port');
table.string('password');
table.string('method').defaultTo('aes-256-cfb');
});
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: 'version'
}, {
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;