dockering complete

This commit is contained in:
Expand-sys 2021-06-16 19:31:41 +10:00
parent 8b32816b9b
commit ff3ee26571
8 changed files with 63 additions and 58 deletions

6
Dockerfile Normal file
View file

@ -0,0 +1,6 @@
# syntax=docker/dockerfile:1
FROM keymetrics/pm2:16-buster
WORKDIR /app
COPY . .
RUN npm install
CMD [ "pm2-runtime", "start", "pm2.json", "--watch"]

View file

@ -1,8 +1,7 @@
const { CCashClient } = require("ccash-client-js"); const { CCashClient } = require("ccash-client-js");
const client = new CCashClient(process.env.BANKAPIURL);
async function postUser(name, password) { async function postUser(name, password) {
const client = new CCashClient(process.env.BANKAPIURL);
console.log(process.env.BANKAPIURL); console.log(process.env.BANKAPIURL);
try { try {
return await client.addUser(name, password); return await client.addUser(name, password);

View file

@ -17,9 +17,6 @@ const mongoose = require("mongoose");
const { CCashClient } = require("ccash-client-js"); const { CCashClient } = require("ccash-client-js");
dotenv.config(); dotenv.config();
const { postUser } = require("./helpers/functions.js"); const { postUser } = require("./helpers/functions.js");
if (process.env.BANKAPIURL) {
const client = new CCashClient(process.env.BANKAPIURL);
}
app.set("views", path.join(__dirname, "views")); app.set("views", path.join(__dirname, "views"));
app.set("view engine", "pug"); app.set("view engine", "pug");
@ -82,6 +79,7 @@ app.post("/setup", async function (req, res) {
process.env.SECURE = true; process.env.SECURE = true;
} }
process.env.BANKAPIURL = url; process.env.BANKAPIURL = url;
console.log(process.env.BANKAPIURL);
fs.writeFileSync( fs.writeFileSync(
".env", ".env",
"BANKAPIURL=" + "BANKAPIURL=" +
@ -91,14 +89,15 @@ app.post("/setup", async function (req, res) {
process.env.SECURE + process.env.SECURE +
"\nSETUP=true" "\nSETUP=true"
); );
fs.mkdirSync("tmp"); fs.writeFileSync("tmp/restart.txt", "");
fs.writeFileSync("tmp/restart.txt"); res.redirect("/");
}); });
app.get("/", async function (req, res) { app.get("/", async function (req, res) {
if (setup == false || !setup) { if (process.env.SETUP == false || !process.env.SETUP) {
res.render("setup"); res.render("setup");
} } else {
const client = new CCashClient(process.env.BANKAPIURL);
let checkalive; let checkalive;
try { try {
checkalive = await client.help(); checkalive = await client.help();
@ -118,10 +117,13 @@ app.get("/", async function (req, res) {
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
alive: alive, alive: alive,
url: process.env.BANKAPIURL,
random: papy(), random: papy(),
}); });
}
}); });
app.get("/BankF", ensureAuthenticated, async function (req, res) { app.get("/BankF", ensureAuthenticated, async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
let successes = req.session.successes; let successes = req.session.successes;
let errors = req.session.errors; let errors = req.session.errors;
req.session.errors = []; req.session.errors = [];
@ -215,6 +217,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
}); });
app.post("/sendfunds", async function (req, res) { app.post("/sendfunds", async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
let { amount, name, senderpass } = req.body; let { amount, name, senderpass } = req.body;
req.session.errors = []; req.session.errors = [];
req.session.successes = []; req.session.successes = [];
@ -236,6 +239,7 @@ app.post("/sendfunds", async function (req, res) {
}); });
app.post("/register", async function (req, res) { app.post("/register", async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
var { name, password, password2 } = req.body; var { name, password, password2 } = req.body;
req.session.errors = []; req.session.errors = [];
req.session.successes = []; req.session.successes = [];
@ -264,6 +268,7 @@ app.post("/register", async function (req, res) {
}); });
app.post("/login", async function (req, res) { app.post("/login", async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
if (req.session.user) { if (req.session.user) {
res.redirect("/"); res.redirect("/");
} }
@ -338,7 +343,9 @@ app.get("/register", function (req, res) {
random: papy(), random: papy(),
}); });
}); });
process.on("SIGINT", function () {
process.exit();
});
app.listen(process.env.PORT || 3000, function () { app.listen(process.env.PORT || 3000, function () {
console.log("Server started on port 3000..."); console.log("Server started on port 3000...");
}); });

12
pm2.json Normal file
View file

@ -0,0 +1,12 @@
{
"name": "ccashfrontend",
"script": "index.js",
"watch": "tmp/restart.txt",
"instances": "1",
"env": {
"NODE_ENV": "development"
},
"env_production": {
"NODE_ENV": "production"
}
}

View file

