summaryrefslogtreecommitdiff
path: root/app/app.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/app.js')
-rw-r--r--app/app.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/app/app.js b/app/app.js
new file mode 100644
index 0000000..d9cd39c
--- /dev/null
+++ b/app/app.js
@@ -0,0 +1,50 @@
+"use strict";
+
+const http = require("http");
+const fs = require("fs");
+
+const argon2 = require("argon2");
+
+const Router = require("./lib/router");
+const Static = require("./lib/static");
+//const Socket = require("./lib/socket");
+//const pipe = require("./lib/pipe");
+//const otp = require("./lib/otp");
+
+if (!fs.existsSync("./logs")) fs.mkdirSync("./logs");
+if (!fs.existsSync("./users")) fs.mkdirSync("./users");
+if (!fs.existsSync("./private")) fs.mkdirSync("./private");
+
+Math.clamp = Math.clamp || ((x,l,h) => Math.max(l,Math.min(x,h)));
+const PORT = Math.clamp(+process.env.PORT||8080, 1, 65535);
+const HOST = process.env.HOST||"0.0.0.0";
+
+const server = http.createServer();
+const stat = new Static("./public");
+//const wss = new Socket(server);
+const app = new Router();
+
+const cors = fn => (req, res, ...rest) => {
+ res.setHeader("Access-Control-Allow-Origin", "*");
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST");
+ fn(req, res, ...rest); };
+
+const sj = (res, data) => {
+ res.setHeader("Content-Type", "application/json");
+ res.end(JSON.stringify(data)); };
+
+//app.get("/", (req, res) => {
+// res.writeHead(302, {"Location":"https://alexishovorka.com/"});
+// res.end();
+//});
+
+//await argon2.hash(password, {type: argon2.argon2id});
+//await argon2.verify(hash, password);
+
+server.on("request", (req, res) => {
+ console.log(`${Date.now()} ${req.method} ${req.url}`);
+ app.route(req, res) || stat.route(req, res);
+});
+
+server.listen(PORT, HOST);
+console.log(`${Date.now()} Running on http://${HOST}:${PORT}`);