Skip to content

Commit

Permalink
Merge branch 'AndreiArdelean1-feature/base-url' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
alseambusher committed May 20, 2021
2 parents 64b5f0f + d62d5cd commit a7a85f0
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 18 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ Get latest `node` from [here](https://nodejs.org/en/download/current/). Then,
npm install -g crontab-ui
crontab-ui

If you need to set/use an alternative host or port, you may do so by setting an environment variable before starting the process:
If you need to set/use an alternative host, port OR base url, you may do so by setting an environment variable before starting the process:

HOST=0.0.0.0 PORT=9000 crontab-ui
HOST=0.0.0.0 PORT=9000 BASE_URL=/alse crontab-ui

By default, db, backups and logs are stored in the installation directory. It is **recommended** that it be overriden using env variable `CRON_DB_PATH`. This is particularly helpful in case you **update** crontab-ui.

Expand Down
14 changes: 9 additions & 5 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ var mime = require('mime-types');
var fs = require('fs');
var busboy = require('connect-busboy'); // for file upload

// base url
var base_url = require("./routes").base_url
app.locals.baseURL = base_url

// basic auth
var BASIC_AUTH_USER = process.env.BASIC_AUTH_USER;
var BASIC_AUTH_PWD = process.env.BASIC_AUTH_PWD;
Expand Down Expand Up @@ -43,10 +47,10 @@ app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
app.use(busboy()); // to support file uploads

// include all folders
app.use(express.static(__dirname + '/public'));
app.use(express.static(__dirname + '/public/css'));
app.use(express.static(__dirname + '/public/js'));
app.use(express.static(__dirname + '/config'));
app.use(base_url, express.static(__dirname + '/public'));
app.use(base_url, express.static(__dirname + '/public/css'));
app.use(base_url, express.static(__dirname + '/public/js'));
app.use(base_url, express.static(__dirname + '/config'));
app.set('views', __dirname + '/views');

// set host to 127.0.0.1 or the value set by environment var HOST
Expand Down Expand Up @@ -273,5 +277,5 @@ app.listen(app.get('port'), app.get('host'), function() {

crontab.reload_db();
}
console.log("Crontab UI is running at http://" + app.get('host') + ":" + app.get('port'));
console.log("Crontab UI is running at http://" + app.get('host') + ":" + app.get('port') + base_url);
});
26 changes: 17 additions & 9 deletions routes.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
exports.routes = {
"root" : "/",
"save" : "/save",
"run" : "/runjob",
"crontab" : "/crontab",
"stop" : "/stop",
"start" : "/start",
// base url
var base_url = process.env.BASE_URL ?? '';
base_url = base_url.replace(/\/+$/, "").trim();

exports.base_url = base_url;

var routes = {
"root": "/",
"save": "/save",
"run": "/runjob",
"crontab": "/crontab",
"stop": "/stop",
"start": "/start",
"remove": "/remove",
"backup": "/backup",
"restore": "/restore",
Expand All @@ -17,5 +23,7 @@ exports.routes = {
"stdout": "/stdout",
};

exports.relative = Object.keys(exports.routes).reduce((p, c) => ({...p, [c]: exports.routes[c].replace(/^\//, '')}), {});
exports.relative["root"] = ".";
exports.routes = Object.keys(routes).reduce((p, c) => ({...p, [c]: base_url + routes[c]}), {});

exports.relative = Object.keys(routes).reduce((p, c) => ({...p, [c]: routes[c].replace(/^\//, '')}), {});
exports.relative["root"] = base_url;
2 changes: 1 addition & 1 deletion views/index.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<script src="bootstrap.min.js"></script>
<script src="mailconfig.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/v/bs/dt-1.10.12/datatables.min.js"></script>
<link rel="stylesheet" href="bootstrap.min.css" />
<link rel="stylesheet" href="css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.12/css/dataTables.bootstrap.min.css"/>
<script type="text/javascript">
var crontabs = [];
Expand Down
2 changes: 1 addition & 1 deletion views/restore.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<script src="jquery.js"></script>
<script src="script.js"></script>
<script src="bootstrap.min.js"></script>
<link rel="stylesheet" href="bootstrap.min.css" />
<link rel="stylesheet" href="css/bootstrap.min.css" />
<script type="text/javascript">
var crontabs = [];
var routes = [];
Expand Down

0 comments on commit a7a85f0

Please sign in to comment.