@ -12,32 +12,11 @@ const got = require("got");
const MemoryStore = require("memorystore")(session); const MemoryStore = require("memorystore")(session);
const fs = require("fs"); const fs = require("fs");
const mongoose = require("mongoose"); const mongoose = require("mongoose");
const { CCashClient } = require("ccash-client-js"); const { CCashClient } = require("ccash-client-js");
const client = new CCashClient(process.env.BANKAPIURL);
console.log("Sen was here"); console.log("Sen was here");
function mongo() {
if (process.env.MONGO) {
console.log(process.env.MONGO);
mongoose.connect(process.env.MONGO, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: true,
});
let db = mongoose.connection;
db.once("open", function () {
console.log("Connected to MongoDB");
});
//check for DB errors
db.on("error", function (err) {
console.log(err);
});
}
}
router.get("/", checkAdmin, function (req, res) { router.get("/", checkAdmin, function (req, res) {
let successes = req.session.successes; let successes = req.session.successes;
req.session.successes = []; req.session.successes = [];
@ -54,6 +33,7 @@ router.get("/", checkAdmin, function (req, res) {
}); });
router.post("/user", checkAdmin, async function (req, res) { router.post("/user", checkAdmin, async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
req.session.errors = []; req.session.errors = [];
req.session.successes = []; req.session.successes = [];
let { name, init_pass, init_bal, password2 } = req.body; let { name, init_pass, init_bal, password2 } = req.body;
@ -86,6 +66,7 @@ router.post("/user", checkAdmin, async function (req, res) {
}); });
router.post("/baluser", checkAdmin, async function (req, res) { router.post("/baluser", checkAdmin, async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
let { name } = req.body; let { name } = req.body;
let balance; let balance;
req.session.successes = []; req.session.successes = [];
@ -104,6 +85,7 @@ router.post("/baluser", checkAdmin, async function (req, res) {
}); });
router.post("/bal", checkAdmin, async function (req, res) { router.post("/bal", checkAdmin, async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
let { name, amount } = req.body; let { name, amount } = req.body;
let patch; let patch;
req.session.successes = []; req.session.successes = [];
@ -119,6 +101,7 @@ router.post("/bal", checkAdmin, async function (req, res) {
}); });
router.post("/userdelete", checkAdmin, async function (req, res) { router.post("/userdelete", checkAdmin, async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
let { name, attempt } = req.body; let { name, attempt } = req.body;
if (attempt != req.session.adminp) { if (attempt != req.session.adminp) {
req.session.errors.push({ msg: "Wrong Admin Password" }); req.session.errors.push({ msg: "Wrong Admin Password" });
@ -136,6 +119,7 @@ router.post("/userdelete", checkAdmin, async function (req, res) {
}); });
router.post("/destroyallsessions", checkAdmin, async function (req, res) { router.post("/destroyallsessions", checkAdmin, async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
let { attempt } = req.body; let { attempt } = req.body;
let adminTest; let adminTest;
req.session.errors = []; req.session.errors = [];
@ -182,6 +166,7 @@ router.post("/changebackend", checkAdmin, async function (req, res) {
}); });
router.post("/close", checkAdmin, async function (req, res) { router.post("/close", checkAdmin, async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
let { attempt } = req.body; let { attempt } = req.body;
let close; let close;
close = client.close(); close = client.close();

View file

@ -10,8 +10,6 @@ const session = require("express-session");
const { postUser } = require("../helpers/functions.js"); const { postUser } = require("../helpers/functions.js");
const { CCashClient } = require("ccash-client-js"); const { CCashClient } = require("ccash-client-js");
const client = new CCashClient(process.env.BANKAPIURL);
router.get("/", ensureAuthenticated, function (req, res) { router.get("/", ensureAuthenticated, function (req, res) {
let successes = req.session.successes; let successes = req.session.successes;
req.session.successes = []; req.session.successes = [];
@ -27,6 +25,7 @@ router.get("/", ensureAuthenticated, function (req, res) {
}); });
router.post("/pass", ensureAuthenticated, async function (req, res) { router.post("/pass", ensureAuthenticated, async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
let { attempt, new_pass, password2 } = req.body; let { attempt, new_pass, password2 } = req.body;
let patch; let patch;
if (attempt == undefined) { if (attempt == undefined) {

View file

@ -9,6 +9,7 @@ block content
h4 Is the server online? h4 Is the server online?
if alive if alive
h4 YES! h4 YES!
h4 #{url}
if !alive if !alive
H4 no :( H4 no :(
h4 #{url}

View file

@ -11,10 +11,6 @@ block content
input.form-control(name='url', type='url') input.form-control(name='url', type='url')
label SSL enabled on front end? leave unchecked if unsure: label SSL enabled on front end? leave unchecked if unsure:
input.form-control(name='secure', type='checkbox') input.form-control(name='secure', type='checkbox')
label Enable marketplace:
input.form-control(name='marketplace', type='checkbox')
label MongoDB url insert if using marketplace
input.form-control(name='mongo', type='text')
br br
input.btn.btn-primary(type='submit',value='Submit') input.btn.btn-primary(type='submit',value='Submit')
br br