mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
Merge branch 'master' of gitlab.com:MrFry/mrfrys-node-server
This commit is contained in:
commit
c13035a8df
6 changed files with 175 additions and 154 deletions
|
@ -4,5 +4,6 @@ dist
|
|||
stats
|
||||
data
|
||||
publicDirs
|
||||
nextStatic
|
||||
devel
|
||||
.git
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
hr() {
|
||||
if [ -t 0 ]; then
|
||||
printf '\033[0;32m%*s\033[0m\n' "$(tput cols)" '' | tr ' ' '='
|
||||
fi
|
||||
}
|
||||
|
||||
log() {
|
||||
|
@ -80,16 +82,14 @@ touch publicDirs/qminingPublic/version
|
|||
touch publicDirs/qminingPublic/motd
|
||||
|
||||
if [ -z "$(ls -A ./data/dbs)" ]; then
|
||||
log "Making DB-s"
|
||||
pushd src/standaloneUtils
|
||||
NS_LOGLEVEL=2 node dbSetup.js
|
||||
mv *.db ../../data/dbs
|
||||
popd
|
||||
fi
|
||||
|
||||
log "Disabling next telemetry"
|
||||
npx --yes next telemetry disable
|
||||
|
||||
hr
|
||||
echo "Done!"
|
||||
echo "npm start {loglevel}"
|
||||
echo "To start server"
|
||||
hr
|
||||
log "Done!"
|
||||
|
|
|
@ -21,14 +21,18 @@ elif [ "$1" == "stop" ]; then
|
|||
docker stop $(getContainerId)
|
||||
elif [ "$1" == "start" ]; then
|
||||
# --entrypoint bash \
|
||||
docker start -i $(getContainerId)
|
||||
scripts/setup.sh
|
||||
docker start $(getContainerId)
|
||||
elif [ "$1" == "run" ]; then
|
||||
# --entrypoint bash \
|
||||
docker run -it \
|
||||
-p 8080:80 \
|
||||
--mount src="$(pwd)/stats",target=/server/stats,type=bind \
|
||||
--mount src="$(pwd)/data",target=/server/data,type=bind \
|
||||
--mount src="$(pwd)/publicDirs",target=/server/publicDirs,type=bind \
|
||||
scripts/setup.sh
|
||||
|
||||
docker run \
|
||||
--network host \
|
||||
--mount src="$(pwd)/stats",target="/server/stats",type=bind \
|
||||
--mount src="$(pwd)/data",target="/server/data",type=bind \
|
||||
--mount src="$(pwd)/publicDirs",target="/server/publicDirs",type=bind \
|
||||
--mount src="/etc/letsencrypt",target="/etc/letsencrypt",type=bind \
|
||||
qminer/mrfrys-node-server
|
||||
elif [ "$1" == "bash" ]; then
|
||||
docker exec -it $(getContainerId) /bin/bash
|
||||
|
|
|
@ -74,7 +74,8 @@ const filterFromDailyStats = [
|
|||
'.xml',
|
||||
'.aspx',
|
||||
'/questionDbs/',
|
||||
'/chatFiles/'
|
||||
'/chatFiles/',
|
||||
'rss'
|
||||
]
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
|
@ -291,9 +292,9 @@ function pCols(cols, rowTitles, colorNames, firstRowColor) {
|
|||
|
||||
// ------------------------------------------------------------------------------
|
||||
printHeader('Daily stats')
|
||||
|
||||
const dailyStats = readJSON(`${dir}stats/vstats`)
|
||||
function preProcessDailyStats(obj) {
|
||||
try {
|
||||
const dailyStats = readJSON(`${dir}stats/vstats`)
|
||||
function preProcessDailyStats(obj) {
|
||||
const formatted = Object.keys(obj).reduce((acc, key) => {
|
||||
const includes = filterFromDailyStats.some((keyword) => {
|
||||
return key.toLowerCase().includes(keyword.toLowerCase())
|
||||
|
@ -335,12 +336,12 @@ function preProcessDailyStats(obj) {
|
|||
return 0
|
||||
}
|
||||
})
|
||||
}
|
||||
function getDailyStat(day) {
|
||||
}
|
||||
function getDailyStat(day) {
|
||||
return preProcessDailyStats(dailyStats[getDayIndex(day)])
|
||||
}
|
||||
}
|
||||
|
||||
pCols(
|
||||
pCols(
|
||||
[
|
||||
...[...Array(colsToPrint).keys()].map((x) => {
|
||||
return getDailyStat(-x)
|
||||
|
@ -348,12 +349,16 @@ pCols(
|
|||
],
|
||||
null,
|
||||
true
|
||||
)
|
||||
)
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
printHeader('User id test solving')
|
||||
const userIdTestSolving = readJSON(`${dir}stats/idvstats`)
|
||||
function preProcessUIdTestSolving(obj, minLength) {
|
||||
try {
|
||||
const userIdTestSolving = readJSON(`${dir}stats/idvstats`)
|
||||
function preProcessUIdTestSolving(obj, minLength) {
|
||||
if (!obj) {
|
||||
return '0'
|
||||
}
|
||||
|
@ -366,15 +371,15 @@ function preProcessUIdTestSolving(obj, minLength) {
|
|||
} else {
|
||||
return Object.keys(obj).length.toString()
|
||||
}
|
||||
}
|
||||
function getUserIdTestSolving(day) {
|
||||
}
|
||||
function getUserIdTestSolving(day) {
|
||||
return [
|
||||
getDayName(day),
|
||||
preProcessUIdTestSolving(userIdTestSolving[getDayIndex(day)]),
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
pCols(
|
||||
pCols(
|
||||
[
|
||||
...[...Array(colsToPrint).keys()].map((x) => {
|
||||
return getUserIdTestSolving(-x)
|
||||
|
@ -383,20 +388,24 @@ pCols(
|
|||
null,
|
||||
false,
|
||||
'green'
|
||||
)
|
||||
)
|
||||
} catch(e) {
|
||||
console.error(e)
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
printHeader('User id requests')
|
||||
const clientIdTestSolving = readJSON(`${dir}stats/uvstats`)
|
||||
function getUserIdRequests(day) {
|
||||
try {
|
||||
const clientIdTestSolving = readJSON(`${dir}stats/uvstats`)
|
||||
function getUserIdRequests(day) {
|
||||
return [
|
||||
getDayName(day),
|
||||
preProcessUIdTestSolving(clientIdTestSolving[getDayIndex(day)]),
|
||||
preProcessUIdTestSolving(clientIdTestSolving[getDayIndex(day)], 5),
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
pCols(
|
||||
pCols(
|
||||
[
|
||||
...[...Array(colsToPrint).keys()].map((x) => {
|
||||
return getUserIdRequests(-x)
|
||||
|
@ -405,20 +414,20 @@ pCols(
|
|||
['', 'All', 'More than 5'],
|
||||
false,
|
||||
'green'
|
||||
)
|
||||
)
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
printHeader('Daily data count')
|
||||
const dailyDataCount = readFile(`${dir}stats/dailyDataCount`)
|
||||
function getDailyDataCount(count) {
|
||||
// ------------------------------------------------------------------------------
|
||||
printHeader('Daily data count')
|
||||
const dailyDataCount = readFile(`${dir}stats/dailyDataCount`)
|
||||
function getDailyDataCount(count) {
|
||||
return [...Array(count).keys()].map((x) => {
|
||||
return JSON.parse(head(tail(dailyDataCount, x + 1), 1))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
printLastDataCount(getDailyDataCount(colsToPrint))
|
||||
printLastDataCount(getDailyDataCount(colsToPrint))
|
||||
|
||||
function printLastDataCount(data) {
|
||||
function printLastDataCount(data) {
|
||||
const res = [...Array(colsToPrint).keys()].map((x) => {
|
||||
return [getDayName(-x)]
|
||||
})
|
||||
|
@ -429,10 +438,14 @@ function printLastDataCount(data) {
|
|||
})
|
||||
|
||||
pCols(res, ['', 'Users', 'Subjects', 'Questions'], false, 'green')
|
||||
}
|
||||
} catch(e) {
|
||||
console.error(e)
|
||||
}
|
||||
// ------------------------------------------------------------------------------
|
||||
printHeader('Daily script install / update check count')
|
||||
function getDailyScriptStat(day) {
|
||||
try {
|
||||
function getDailyScriptStat(day) {
|
||||
const log =
|
||||
!day || day === 0
|
||||
? readFile(`${dir}stats/vlogs/log`)
|
||||
|
@ -446,10 +459,13 @@ function getDailyScriptStat(day) {
|
|||
countLinesMatching(log, '?install').toString(),
|
||||
countLinesMatching(log, '?up').toString(),
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
const installs = [...Array(colsToPrint).keys()].map((x) => {
|
||||
const installs = [...Array(colsToPrint).keys()].map((x) => {
|
||||
return getDailyScriptStat(-x)
|
||||
})
|
||||
})
|
||||
|
||||
pCols(installs, ['', 'Installs', 'Updates'], false, 'green')
|
||||
pCols(installs, ['', 'Installs', 'Updates'], false, 'green')
|
||||
} catch(e) {
|
||||
console.error(e)
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
scripts/make.sh
|
||||
npm run start
|
||||
npm run start > /dev/null
|
||||
|
|
|
@ -24,8 +24,8 @@ console.log('Current working directory: ' + process.cwd())
|
|||
const startHTTPS = true
|
||||
const isRoot = process.getuid && process.getuid() === 0
|
||||
|
||||
const port = isRoot ? 80 : 8080
|
||||
const httpsport = isRoot ? 443 : 5001
|
||||
const port = 8080
|
||||
const httpsport = 5001
|
||||
|
||||
// import os from 'os'
|
||||
// os.setPriority(10)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue