mirror of
https://github.com/strapi/strapi.git
synced 2025-12-16 17:53:53 +00:00
* add possibility to use strapi on a non-root base url path * fix documentation password form * use server.url and admin.url in config Signed-off-by: Pierre Noël <pierre.noel@strapi.io> * update doc proxy Signed-off-by: Pierre Noël <pierre.noel@strapi.io> * move server.url location in config Signed-off-by: Pierre Noël <pierre.noel@strapi.io> * refacto Signed-off-by: Pierre Noël <pierre.noel@strapi.io> * add possibility to put relative urls Signed-off-by: Pierre Noël <pierre.noel@strapi.io> * allow '/' as an admin url + refacto Signed-off-by: Pierre Noël <pierre.noel@strapi.io> * update yarn.lock Signed-off-by: Pierre Noël <petersg83@gmail.com> * refacto Signed-off-by: Pierre Noël <petersg83@gmail.com> * Remove default proxy option Signed-off-by: Alexandre Bodin <bodin.alex@gmail.com> * fix github provider Signed-off-by: Pierre Noël <petersg83@gmail.com> * fix github login Signed-off-by: Pierre Noël <petersg83@gmail.com> * Remove files that should be here Signed-off-by: Alexandre Bodin <bodin.alex@gmail.com> Co-authored-by: Pierre Noël <pierre.noel@strapi.io> Co-authored-by: Alexandre Bodin <bodin.alex@gmail.com>
98 lines
2.5 KiB
JavaScript
98 lines
2.5 KiB
JavaScript
'use strict';
|
|
|
|
const dotenv = require('dotenv');
|
|
|
|
dotenv.config({ path: process.env.ENV_PATH });
|
|
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
|
|
|
|
const os = require('os');
|
|
const path = require('path');
|
|
const _ = require('lodash');
|
|
|
|
const createConfigProvider = require('./config-provider');
|
|
const loadConfigDir = require('./config-loader');
|
|
|
|
const getPrefixedDeps = require('../../utils/get-prefixed-dependencies');
|
|
const loadPolicies = require('../load-policies');
|
|
const loadFunctions = require('../load-functions');
|
|
|
|
const { version: strapiVersion } = require(path.join(__dirname, '../../../package.json'));
|
|
|
|
const CONFIG_PATHS = {
|
|
admin: 'admin',
|
|
api: 'api',
|
|
config: 'config',
|
|
controllers: 'controllers',
|
|
models: 'models',
|
|
plugins: 'plugins',
|
|
policies: 'policies',
|
|
tmp: '.tmp',
|
|
services: 'services',
|
|
static: 'public',
|
|
validators: 'validators',
|
|
views: 'views',
|
|
};
|
|
|
|
const defaultConfig = {
|
|
server: {
|
|
host: process.env.HOST || os.hostname() || 'localhost',
|
|
port: process.env.PORT || 1337,
|
|
cron: { enabled: false },
|
|
admin: { autoOpen: false },
|
|
},
|
|
admin: {},
|
|
middleware: {
|
|
timeout: 1000,
|
|
load: {
|
|
before: ['responseTime', 'logger', 'cors', 'responses', 'gzip'],
|
|
order: [],
|
|
after: ['parser', 'router'],
|
|
},
|
|
settings: {},
|
|
},
|
|
hook: {
|
|
timeout: 1000,
|
|
load: { before: [], order: [], after: [] },
|
|
settings: {},
|
|
},
|
|
routes: {},
|
|
functions: {},
|
|
policies: {},
|
|
};
|
|
|
|
module.exports = (dir, initialConfig = {}) => {
|
|
const { autoReload = false, serveAdminPanel = true } = initialConfig;
|
|
|
|
const pkgJSON = require(path.resolve(dir, 'package.json'));
|
|
|
|
const configDir = path.resolve(dir || process.cwd(), 'config');
|
|
|
|
const rootConfig = {
|
|
launchedAt: Date.now(),
|
|
appPath: dir,
|
|
paths: CONFIG_PATHS,
|
|
serveAdminPanel,
|
|
autoReload,
|
|
environment: process.env.NODE_ENV,
|
|
uuid: _.get(pkgJSON, 'strapi.uuid'),
|
|
info: {
|
|
...pkgJSON,
|
|
strapi: strapiVersion,
|
|
},
|
|
installedPlugins: getPrefixedDeps('strapi-plugin', pkgJSON),
|
|
installedMiddlewares: getPrefixedDeps('strapi-middleware', pkgJSON),
|
|
installedHooks: getPrefixedDeps('strapi-hook', pkgJSON),
|
|
};
|
|
|
|
const baseConfig = {
|
|
...loadConfigDir(configDir),
|
|
policies: loadPolicies(path.resolve(configDir, 'policies')),
|
|
functions: loadFunctions(path.resolve(configDir, 'functions')),
|
|
};
|
|
|
|
const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV);
|
|
const envConfig = loadConfigDir(envDir);
|
|
|
|
return createConfigProvider(_.merge(rootConfig, defaultConfig, baseConfig, envConfig));
|
|
};
|