mirror of
https://github.com/seejohnrun/haste-server.git
synced 2024-11-01 03:21:21 +00:00
move creating the config file to a js file
This commit is contained in:
parent
edd428ff37
commit
36c854ef1b
2 changed files with 106 additions and 75 deletions
105
docker-entrypoint.js
Normal file
105
docker-entrypoint.js
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
const { promisify } = require("util");
|
||||||
|
const {
|
||||||
|
HOST,
|
||||||
|
PORT,
|
||||||
|
KEY_LENGTH,
|
||||||
|
MAX_LENGTH,
|
||||||
|
STATIC_MAX_AGE,
|
||||||
|
RECOMPRESS_STATIC_ASSETS,
|
||||||
|
STORAGE_TYPE,
|
||||||
|
STORAGE_HOST,
|
||||||
|
STORAGE_PORT,
|
||||||
|
STORAGE_EXPIRE_SECONDS,
|
||||||
|
STORAGE_DB,
|
||||||
|
STORAGE_AWS_BUCKET,
|
||||||
|
STORAGE_AWS_REGION,
|
||||||
|
STORAGE_PG_PASSWORD,
|
||||||
|
STORAGE_PG_USERNAME,
|
||||||
|
LOGGING_LEVEL,
|
||||||
|
LOGGING_TYPE,
|
||||||
|
LOGGING_COLORIZE,
|
||||||
|
KEYGENERATOR_TYPE,
|
||||||
|
KEY_GENERATOR_KEYSPACE,
|
||||||
|
RATE_LIMITS_NORMAL_TOTAL_REQUESTS,
|
||||||
|
RATE_LIMITS_NORMAL_EVERY_SECONDS,
|
||||||
|
RATE_LIMITS_WHITELIST_TOTAL_REQUESTS,
|
||||||
|
RATE_LIMITS_WHITELIST_EVERY_SECONDS,
|
||||||
|
RATE_LIMITS_WHITELIST,
|
||||||
|
RATE_LIMITS_BLACKLIST_TOTAL_REQUESTS,
|
||||||
|
RATE_LIMITS_BLACKLIST_EVERY_SECONDS,
|
||||||
|
RATE_LIMITS_BLACKLIST,
|
||||||
|
DOCUMENTS,
|
||||||
|
} = process.env;
|
||||||
|
|
||||||
|
const config = {
|
||||||
|
host: HOST,
|
||||||
|
port: PORT,
|
||||||
|
|
||||||
|
keyLength: KEY_LENGTH,
|
||||||
|
|
||||||
|
maxLength: MAX_LENGTH,
|
||||||
|
|
||||||
|
staticMaxAge: STATIC_MAX_AGE,
|
||||||
|
|
||||||
|
recompressStaticAssets: RECOMPRESS_STATIC_ASSETS,
|
||||||
|
|
||||||
|
logging: [
|
||||||
|
{
|
||||||
|
level: LOGGING_LEVEL,
|
||||||
|
type: LOGGING_TYPE,
|
||||||
|
colorize: LOGGING_COLORIZE,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
keyGenerator: {
|
||||||
|
type: KEYGENERATOR_TYPE,
|
||||||
|
keyspace: KEY_GENERATOR_KEYSPACE,
|
||||||
|
},
|
||||||
|
|
||||||
|
rateLimits: {
|
||||||
|
whitelist: RATE_LIMITS_WHITELIST ? RATE_LIMITS_WHITELIST.split(",") : [],
|
||||||
|
blacklist: RATE_LIMITS_BLACKLIST ? RATE_LIMITS_BLACKLIST.split(",") : [],
|
||||||
|
categories: {
|
||||||
|
normal: {
|
||||||
|
totalRequests: RATE_LIMITS_NORMAL_TOTAL_REQUESTS,
|
||||||
|
every: RATE_LIMITS_NORMAL_EVERY_SECONDS,
|
||||||
|
},
|
||||||
|
whitelist:
|
||||||
|
RATE_LIMITS_WHITELIST_EVERY_SECONDS ||
|
||||||
|
RATE_LIMITS_WHITELIST_TOTAL_REQUESTS
|
||||||
|
? {
|
||||||
|
totalRequests: RATE_LIMITS_WHITELIST_TOTAL_REQUESTS,
|
||||||
|
every: RATE_LIMITS_WHITELIST_EVERY_SECONDS,
|
||||||
|
}
|
||||||
|
: null,
|
||||||
|
blacklist:
|
||||||
|
RATE_LIMITS_BLACKLIST_EVERY_SECONDS ||
|
||||||
|
RATE_LIMITS_BLACKLIST_TOTAL_REQUESTS
|
||||||
|
? {
|
||||||
|
totalRequests: RATE_LIMITS_WHITELIST_TOTAL_REQUESTS,
|
||||||
|
every: RATE_LIMITS_BLACKLIST_EVERY_SECONDS,
|
||||||
|
}
|
||||||
|
: null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
storage: {
|
||||||
|
type: STORAGE_TYPE,
|
||||||
|
host: STORAGE_HOST,
|
||||||
|
port: STORAGE_PORT,
|
||||||
|
expire: STORAGE_EXPIRE_SECONDS,
|
||||||
|
bucket: STORAGE_AWS_BUCKET,
|
||||||
|
region: STORAGE_AWS_REGION,
|
||||||
|
connectionUrl: `postgres://${STORAGE_PG_USERNAME}:${STORAGE_PG_PASSWORD}@${STORAGE_HOST}:${STORAGE_PORT}/${STORAGE_DB}`,
|
||||||
|
db: STORAGE_DB,
|
||||||
|
},
|
||||||
|
|
||||||
|
documents: DOCUMENTS
|
||||||
|
? DOCUMENTS.split(",").reduce((acc, item) => {
|
||||||
|
const keyAndValueArray = item.replace(/\s/g, "").split("=");
|
||||||
|
return { ...acc, [keyAndValueArray[0]]: keyAndValueArray[1] };
|
||||||
|
}, {})
|
||||||
|
: null,
|
||||||
|
};
|
||||||
|
|
||||||
|
console.log(JSON.stringify(config));
|
|
@ -3,81 +3,7 @@
|
||||||
# We use this file to translate environmental variables to .env files used by the application
|
# We use this file to translate environmental variables to .env files used by the application
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
function create_document_string () {
|
|
||||||
IFS=',' read -ra doc_array <<< "$DOCUMENTS"
|
|
||||||
document_string="{"
|
|
||||||
|
|
||||||
for i in "${doc_array[@]}"
|
|
||||||
do
|
|
||||||
IFS='=' read -ra document <<< "$i"
|
|
||||||
document_string+="\"${document[0]}\": \"${document[1]}\","
|
|
||||||
done
|
|
||||||
|
|
||||||
# Remove trailing ","
|
|
||||||
[[ "$document_string" == *, ]] && document_string=${document_string::${#document_string}-1}
|
|
||||||
document_string+="}"
|
|
||||||
echo $document_string
|
|
||||||
}
|
|
||||||
|
|
||||||
document_string=$(create_document_string)
|
|
||||||
|
|
||||||
echo "
|
|
||||||
{
|
|
||||||
|
|
||||||
\"host\": \"$HOST\",
|
|
||||||
\"port\": ${PORT},
|
|
||||||
|
|
||||||
\"keyLength\": $KEY_LENGTH,
|
|
||||||
|
|
||||||
\"maxLength\": $MAX_LENGTH,
|
|
||||||
|
|
||||||
\"staticMaxAge\": $STATIC_MAX_AGE,
|
|
||||||
|
|
||||||
\"recompressStaticAssets\": $RECOMPRESS_STATIC_ASSETS,
|
|
||||||
|
|
||||||
\"logging\": [
|
|
||||||
{
|
|
||||||
\"level\": \"$LOGGING_LEVEL\",
|
|
||||||
\"type\": \"$LOGGING_TYPE\",
|
|
||||||
\"colorize\": $LOGGING_COLORIZE
|
|
||||||
}
|
|
||||||
],
|
|
||||||
|
|
||||||
\"keyGenerator\": {
|
|
||||||
\"type\": \"$KEYGENERATOR_TYPE\"
|
|
||||||
},
|
|
||||||
|
|
||||||
\"rateLimits\": {
|
|
||||||
|
|
||||||
\"categories\": {
|
|
||||||
\"normal\": {
|
|
||||||
\"totalRequests\": $RATELIMITS_NORMAL_TOTAL_REQUESTS,
|
|
||||||
\"every\": $RATELIMITS_NORMAL_EVERY_SECONDS
|
|
||||||
},
|
|
||||||
\"whitelist\": {
|
|
||||||
\"totalRequests\": $RATELIMITS_WHITELIST_TOTAL_REQUESTS,
|
|
||||||
\"every\": $RATELIMITS_WHITELIST_EVERY_SECONDS
|
|
||||||
},
|
|
||||||
\"blacklist\": {
|
|
||||||
\"totalRequests\": $RATELIMITS_BLACKLIST_TOTAL_REQUESTS,
|
|
||||||
\"every\": $RATELIMITS_BLACKLIST_EVERY_SECONDS
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
\"storage\": {
|
|
||||||
\"type\": \"$STORAGE_TYPE\",
|
|
||||||
\"host\": \"$STORAGE_HOST\",
|
|
||||||
\"port\": $STORAGE_PORT,
|
|
||||||
\"expire\": $STORAGE_EXPIRE_SECONDS,
|
|
||||||
\"db\": $STORAGE_DB
|
|
||||||
},
|
|
||||||
|
|
||||||
\"documents\": $document_string
|
|
||||||
|
|
||||||
}
|
|
||||||
" > config.js
|
|
||||||
|
|
||||||
|
|
||||||
|
node ./docker-entrypoint.js > ./config.js
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
Loading…
Reference in a new issue