|
|
|
|
@ -41,10 +41,6 @@ export const startNextcloud = async function(branch: string = getCurrentGitBranc
|
|
|
|
|
// https://github.com/apocas/dockerode/issues/357
|
|
|
|
|
docker.modem.followProgress(stream, onFinished)
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @param err
|
|
|
|
|
*/
|
|
|
|
|
function onFinished(err) {
|
|
|
|
|
if (!err) {
|
|
|
|
|
resolve(true)
|
|
|
|
|
@ -91,6 +87,7 @@ export const startNextcloud = async function(branch: string = getCurrentGitBranc
|
|
|
|
|
},
|
|
|
|
|
Env: [
|
|
|
|
|
`BRANCH=${branch}`,
|
|
|
|
|
'APCU=1',
|
|
|
|
|
],
|
|
|
|
|
})
|
|
|
|
|
await container.start()
|
|
|
|
|
@ -129,9 +126,28 @@ export const configureNextcloud = async function() {
|
|
|
|
|
await runExec(container, ['php', 'occ', 'config:system:set', 'default_locale', '--value', 'en_US'], true)
|
|
|
|
|
await runExec(container, ['php', 'occ', 'config:system:set', 'force_locale', '--value', 'en_US'], true)
|
|
|
|
|
await runExec(container, ['php', 'occ', 'config:system:set', 'enforce_theme', '--value', 'light'], true)
|
|
|
|
|
|
|
|
|
|
// Speed up test and make them less flaky. If a cron execution is needed, it can be triggered manually.
|
|
|
|
|
await runExec(container, ['php', 'occ', 'background:cron'], true)
|
|
|
|
|
|
|
|
|
|
// Checking apcu
|
|
|
|
|
const distributed = await runExec(container, ['php', 'occ', 'config:system:get', 'memcache.distributed'])
|
|
|
|
|
const local = await runExec(container, ['php', 'occ', 'config:system:get', 'memcache.local'])
|
|
|
|
|
const hashing = await runExec(container, ['php', 'occ', 'config:system:get', 'hashing_default_password'])
|
|
|
|
|
|
|
|
|
|
console.log('├─ Checking APCu configuration... 👀')
|
|
|
|
|
if (!distributed.trim().includes('\\OC\\Memcache\\APCu')
|
|
|
|
|
|| !local.trim().includes('\\OC\\Memcache\\APCu')
|
|
|
|
|
|| !hashing.trim().includes('true')) {
|
|
|
|
|
console.log('└─ APCu is not properly configured 🛑')
|
|
|
|
|
throw new Error('APCu is not properly configured')
|
|
|
|
|
}
|
|
|
|
|
console.log('│ └─ OK !')
|
|
|
|
|
|
|
|
|
|
// Saving DB state
|
|
|
|
|
console.log('├─ Creating init DB snapshot...')
|
|
|
|
|
await runExec(container, ['cp', '/var/www/html/data/owncloud.db', '/var/www/html/data/owncloud.db-init'], true)
|
|
|
|
|
|
|
|
|
|
console.log('└─ Nextcloud is now ready to use 🎉')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -261,7 +277,7 @@ const runExec = async function(
|
|
|
|
|
command: string[],
|
|
|
|
|
verbose = false,
|
|
|
|
|
user = 'www-data',
|
|
|
|
|
) {
|
|
|
|
|
): Promise<string> {
|
|
|
|
|
const exec = await container.exec({
|
|
|
|
|
Cmd: command,
|
|
|
|
|
AttachStdout: true,
|
|
|
|
|
@ -270,6 +286,7 @@ const runExec = async function(
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
let output = ''
|
|
|
|
|
exec.start({}, (err, stream) => {
|
|
|
|
|
if (err) {
|
|
|
|
|
reject(err)
|
|
|
|
|
@ -277,11 +294,12 @@ const runExec = async function(
|
|
|
|
|
if (stream) {
|
|
|
|
|
stream.setEncoding('utf-8')
|
|
|
|
|
stream.on('data', str => {
|
|
|
|
|
output += str
|
|
|
|
|
if (verbose && str.trim() !== '') {
|
|
|
|
|
console.log(`├─ ${str.trim().replace(/\n/gi, '\n├─ ')}`)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
stream.on('end', resolve)
|
|
|
|
|
stream.on('end', () => resolve(output))
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
|