mirror of
https://github.com/cupcakearmy/coolify.git
synced 2024-10-23 08:34:11 +02:00
75 lines
1.6 KiB
JavaScript
75 lines
1.6 KiB
JavaScript
|
const dotEnvExtended = require('dotenv-extended');
|
||
|
dotEnvExtended.load();
|
||
|
const crypto = require('crypto');
|
||
|
const generator = require('generate-password');
|
||
|
const cuid = require('cuid');
|
||
|
const { PrismaClient } = require('@prisma/client');
|
||
|
const prisma = new PrismaClient();
|
||
|
|
||
|
function generatePassword(length = 24) {
|
||
|
return generator.generate({
|
||
|
length,
|
||
|
numbers: true,
|
||
|
strict: true
|
||
|
});
|
||
|
}
|
||
|
const algorithm = 'aes-256-ctr';
|
||
|
|
||
|
async function main() {
|
||
|
// Enable registration for the first user
|
||
|
// Set initial HAProxy password
|
||
|
const settingsFound = await prisma.setting.findFirst({});
|
||
|
if (!settingsFound) {
|
||
|
await prisma.setting.create({
|
||
|
data: {
|
||
|
isRegistrationEnabled: true,
|
||
|
isTraefikUsed: true,
|
||
|
}
|
||
|
});
|
||
|
} else {
|
||
|
await prisma.setting.update({
|
||
|
where: {
|
||
|
id: settingsFound.id
|
||
|
},
|
||
|
data: {
|
||
|
isTraefikUsed: true,
|
||
|
proxyHash: null
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
const localDocker = await prisma.destinationDocker.findFirst({
|
||
|
where: { engine: '/var/run/docker.sock' }
|
||
|
});
|
||
|
if (!localDocker) {
|
||
|
await prisma.destinationDocker.create({
|
||
|
data: {
|
||
|
engine: '/var/run/docker.sock',
|
||
|
name: 'Local Docker',
|
||
|
isCoolifyProxyUsed: true,
|
||
|
network: 'coolify'
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// Set auto-update based on env variable
|
||
|
const isAutoUpdateEnabled = process.env['COOLIFY_AUTO_UPDATE'] === 'true';
|
||
|
const settings = await prisma.setting.findFirst({});
|
||
|
if (settings) {
|
||
|
await prisma.setting.update({
|
||
|
where: {
|
||
|
id: settings.id
|
||
|
},
|
||
|
data: {
|
||
|
isAutoUpdateEnabled
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
main()
|
||
|
.catch((e) => {
|
||
|
console.error(e);
|
||
|
process.exit(1);
|
||
|
})
|
||
|
.finally(async () => {
|
||
|
await prisma.$disconnect();
|
||
|
});
|