Compare commits

..

4 Commits

Author SHA1 Message Date
b1ek 42c6524c27
add upload limit text 2023-03-04 15:52:59 +10:00
b1ek a108d24f0f
get upload limit to work 2023-03-04 15:52:51 +10:00
b1ek df0dbf281c
restart containers 2023-03-04 15:47:59 +10:00
b1ek f2e341c9ea
add gulp hot reload 2023-03-04 15:47:29 +10:00
6 changed files with 61 additions and 20 deletions

View File

@ -7,4 +7,7 @@ WORKDIR /opt/code
RUN rm -rf node_modules package_lock.json && \
npm install
# global deps
RUN npm i -g gulp-cli
CMD [ "/bin/sh", "-c", "/opt/code/run_instance.sh" ]

View File

@ -8,4 +8,7 @@ services:
ports:
- '${APP_PORT:-8080}:${APP_PORT:-8080}'
volumes:
- './usercontent:/opt/code/usercontent'
- './usercontent:/opt/code/usercontent'
# uncomment this for debug mode
#- './:/opt/code'
restart: always

36
gulpfile.js Normal file
View File

@ -0,0 +1,36 @@
const gulp = require('gulp');
const { spawn } = require('child_process');
const log = require('fancy-log');
const spawn_dev = () => {
return spawn('node', ['--inspect=0.0.0.0', 'index.js'], {stdio: 'inherit'});
}
let node;
let shutdown = false;
gulp.task('run_dev', (cb) => {
log('Running application in development mode...');
node = spawn_dev();
function watch(cb) {
if (shutdown == true) return cb();
log('Files changed, restarting node...');
node.kill('SIGTERM');
node = spawn_dev();
cb();
}
gulp.watch('.', { events: 'all' }, watch);
cb();
});
function shutdown_f() {
shutdown = true;
node.kill('SIGINT');
node.kill('SIGTERM');
}
process.on('SIGINT', shutdown_f);
process.on('SIGTERM', shutdown_f);

View File

@ -6,8 +6,7 @@ const glob = require('glob');
const root = path.join(process.cwd(), '/usercontent');
const { MAXFILES } = process.env;
console.log(root);
// console.log(root);
let initalized = false;
@ -15,21 +14,17 @@ let submitted = 0;
async function init() {
if (initalized) return;
glob(root + '/**', undefined, (err, files) => {
if (err) {
console.error(err);
return;
}
files.filter(file => {
return !file.startsWith('.');
}).forEach(file => {
submitted++;
});
initalized = true;
});
}
function submitted() {return submitted;}
let files = await glob(root + '/*');
files.filter(file => {return !file.startsWith('.')})
.forEach(file => {
submitted++;
return;
});
}
init();
function get_submitted() {return submitted;}
const make_id = () => {
return crypto.randomBytes(8).toString('hex');
@ -53,4 +48,4 @@ async function create(data) {
return id;
}
module.exports = { get, write, create, make_id, submitted };
module.exports = { get, write, create, make_id, submitted: get_submitted, init };

View File

@ -15,7 +15,11 @@
"dotenv": "^16.0.3",
"express": "^4.18.2",
"express-async-handler": "^1.2.0",
"fancy-log": "^2.0.0",
"glob": "^9.2.1",
"pug": "^3.0.2"
},
"devDependencies": {
"gulp": "^4.0.2"
}
}

View File

@ -8,7 +8,7 @@ block content
if (!exceeded)
input(type='submit' value='Upload!')
if (exceeded)
p(style='color:darkred;font-weight:bold;font-size:9pt')
p(style='color:darkred;font-weight:bold;font-size:9pt' align='center')
| Max uploads limit exceeded. No more uploads would be accepted.
br
| Contact site administrator so they would increase the limit or delete some uploads.
| Contact site administrator so they would increase the limit or delete some upload.