Commit 6510b08e authored by CarlosGC1989's avatar CarlosGC1989
Browse files

Commit inicial

parent 1912b927
Loading
Loading
Loading
Loading

Dockerfile

0 → 100644
+16 −0
Original line number Diff line number Diff line
FROM node:alpine

ENV \
	DIRPATH="/opt/redmic" \
	SITE_PORT="3000" \
	SITE_PATH="content"

WORKDIR ${DIRPATH}

COPY ./ ./

RUN npm install

EXPOSE ${SITE_PORT}

ENTRYPOINT node app --port=${SITE_PORT} --path=${SITE_PATH}

app/index.js

0 → 100644
+52 −0
Original line number Diff line number Diff line
var packageJson = require('../package.json'),
	version = packageJson.version,
	description = packageJson.description,

	params = require('./params')(version),

	logging = require('./logging'),
	logger = logging.logger,

	sitePath = params.path,
	port = params.port,
	debug = params.debug,

	path = require('path'),
	express = require('express'),
	http = require('http'),
	app = express();

logging.registerAppLogger(params, app);

function exposeContents(directoryName) {

	var pathOptions = {
		maxAge: 600000,
		index: false
	};

	var exposedPath = path.join(__dirname, '..', directoryName),
		servedPath = express['static'](exposedPath, pathOptions);

	app.use(servedPath)
		.use('/' + directoryName, servedPath);
}

exposeContents(sitePath);
exposeContents('index.js');
exposeContents('index.css');

app.set('view engine', 'pug')
	.set('views', path.join(__dirname, '..', 'views'))
	.get('/', function (req, res) {
		res.render('index', {
			path: sitePath
		});
	});

http.createServer(app).listen(port, function() {

	logger.verbose(description + ' v%s', version);
	logger.verbose('Listening on port %d', port);
	debug && logger.verbose('Debug mode enabled');
});

app/logging.js

0 → 100644
+41 −0
Original line number Diff line number Diff line
var morgan = require('morgan'),
	winston = require('winston');

var logConsoleTransport = new (winston.transports.Console)({
	level: 'silly',
	colorize: true,
	timestamp: true,
	prettyPrint: true,
	humanReadableUnhandledException: true
});

var logger = new (winston.Logger)({
	transports: [
		logConsoleTransport
	],
	exceptionHandlers: [
		logConsoleTransport
	],
	exitOnError: false
});

function registerLogger(params, app) {

	app.use(morgan('dev', {
		skip: function(req, res) {

			return params.debug ? res.statusCode < 400 : false;
		},
		stream: {
			write: function(msg) {

				logger.info(msg.slice(0, -1));
			}
		}
	}));
}

module.exports = {
	registerAppLogger: registerLogger,
	logger: logger
};

app/params.js

0 → 100644
+17 −0
Original line number Diff line number Diff line
var commander = require('commander');

module.exports = function(version) {

	commander
		.version(version)
		.option('-P, --path <value>', null)
		.option('-d, --debug', null)
		.option('-p, --port <n>', null, 3000)
		.parse(process.argv);

	return {
		path: commander.path,
		debug: commander.debug || false,
		port: commander.port
	};
};

index.css

0 → 100644
+62 −0
Original line number Diff line number Diff line
body {
	min-width: 220px;
	margin: 0;
}

a {
	text-decoration: none;
	color: inherit;
}

.page-title {
	text-align: center;
	margin: 20px 0;
}

.page-title h1 {
	margin: 0;
}

.box-container {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	padding: 10px;
}

.box {
	display: flex;
	flex-direction: column;
	width: 180px;
	min-width: 180px;
	height: 300px;
	margin: 10px;
	border-radius: 10px;
	border: solid 2px lightgray;
	background-color: floralwhite;
}

.box-title {
	display: flex;
	justify-content: space-around;
	align-items: center;
	height: 40%;
	padding: 5px;
	border-bottom: solid 2px lightgray;
}

.box-title img {
	max-width: 100px;
	max-height: 100px;
}

.box-content {
	height: 60%;
	padding: 5px;
	overflow: auto;
}

.box-content h2 {
	margin: 0;
	text-align: center;
}
 No newline at end of file
Loading