chore: optimize environmental variables (#3528)
This commit is contained in:
parent
041f146d7c
commit
5b86ee393f
44
.env.example
44
.env.example
@ -17,8 +17,6 @@ APP_KEY=test-key
|
|||||||
API_BASE_PATH=/api/
|
API_BASE_PATH=/api/
|
||||||
API_BASE_URL=
|
API_BASE_URL=
|
||||||
|
|
||||||
PROXY_TARGET_URL=
|
|
||||||
|
|
||||||
# console | file | dailyRotateFile
|
# console | file | dailyRotateFile
|
||||||
LOGGER_TRANSPORT=
|
LOGGER_TRANSPORT=
|
||||||
LOGGER_BASE_PATH=storage/logs
|
LOGGER_BASE_PATH=storage/logs
|
||||||
@ -58,48 +56,8 @@ CACHE_MEMORY_MAX=2000
|
|||||||
|
|
||||||
################# STORAGE (Initialization only) #################
|
################# STORAGE (Initialization only) #################
|
||||||
|
|
||||||
|
INIT_LANG=en-US
|
||||||
INIT_ROOT_EMAIL=admin@nocobase.com
|
INIT_ROOT_EMAIL=admin@nocobase.com
|
||||||
INIT_ROOT_PASSWORD=admin123
|
INIT_ROOT_PASSWORD=admin123
|
||||||
INIT_ROOT_NICKNAME=Super Admin
|
INIT_ROOT_NICKNAME=Super Admin
|
||||||
INIT_ROOT_USERNAME=nocobase
|
INIT_ROOT_USERNAME=nocobase
|
||||||
|
|
||||||
# local or ali-oss
|
|
||||||
DEFAULT_STORAGE_TYPE=local
|
|
||||||
|
|
||||||
# LOCAL STORAGE
|
|
||||||
LOCAL_STORAGE_BASE_URL=/storage/uploads
|
|
||||||
LOCAL_STORAGE_DEST=storage/uploads
|
|
||||||
|
|
||||||
# ALI OSS STORAGE
|
|
||||||
ALI_OSS_STORAGE_BASE_URL=
|
|
||||||
ALI_OSS_REGION=oss-cn-beijing
|
|
||||||
ALI_OSS_ACCESS_KEY_ID=
|
|
||||||
ALI_OSS_ACCESS_KEY_SECRET=
|
|
||||||
ALI_OSS_BUCKET=
|
|
||||||
|
|
||||||
# Tencent COS STORAGE
|
|
||||||
TX_COS_STORAGE_BASE_URL=
|
|
||||||
TX_COS_REGION=ap-guangzhou
|
|
||||||
TX_COS_SECRET_ID=
|
|
||||||
TX_COS_SECRET_KEY=
|
|
||||||
TX_COS_BUCKET=
|
|
||||||
|
|
||||||
# AWS
|
|
||||||
AWS_ACCESS_KEY_ID=
|
|
||||||
AWS_SECRET_ACCESS_KEY=
|
|
||||||
AWS_S3_REGION=
|
|
||||||
AWS_S3_BUCKET=
|
|
||||||
AWS_S3_STORAGE_BASE_URL=
|
|
||||||
|
|
||||||
# ALI SMS VERIFY CODE CONFIG
|
|
||||||
INIT_ALI_SMS_ACCESS_KEY=
|
|
||||||
INIT_ALI_SMS_ACCESS_KEY_SECRET=
|
|
||||||
INIT_ALI_SMS_ENDPOINT=
|
|
||||||
INIT_ALI_SMS_VERIFY_CODE_TEMPLATE=
|
|
||||||
INIT_ALI_SMS_VERIFY_CODE_SIGN=
|
|
||||||
|
|
||||||
# use any string name (no space)
|
|
||||||
DEFAULT_SMS_VERIFY_CODE_PROVIDER=
|
|
||||||
|
|
||||||
# in nodejs 17+ that SSL v3 causes some ecosystem libraries to become incompatible. Configuring this option can prevent upgrading SSL V3
|
|
||||||
# NODE_OPTIONS=--openssl-legacy-provider
|
|
||||||
|
@ -272,11 +272,15 @@ exports.initEnv = function initEnv() {
|
|||||||
PLUGIN_STORAGE_PATH: resolve(process.cwd(), 'storage/plugins'),
|
PLUGIN_STORAGE_PATH: resolve(process.cwd(), 'storage/plugins'),
|
||||||
MFSU_AD: 'none',
|
MFSU_AD: 'none',
|
||||||
WS_PATH: '/ws',
|
WS_PATH: '/ws',
|
||||||
|
SOCKET_PATH: 'storage/gateway.sock',
|
||||||
NODE_MODULES_PATH: resolve(process.cwd(), 'node_modules'),
|
NODE_MODULES_PATH: resolve(process.cwd(), 'node_modules'),
|
||||||
PM2_HOME: resolve(process.cwd(), './storage/.pm2'),
|
PM2_HOME: resolve(process.cwd(), './storage/.pm2'),
|
||||||
PLUGIN_PACKAGE_PREFIX: '@nocobase/plugin-,@nocobase/plugin-sample-,@nocobase/preset-',
|
PLUGIN_PACKAGE_PREFIX: '@nocobase/plugin-,@nocobase/plugin-sample-,@nocobase/preset-',
|
||||||
SERVER_TSCONFIG_PATH: './tsconfig.server.json',
|
SERVER_TSCONFIG_PATH: './tsconfig.server.json',
|
||||||
PLAYWRIGHT_AUTH_FILE: resolve(process.cwd(), 'storage/playwright/.auth/admin.json'),
|
PLAYWRIGHT_AUTH_FILE: resolve(process.cwd(), 'storage/playwright/.auth/admin.json'),
|
||||||
|
CACHE_DEFAULT_STORE: 'memory',
|
||||||
|
CACHE_MEMORY_MAX: 2000,
|
||||||
|
LOGGER_BASE_PATH: 'storage/logs',
|
||||||
};
|
};
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
@ -69,4 +69,4 @@ function createLogger(options: LoggerOptions = {}) {
|
|||||||
return logger;
|
return logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
export { Logger, LoggerOptions, Transports, createLogger };
|
export { createLogger, Logger, LoggerOptions, Transports };
|
||||||
|
@ -9,6 +9,9 @@ export default (app: Application) => {
|
|||||||
.option('-c, --clean')
|
.option('-c, --clean')
|
||||||
.option('--lang <lang>')
|
.option('--lang <lang>')
|
||||||
.action(async (options) => {
|
.action(async (options) => {
|
||||||
|
if (options.lang) {
|
||||||
|
process.env.INIT_APP_LANG = options.lang;
|
||||||
|
}
|
||||||
await app.install(options);
|
await app.install(options);
|
||||||
const reinstall = options.clean || options.force;
|
const reinstall = options.clean || options.force;
|
||||||
app.log.info(`app ${reinstall ? 'reinstalled' : 'installed'} successfully [v${app.getVersion()}]`);
|
app.log.info(`app ${reinstall ? 'reinstalled' : 'installed'} successfully [v${app.getVersion()}]`);
|
||||||
|
@ -13,25 +13,14 @@ async function getLang(ctx) {
|
|||||||
if (enabledLanguages.includes(currentUser?.appLang)) {
|
if (enabledLanguages.includes(currentUser?.appLang)) {
|
||||||
lang = currentUser?.appLang;
|
lang = currentUser?.appLang;
|
||||||
}
|
}
|
||||||
if (ctx.request.query.locale) {
|
if (ctx.request.query.locale && enabledLanguages.includes(ctx.request.query.locale)) {
|
||||||
lang = ctx.request.query.locale;
|
lang = ctx.request.query.locale;
|
||||||
}
|
}
|
||||||
return lang;
|
return lang;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class ClientPlugin extends Plugin {
|
export class ClientPlugin extends Plugin {
|
||||||
async beforeLoad() {
|
async beforeLoad() {}
|
||||||
// const cmd = this.app.findCommand('install');
|
|
||||||
// if (cmd) {
|
|
||||||
// cmd.option('--import-demo');
|
|
||||||
// }
|
|
||||||
this.app.on('afterInstall', async (app, options) => {
|
|
||||||
const [opts] = options?.cliArgs || [{}];
|
|
||||||
if (opts?.importDemo) {
|
|
||||||
//
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async install() {
|
async install() {
|
||||||
const uiSchemas = this.db.getRepository<any>('uiSchemas');
|
const uiSchemas = this.db.getRepository<any>('uiSchemas');
|
||||||
|
@ -8,7 +8,7 @@ export { default as storageTypes } from './storages';
|
|||||||
|
|
||||||
export default class PluginFileManager extends Plugin {
|
export default class PluginFileManager extends Plugin {
|
||||||
storageType() {
|
storageType() {
|
||||||
return process.env.DEFAULT_STORAGE_TYPE ?? 'local';
|
return 'local';
|
||||||
}
|
}
|
||||||
|
|
||||||
async loadStorages(options?: { transaction: any }) {
|
async loadStorages(options?: { transaction: any }) {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Plugin } from '@nocobase/client';
|
import { Plugin } from '@nocobase/client';
|
||||||
|
|
||||||
class UsersPlugin extends Plugin {
|
export class PluginUsersClient extends Plugin {
|
||||||
async load() {}
|
async load() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default UsersPlugin;
|
export default PluginUsersClient;
|
||||||
|
@ -3,29 +3,10 @@ import { Plugin } from '@nocobase/server';
|
|||||||
import { parse } from '@nocobase/utils';
|
import { parse } from '@nocobase/utils';
|
||||||
import { resolve } from 'path';
|
import { resolve } from 'path';
|
||||||
|
|
||||||
import { namespace } from './';
|
|
||||||
import * as actions from './actions/users';
|
import * as actions from './actions/users';
|
||||||
import { enUS, zhCN } from './locale';
|
|
||||||
|
|
||||||
export interface UserPluginConfig {
|
|
||||||
name?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export default class UsersPlugin extends Plugin<UserPluginConfig> {
|
|
||||||
constructor(app, options) {
|
|
||||||
super(app, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
export default class PluginUsersServer extends Plugin {
|
||||||
async beforeLoad() {
|
async beforeLoad() {
|
||||||
this.app.i18n.addResources('zh-CN', namespace, zhCN);
|
|
||||||
this.app.i18n.addResources('en-US', namespace, enUS);
|
|
||||||
const cmd = this.app.findCommand('install');
|
|
||||||
if (cmd) {
|
|
||||||
cmd.requiredOption('-u, --root-username <rootUsername>', '', process.env.INIT_ROOT_USERNAME);
|
|
||||||
cmd.requiredOption('-e, --root-email <rootEmail>', '', process.env.INIT_ROOT_EMAIL);
|
|
||||||
cmd.requiredOption('-p, --root-password <rootPassword>', '', process.env.INIT_ROOT_PASSWORD);
|
|
||||||
cmd.option('-n, --root-nickname <rootNickname>');
|
|
||||||
}
|
|
||||||
this.db.registerOperators({
|
this.db.registerOperators({
|
||||||
$isCurrentUser(_, ctx) {
|
$isCurrentUser(_, ctx) {
|
||||||
return {
|
return {
|
||||||
@ -120,8 +101,8 @@ export default class UsersPlugin extends Plugin<UserPluginConfig> {
|
|||||||
getInstallingData(options: any = {}) {
|
getInstallingData(options: any = {}) {
|
||||||
const { INIT_ROOT_NICKNAME, INIT_ROOT_PASSWORD, INIT_ROOT_EMAIL, INIT_ROOT_USERNAME } = process.env;
|
const { INIT_ROOT_NICKNAME, INIT_ROOT_PASSWORD, INIT_ROOT_EMAIL, INIT_ROOT_USERNAME } = process.env;
|
||||||
const {
|
const {
|
||||||
rootEmail = INIT_ROOT_EMAIL,
|
rootEmail = INIT_ROOT_EMAIL || 'admin@nocobase.com',
|
||||||
rootPassword = INIT_ROOT_PASSWORD,
|
rootPassword = INIT_ROOT_PASSWORD || 'admin123',
|
||||||
rootNickname = INIT_ROOT_NICKNAME || 'Super Admin',
|
rootNickname = INIT_ROOT_NICKNAME || 'Super Admin',
|
||||||
rootUsername = INIT_ROOT_USERNAME || 'nocobase',
|
rootUsername = INIT_ROOT_USERNAME || 'nocobase',
|
||||||
} = options.users || options?.cliArgs?.[0] || {};
|
} = options.users || options?.cliArgs?.[0] || {};
|
||||||
|
Loading…
Reference in New Issue
Block a user