more ENV refactoring

This commit is contained in:
Dobromir Popov
2024-04-01 09:50:28 +03:00
parent e5ba7a33a1
commit d47297e2f7
3 changed files with 30 additions and 31 deletions

View File

@ -1,6 +1,6 @@
NODE_TLS_REJECT_UNAUTHORIZED=0 NODE_TLS_REJECT_UNAUTHORIZED=0
# NODE_EXTRA_CA_CERTS=C:\\Users\\popov\\AppData\\Local\\mkcert # NODE_EXTRA_CA_CERTS=C:\\Users\\popov\\AppData\\Local\\mkcert
PROTOCOL=https NEXT_PUBLIC_PROTOCOL=https
NEXT_PUBLIC_HOST=localhost NEXT_PUBLIC_HOST=localhost
NEXT_PUBLIC_PORT=3003 NEXT_PUBLIC_PORT=3003
PUBLIC_URL=https://localhost:3003 PUBLIC_URL=https://localhost:3003

View File

@ -12,7 +12,7 @@ module.exports = {
pageExtensions: ['ts', 'tsx', 'md', 'mdx'], // Replace `jsx?` with `tsx?` pageExtensions: ['ts', 'tsx', 'md', 'mdx'], // Replace `jsx?` with `tsx?`
env: { env: {
env: process.env.NODE_ENV, env: process.env.NODE_ENV,
server: 'http://' + process.env.NEXT_PUBLIC_HOST + ':' + process.env.NEXT_PUBLIC_PORT + '', server: process.env.NEXT_PUBLIC_PROTOCOL + '://' + process.env.NEXT_PUBLIC_HOST + ':' + process.env.NEXT_PUBLIC_PORT + '',
}, },
webpack(config, { isServer }) { webpack(config, { isServer }) {

View File

@ -35,15 +35,14 @@ require('dotenv').config({
console.log("process.env.NODE_ENV = ", process.env.NODE_ENV); console.log("process.env.NODE_ENV = ", process.env.NODE_ENV);
const PROTOCOL = process.env.PROTOCOL; const PROTOCOL = process.env.NEXT_PUBLIC_PROTOCOL;
const PORT = process.env.NEXT_PUBLIC_PORT || 3000; const PORT = process.env.NEXT_PUBLIC_PORT || 3000;
const HOST = process.env.NEXT_PUBLIC_HOST; const HOST = process.env.NEXT_PUBLIC_HOST;
const LOAD_CERTS = process.env.PROTOCOL === 'https';
const dev = process.env.NODE_ENV !== "production"; const dev = process.env.NODE_ENV !== "production";
const nextApp = next({ dev }); const nextApp = next({ dev });
const nextHandler = nextApp.getRequestHandler(); const nextHandler = nextApp.getRequestHandler();
console.log("process.env.PROTOCOL = ", process.env.PROTOCOL); console.log("process.env.NEXT_PUBLIC_PROTOCOL = ", process.env.NEXT_PUBLIC_PROTOCOL);
console.log("process.env.PUBLIC_URL = ", process.env.PUBLIC_URL); console.log("process.env.PUBLIC_URL = ", process.env.PUBLIC_URL);
console.log("process.env.NEXT_PUBLIC_PORT = ", process.env.NEXT_PUBLIC_PORT); console.log("process.env.NEXT_PUBLIC_PORT = ", process.env.NEXT_PUBLIC_PORT);
console.log("process.env.TELEGRAM_BOT = ", process.env.TELEGRAM_BOT); console.log("process.env.TELEGRAM_BOT = ", process.env.TELEGRAM_BOT);
@ -64,12 +63,37 @@ const uploadTmp = multer({ storage: storageMem });
const prisma = common.getPrismaClient(); const prisma = common.getPrismaClient();
const server = express();
//check if ssl is enabled
if (process.env.NEXT_PUBLIC_PROTOCOL === 'https') {
console.log("SSL_ENABLED = true");
// Redirect from http to https
// server.use((req, res, next) => {
// if (req.headers['x-forwarded-proto'] !== 'https') {
// return res.redirect(`https://${req.headers.host}${req.url}`);
// }
// next();
// });
if (process.env.SSL_KEY && process.env.SSL_CERT) {
const options = {
key: fs.readFileSync(process.env.SSL_KEY),
cert: fs.readFileSync(process.env.SSL_CERT),
secureProtocol: 'TLSv1_2_method', // Example: Force TLS 1.2
};
https.createServer(options, server).listen(PORT);
}
}
else {
server.listen(PORT, (err) => {
if (err) throw err;
console.log(`> Ready on ${PROTOCOL}://${HOST}:${PORT}`);
});
}
// handlers // handlers
nextApp nextApp
.prepare() .prepare()
.then(() => { .then(() => {
const server = express();
// Add the middleware to set 'x-forwarded-host' header // Add the middleware to set 'x-forwarded-host' header
server.use((req, res, next) => { server.use((req, res, next) => {
@ -560,31 +584,6 @@ nextApp
return nextHandler(req, res); return nextHandler(req, res);
}); });
//check if ssl is enabled
if (LOAD_CERTS) {
console.log("SSL_ENABLED = true");
// Redirect from http to https
// server.use((req, res, next) => {
// if (req.headers['x-forwarded-proto'] !== 'https') {
// return res.redirect(`https://${req.headers.host}${req.url}`);
// }
// next();
// });
if (process.env.SSL_KEY && process.env.SSL_CERT) {
const options = {
key: fs.readFileSync(process.env.SSL_KEY),
cert: fs.readFileSync(process.env.SSL_CERT),
secureProtocol: 'TLSv1_2_method', // Example: Force TLS 1.2
};
https.createServer(options, server).listen(PORT);
}
}
else {
server.listen(PORT, (err) => {
if (err) throw err;
console.log(`> Ready on ${PROTOCOL}://${HOST}:${PORT}`);
});
}
}) })
.catch((ex) => { .catch((ex) => {
console.warn(`Error starting server on ${HOST}:${PORT}`) console.warn(`Error starting server on ${HOST}:${PORT}`)