X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Finitializers%2Finstaller.ts;h=b0084b368de84e26893c82a143e9d1315e724df1;hb=61b909b9bf849516f30dab2bf5977acfbbddc5c6;hp=c3521a9e4e6ab0b11c0b51f8cb0b74df4c543fc5;hpb=350e31d6b64e4973dfa5e9f7b46841cb09aeb1ad;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/initializers/installer.ts b/server/initializers/installer.ts index c3521a9e4..b0084b368 100644 --- a/server/initializers/installer.ts +++ b/server/initializers/installer.ts @@ -1,24 +1,26 @@ import * as passwordGenerator from 'password-generator' import { UserRole } from '../../shared' -import { logger, mkdirpPromise, rimrafPromise } from '../helpers' -import { createUserAccountAndChannel } from '../lib' -import { createLocalAccount } from '../lib/user' +import { mkdirpPromise, rimrafPromise } from '../helpers/core-utils' +import { logger } from '../helpers/logger' +import { createApplicationActor, createUserAccountAndChannel } from '../lib/user' +import { UserModel } from '../models/account/user' +import { ApplicationModel } from '../models/application/application' +import { OAuthClientModel } from '../models/oauth/oauth-client' import { applicationExist, clientsExist, usersExist } from './checker' -import { CACHE, CONFIG, LAST_MIGRATION_VERSION, SERVER_ACCOUNT_NAME } from './constants' - -import { database as db } from './database' +import { CACHE, CONFIG, LAST_MIGRATION_VERSION } from './constants' +import { sequelizeTypescript } from './database' async function installApplication () { try { - await db.sequelize.sync() + await sequelizeTypescript.sync() await removeCacheDirectories() await createDirectoriesIfNotExist() + await createApplicationIfNotExist() await createOAuthClientIfNotExist() await createOAuthAdminIfNotExist() - await createApplicationIfNotExist() } catch (err) { - logger.error('Cannot install application.', err) - throw err + logger.error('Cannot install application.', { err }) + process.exit(-1) } } @@ -64,7 +66,7 @@ function createDirectoriesIfNotExist () { } async function createOAuthClientIfNotExist () { - const exist = await clientsExist(db.OAuthClient) + const exist = await clientsExist() // Nothing to do, clients already exist if (exist === true) return undefined @@ -72,7 +74,7 @@ async function createOAuthClientIfNotExist () { const id = passwordGenerator(32, false, /[a-z0-9]/) const secret = passwordGenerator(32, false, /[a-zA-Z0-9]/) - const client = db.OAuthClient.build({ + const client = new OAuthClientModel({ clientId: id, clientSecret: secret, grants: [ 'password', 'refresh_token' ], @@ -87,7 +89,7 @@ async function createOAuthClientIfNotExist () { } async function createOAuthAdminIfNotExist () { - const exist = await usersExist(db.User) + const exist = await usersExist() // Nothing to do, users already exist if (exist === true) return undefined @@ -110,7 +112,7 @@ async function createOAuthAdminIfNotExist () { // Our password is weak so do not validate it validatePassword = false } else { - password = passwordGenerator(8, true) + password = passwordGenerator(16, true) } const userData = { @@ -118,9 +120,10 @@ async function createOAuthAdminIfNotExist () { email, password, role, + nsfwPolicy: CONFIG.INSTANCE.DEFAULT_NSFW_POLICY, videoQuota: -1 } - const user = db.User.build(userData) + const user = new UserModel(userData) await createUserAccountAndChannel(user, validatePassword) logger.info('Username: ' + username) @@ -128,13 +131,15 @@ async function createOAuthAdminIfNotExist () { } async function createApplicationIfNotExist () { - const exist = await applicationExist(db.Application) + const exist = await applicationExist() // Nothing to do, application already exist if (exist === true) return undefined - logger.info('Creating Application table.') - const applicationInstance = await db.Application.create({ migrationVersion: LAST_MIGRATION_VERSION }) - logger.info('Creating application account.') - return createLocalAccount(SERVER_ACCOUNT_NAME, null, applicationInstance.id, undefined) + + const application = await ApplicationModel.create({ + migrationVersion: LAST_MIGRATION_VERSION + }) + + return createApplicationActor(application.id) }