Update v1.0.3
Took 54 minutes
This commit is contained in:
parent
641120f7cc
commit
6ec0f82356
@ -1,19 +1,49 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
apt update
|
if [ "$EUID" -ne 0 ]
|
||||||
apt install
|
then
|
||||||
|
echo "Please run as root!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
apt install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox -y
|
|
||||||
apt purge nodejs npm -y
|
|
||||||
curl -fsSL https://deb.nodesource.com/setup_19.x | sudo bash -
|
|
||||||
apt install -y nodejs
|
|
||||||
apt install gcc g++ make -y
|
|
||||||
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
|
|
||||||
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
|
||||||
apt update
|
apt update
|
||||||
apt install yarn git cmake make chromium-browser unclutter -y
|
|
||||||
apt upgrade -y
|
apt install --no-install-recommends ufw xserver-xorg x11-xserver-utils xinit openbox -y
|
||||||
|
apt install git gcc g++ make cmake chromium-browser unclutter -y
|
||||||
|
apt purge nodejs npm -y
|
||||||
|
|
||||||
|
# XServer
|
||||||
echo "allowed_users=anybody" >/etc/X11/Xwrapper.config
|
echo "allowed_users=anybody" >/etc/X11/Xwrapper.config
|
||||||
cp autostart.config /etc/xdg/openbox/autostart
|
cp autostart.config /etc/xdg/openbox/autostart
|
||||||
|
|
||||||
|
|
||||||
|
# Keys and stuff ---
|
||||||
|
# Nodejs
|
||||||
|
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash
|
||||||
|
|
||||||
|
# Yarn
|
||||||
|
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
|
||||||
|
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
||||||
|
|
||||||
|
# MongoDB
|
||||||
|
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
|
||||||
|
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
|
||||||
|
|
||||||
|
# End Keys and stuff ---
|
||||||
|
|
||||||
|
|
||||||
|
# Firewall
|
||||||
|
ufw allow ssh
|
||||||
|
ufw allow 3000/tcp
|
||||||
|
ufw allow 3015/tcp
|
||||||
|
ufw --force enable
|
||||||
|
|
||||||
|
# Final update
|
||||||
|
apt update
|
||||||
|
apt install nodejs yarn mongodb-org -y
|
||||||
|
apt upgrade -y
|
||||||
|
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable mongod
|
||||||
|
|
||||||
reboot now
|
reboot now
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#settings {
|
#settings {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(4, calc(90% / 4));
|
grid-template-columns: repeat(4, calc(85% / 4));
|
||||||
grid-template-rows: repeat(5, calc(90% / 5));
|
grid-template-rows: repeat(4, calc(85% / 4));
|
||||||
grid-gap: 10% 5%;
|
grid-gap: 5% 5%;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
@ -5,4 +5,5 @@ export enum RequestType {
|
|||||||
JOB = "JOB",
|
JOB = "JOB",
|
||||||
STARTFILL = "STARTFILL",
|
STARTFILL = "STARTFILL",
|
||||||
STOPFILL = "STOPFILL",
|
STOPFILL = "STOPFILL",
|
||||||
|
DOWNLOAD_DRINKS = "DOWNLOAD_DRINKS"
|
||||||
}
|
}
|
17
src/Utils.ts
17
src/Utils.ts
@ -1,6 +1,7 @@
|
|||||||
import * as dns from "dns";
|
import * as dns from "dns";
|
||||||
import * as fs from "fs";
|
import * as fs from "fs";
|
||||||
import * as https from 'https';
|
import * as https from 'https';
|
||||||
|
import path from "path";
|
||||||
|
|
||||||
export class Utils {
|
export class Utils {
|
||||||
public static checkInternet(): Promise<boolean> {
|
public static checkInternet(): Promise<boolean> {
|
||||||
@ -22,7 +23,14 @@ export class Utils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static downloadImage(url, filepath) {
|
static downloadImage(url, filepath) {
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
if (!fs.existsSync(path.dirname(filepath)))
|
||||||
|
fs.mkdirSync(path.dirname(filepath));
|
||||||
|
} catch (e) {
|
||||||
|
|
||||||
|
}
|
||||||
https.get(url, (res) => {
|
https.get(url, (res) => {
|
||||||
if (res.statusCode === 200) {
|
if (res.statusCode === 200) {
|
||||||
res.pipe(fs.createWriteStream(filepath))
|
res.pipe(fs.createWriteStream(filepath))
|
||||||
@ -38,19 +46,16 @@ export class Utils {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static deleteImage( id )
|
static deleteImage(id) {
|
||||||
{
|
|
||||||
try {
|
try {
|
||||||
fs.unlinkSync("./public/images/" + id + ".png");
|
fs.unlinkSync("./public/images/" + id + ".png");
|
||||||
} catch( e )
|
} catch (e) {
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static checkForImage( id )
|
static checkForImage(id) {
|
||||||
{
|
|
||||||
return fs.existsSync("./public/images/" + id + ".png");
|
return fs.existsSync("./public/images/" + id + ".png");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ export class Database {
|
|||||||
public static connect(): Promise<void> {
|
public static connect(): Promise<void> {
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
await Mongoose.connect("mongodb://localhost:27017/iTender?retryWrites=true");
|
await Mongoose.connect("mongodb://127.0.0.1:27017/iTender?retryWrites=true");
|
||||||
log("Connected to Database");
|
log("Connected to Database");
|
||||||
/*if (Mongoose.connection.readyState == Mongoose.ConnectionStates.connected) {
|
/*if (Mongoose.connection.readyState == Mongoose.ConnectionStates.connected) {
|
||||||
resolve();
|
resolve();
|
||||||
|
@ -357,11 +357,12 @@ export class iTender {
|
|||||||
|
|
||||||
// Download thumbnail
|
// Download thumbnail
|
||||||
if (!Utils.checkForImage(remote._id)) {
|
if (!Utils.checkForImage(remote._id)) {
|
||||||
|
let url = "https://itender.iif.li/images/" + remote._id + ".png";
|
||||||
try {
|
try {
|
||||||
await Utils.downloadImage("https://itender.iif.li/images/" + remote._id + ".png", "./public/images/" + drink._id + ".png")
|
await Utils.downloadImage(url, "./public/images/" + drink._id + ".png")
|
||||||
log("Drink " + remote.name + "'s Thumbnail downloaded");
|
log("Drink " + remote.name + "'s Thumbnail downloaded");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log("Drink " + remote.name + " failed to download thumbnail!\n" + e);
|
log("Drink " + remote.name + " failed to download thumbnail! (" + url + ") | " + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,6 +145,11 @@ router.ws('/', async (ws, req, next) => {
|
|||||||
WebSocketHandler.answerRequest(msg.data["type"] as RequestType, iTender.currentJob);
|
WebSocketHandler.answerRequest(msg.data["type"] as RequestType, iTender.currentJob);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case RequestType.DOWNLOAD_DRINKS: {
|
||||||
|
await iTender.refreshFromServer();
|
||||||
|
WebSocketHandler.answerRequest(msg.data["type"] as RequestType, "ok");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -102,6 +102,13 @@ function setupOnClickEvents() {
|
|||||||
|
|
||||||
WebWebSocketHandler.request(RequestType.CONTAINERS).then(Setup.onContainerUpdate);
|
WebWebSocketHandler.request(RequestType.CONTAINERS).then(Setup.onContainerUpdate);
|
||||||
|
|
||||||
|
|
||||||
|
// Settings Btns
|
||||||
|
const downloadDrinks = document.getElementById("settings_refreshDrinks") as HTMLButtonElement;
|
||||||
|
downloadDrinks.onclick = () => {
|
||||||
|
WebWebSocketHandler.request(RequestType.DOWNLOAD_DRINKS);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function load() {
|
function load() {
|
||||||
|
@ -54,5 +54,6 @@ block settings
|
|||||||
button.btn.btn-primary#settings_refreshDrinks Getränke herunterladen
|
button.btn.btn-primary#settings_refreshDrinks Getränke herunterladen
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
block main
|
block main
|
||||||
// Main is build dynamically
|
// Main is build dynamically
|
||||||
|
Loading…
x
Reference in New Issue
Block a user