aboutsummaryrefslogtreecommitdiff
path: root/src/api/database
diff options
context:
space:
mode:
authorPitu <[email protected]>2021-06-15 00:13:37 +0900
committerPitu <[email protected]>2021-06-15 00:13:37 +0900
commitb2253c7f607204daeb20a35cf57ff9605f5ead43 (patch)
tree485560b0e6b6db2d69fee1e3af23aedad129b10e /src/api/database
parentupdate package.json, pin volta, update deps (diff)
downloadhost.fuwn.me-b2253c7f607204daeb20a35cf57ff9605f5ead43.tar.xz
host.fuwn.me-b2253c7f607204daeb20a35cf57ff9605f5ead43.zip
chore: update db migration, seed and docker env
Diffstat (limited to 'src/api/database')
-rw-r--r--src/api/database/migrations/20210112011802_addSettingsTable.js24
-rw-r--r--src/api/database/seeds/initial.js27
2 files changed, 22 insertions, 29 deletions
diff --git a/src/api/database/migrations/20210112011802_addSettingsTable.js b/src/api/database/migrations/20210112011802_addSettingsTable.js
index 3acd845..cd4ac55 100644
--- a/src/api/database/migrations/20210112011802_addSettingsTable.js
+++ b/src/api/database/migrations/20210112011802_addSettingsTable.js
@@ -1,27 +1,7 @@
exports.up = async knex => {
await knex.schema.createTable('settings', table => {
- table.string('routePrefix');
- table.integer('rateLimitWindow');
- table.integer('rateLimitMax');
- table.string('secret');
- table.string('serviceName');
- table.string('domain');
- table.integer('chunkSize');
- table.integer('maxSize');
- table.boolean('generateZips');
- table.integer('generatedFilenameLength');
- table.integer('generatedAlbumLength');
- table.integer('maxLinksPerAlbum');
- table.string('uploadFolder');
- table.json('blockedExtensions');
- table.boolean('publicMode');
- table.boolean('userAccounts');
- table.string('adminAccount');
- table.string('adminPassword');
- table.string('metaThemeColor');
- table.string('metaDescription');
- table.string('metaKeywords');
- table.string('metaTwitterHandle');
+ table.string('key');
+ table.string('value');
});
};
diff --git a/src/api/database/seeds/initial.js b/src/api/database/seeds/initial.js
index bb60b2c..30d84c8 100644
--- a/src/api/database/seeds/initial.js
+++ b/src/api/database/seeds/initial.js
@@ -8,21 +8,34 @@ exports.seed = async db => {
// Save environment variables to the database
try {
- const settings = await db.table('settings').first();
- if (!settings) {
- await Util.writeConfigToDb(Util.getEnvironmentDefaults(), false);
+ const defaults = Util.getEnvironmentDefaults();
+ const keys = Object.keys(defaults);
+ for await (const item of keys) {
+ Util.writeConfigToDb({
+ key: item,
+ value: defaults[item]
+ });
}
} catch (error) {
console.error(error);
}
// Create admin user if it doesnt exist
- const user = await db.table('users').where({ username: process.env.ADMIN_ACCOUNT }).first();
- if (user) return;
+ const user = await db.table('users').where({ username: 'admin' }).first();
+ if (user) {
+ console.log();
+ console.log('=========================================================');
+ console.log('== admin account already exists, skipping. ==');
+ console.log('=========================================================');
+ console.log('== Run `pm2 start pm2.json` to start the service ==');
+ console.log('=========================================================');
+ console.log();
+ return;
+ }
try {
- const hash = await bcrypt.hash(process.env.ADMIN_PASSWORD, 10);
+ const hash = await bcrypt.hash('admin', 10);
await db.table('users').insert({
- username: process.env.ADMIN_ACCOUNT,
+ username: 'admin',
password: hash,
passwordEditedAt: now,
createdAt: now,