From c864d2e625bceb18fd66a0ac692e5af8ec83638c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20P=C4=99dzich?= Date: Wed, 24 Jul 2024 16:40:40 +0200 Subject: [PATCH] Create a "hanger" server --- Dockerfile | 7 +++++++ index.mjs | 23 +++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 Dockerfile create mode 100644 index.mjs diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..26117c3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM node:lts-alpine +USER node +WORKDIR /app +ENV NODE_ENV production +COPY --chown=node:node index.mjs ./ +EXPOSE 3000 +CMD ["node", "./index.mjs"] diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..313a0d4 --- /dev/null +++ b/index.mjs @@ -0,0 +1,23 @@ +import { createServer } from 'node:http'; +import { clearInterval, setInterval } from 'node:timers'; + +const server = createServer((req, res) => { + console.log( + `Caught ${req.headers['x-forwarded-for']} on ${req.method} ${req.url}` + ); + + let msg = ':) you are an idiot hahahahaha :)'; + let charIdx = 0; + let intervalId = setInterval(() => { + if (charIdx === msg.length) { + charIdx = 0; + res.write('\n'); + } else { + res.write(msg[charIdx++]); + } + }, 3000); + + res.once('close', () => clearInterval(intervalId)); +}); + +server.listen(3000);