]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/initializers/installer.js
53b07903c3b46af6a1cc1f5170e35f82c9d1f026
3 const async
= require('async')
4 const config
= require('config')
5 const mkdirp
= require('mkdirp')
6 const passwordGenerator
= require('password-generator')
7 const path
= require('path')
9 const checker
= require('./checker')
10 const logger
= require('../helpers/logger')
11 const peertubeCrypto
= require('../helpers/peertubeCrypto')
12 const Users
= require('../models/users')
15 installApplication: installApplication
18 function installApplication (callback
) {
20 function createDirectories (callbackAsync
) {
21 createDirectoriesIfNotExist(callbackAsync
)
24 function createCertificates (callbackAsync
) {
25 peertubeCrypto
.createCertsIfNotExist(callbackAsync
)
28 function createOAuthClient (callbackAsync
) {
29 createOAuthClientIfNotExist(callbackAsync
)
32 function createOAuthUser (callbackAsync
) {
33 createOAuthUserIfNotExist(callbackAsync
)
38 // ---------------------------------------------------------------------------
40 module
.exports
= installer
42 // ---------------------------------------------------------------------------
44 function createDirectoriesIfNotExist (callback
) {
45 const storages
= config
.get('storage')
47 async
.each(Object
.keys(storages
), function (key
, callbackEach
) {
48 const dir
= storages
[key
]
49 mkdirp(path
.join(__dirname
, '..', '..', dir
), callbackEach
)
53 function createOAuthClientIfNotExist (callback
) {
54 checker
.clientsExist(function (err
, exist
) {
55 if (err
) return callback(err
)
57 // Nothing to do, clients already exist
58 if (exist
=== true) return callback(null)
60 logger
.info('Creating a default OAuth Client.')
62 const secret
= passwordGenerator(32, false)
63 Users
.createClient(secret
, [ 'password' ], function (err
, id
) {
64 if (err
) return callback(err
)
66 logger
.info('Client id: ' + id
)
67 logger
.info('Client secret: ' + secret
)
74 function createOAuthUserIfNotExist (callback
) {
75 checker
.usersExist(function (err
, exist
) {
76 if (err
) return callback(err
)
78 // Nothing to do, users already exist
79 if (exist
=== true) return callback(null)
81 logger
.info('Creating the administrator.')
83 const username
= 'root'
84 const password
= passwordGenerator(8, true)
86 Users
.createUser(username
, password
, function (err
) {
87 if (err
) return callback(err
)
89 logger
.info('Username: ' + username
)
90 logger
.info('User password: ' + password
)