mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-19 22:30:31 +00:00
feat: dockernize webapp and server packages
This commit is contained in:
@@ -1,41 +0,0 @@
|
||||
MAIL_HOST=smtp.mailtrap.io
|
||||
MAIL_USERNAME=842f331d3dc005
|
||||
MAIL_PASSWORD=172f97b34f1a17
|
||||
MAIL_PORT=587
|
||||
MAIL_SECURE=false
|
||||
MAIL_FROM_NAME=Bigcapital
|
||||
MAIL_FROM_ADDRESS=noreply@sender.bigcapital.ly
|
||||
|
||||
SYSTEM_DB_CLIENT=mysql
|
||||
SYSTEM_DB_HOST=127.0.0.1
|
||||
SYSTEM_DB_USER=root
|
||||
SYSTEM_DB_PASSWORD=root
|
||||
SYSTEM_DB_NAME=bigcapital_system
|
||||
SYSTEM_MIGRATIONS_DIR=./src/system/migrations
|
||||
SYSTEM_SEEDS_DIR=./src/system/seeds
|
||||
|
||||
TENANT_DB_CLIENT=mysql
|
||||
TENANT_DB_NAME_PERFIX=bigcapital_tenant_
|
||||
TENANT_DB_HOST=127.0.0.1
|
||||
TENANT_DB_PASSWORD=root
|
||||
TENANT_DB_USER=root
|
||||
TENANT_DB_CHARSET=utf8
|
||||
TENANT_MIGRATIONS_DIR=src/database/migrations
|
||||
TENANT_SEEDS_DIR=src/database/seeds/core
|
||||
|
||||
DB_MANAGER_SUPER_USER=root
|
||||
DB_MANAGER_SUPER_PASSWORD=root
|
||||
|
||||
MONGODB_DATABASE_URL=mongodb://localhost/bigcapital
|
||||
|
||||
JWT_SECRET=b0JDZW56RnV6aEthb0RGPXVEcUI
|
||||
|
||||
CONTACT_US_MAIL=support@bigcapital.ly
|
||||
BASE_URL=https://bigcapital.ly
|
||||
|
||||
LICENSES_AUTH_USER=root
|
||||
LICENSES_AUTH_PASSWORD=root
|
||||
|
||||
AGENDASH_AUTH_USER=agendash
|
||||
AGENDASH_AUTH_PASSWORD=123123
|
||||
BROWSER_WS_ENDPOINT=ws://localhost:4080/
|
||||
93
packages/server/Dockerfile
Normal file
93
packages/server/Dockerfile
Normal file
@@ -0,0 +1,93 @@
|
||||
FROM node:14.20-alpine as build
|
||||
|
||||
USER root
|
||||
|
||||
ARG MAIL_HOST= \
|
||||
MAIL_USERNAME= \
|
||||
MAIL_PASSWORD= \
|
||||
MAIL_PORT= \
|
||||
MAIL_SECURE= \
|
||||
MAIL_FROM_NAME= \
|
||||
MAIL_FROM_ADDRESS= \
|
||||
# Database
|
||||
DB_HOST= \
|
||||
DB_USER= \
|
||||
DB_PASSWORD= \
|
||||
DB_CHARSET= \
|
||||
# System database.
|
||||
SYSTEM_DB_NAME= \
|
||||
SYSTEM_DB_PASSWORD= \
|
||||
SYSTEM_DB_USER= \
|
||||
SYSTEM_DB_HOST= \
|
||||
SYSTEM_DB_CHARSET= \
|
||||
# Tenant databases.
|
||||
TENANT_DB_USER= \
|
||||
TENANT_DB_PASSWORD= \
|
||||
TENANT_DB_HOST= \
|
||||
TENANT_DB_NAME_PERFIX= \
|
||||
TENANT_DB_CHARSET= \
|
||||
# MongoDB
|
||||
MONGODB_DATABASE_URL= \
|
||||
# Authentication
|
||||
JWT_SECRET= \
|
||||
# Application
|
||||
BASE_URL= \
|
||||
# Agendash
|
||||
AGENDASH_AUTH_USER=agendash \
|
||||
AGENDASH_AUTH_PASSWORD=123123
|
||||
|
||||
ENV MAIL_HOST=$MAIL_HOST \
|
||||
MAIL_USERNAME=$MAIL_USERNAME \
|
||||
MAIL_PASSWORD=$MAIL_PASSWORD \
|
||||
MAIL_PORT=$MAIL_PORT \
|
||||
MAIL_SECURE=$MAIL_SECURE \
|
||||
MAIL_FROM_NAME=$MAIL_FROM_NAME \
|
||||
MAIL_FROM_ADDRESS=$MAIL_FROM_ADDRESS \
|
||||
# Database
|
||||
DB_HOST=$DB_HOST \
|
||||
DB_USER=$DB_USER \
|
||||
DB_PASSWORD=$DB_PASSWORD \
|
||||
DB_CHARSET=$DB_CHARSET \
|
||||
# System database.
|
||||
SYSTEM_DB_HOST=$SYSTEM_DB_HOST \
|
||||
SYSTEM_DB_USER=$SYSTEM_DB_USER \
|
||||
SYSTEM_DB_PASSWORD=$SYSTEM_DB_PASSWORD \
|
||||
SYSTEM_DB_NAME=$SYSTEM_DB_NAME \
|
||||
SYSTEM_DB_CHARSET=$SYSTEM_DB_CHARSET \
|
||||
# Tenant databases.
|
||||
TENANT_DB_NAME_PERFIX=$TENANT_DB_NAME_PERFIX \
|
||||
TENANT_DB_HOST=$TENANT_DB_HOST \
|
||||
TENANT_DB_PASSWORD=$TENANT_DB_PASSWORD \
|
||||
TENANT_DB_USER=$TENANT_DB_USER \
|
||||
TENANT_DB_CHARSET=$TENANT_DB_CHARSET \
|
||||
# Authentication
|
||||
JWT_SECRET=$JWT_SECRET \
|
||||
# Agendash
|
||||
AGENDASH_AUTH_USER=$AGENDASH_AUTH_USER \
|
||||
AGENDASH_AUTH_PASSWORD=$AGENDASH_AUTH_PASSWORD \
|
||||
# MongoDB
|
||||
MONGODB_DATABASE_URL=$MONGODB_DATABASE_URL \
|
||||
# Application
|
||||
BASE_URL=$BASE_URL
|
||||
|
||||
# Create app directory.
|
||||
WORKDIR /app
|
||||
|
||||
RUN chown node:node /
|
||||
|
||||
# Copy application dependency manifests to the container image.
|
||||
COPY ./package*.json ./
|
||||
COPY ./packages/server/package*.json ./packages/server/
|
||||
|
||||
COPY ./lerna.json ./lerna.json
|
||||
|
||||
# Install app dependencies for production.
|
||||
RUN npm install
|
||||
RUN npm run bootstrap
|
||||
|
||||
COPY --chown=node:node ./packages/server ./packages/server
|
||||
|
||||
# # Creates a "dist" folder with the production build
|
||||
RUN npm run build:server --skip-nx-cache
|
||||
|
||||
CMD [ "node", "./packages/server/build/index.js" ]
|
||||
@@ -1,13 +1,8 @@
|
||||
import dotenv from 'dotenv';
|
||||
|
||||
// Set the NODE_ENV to 'development' by default
|
||||
// process.env.NODE_ENV = process.env.NODE_ENV || 'development';
|
||||
|
||||
const envFound = dotenv.config();
|
||||
if (envFound.error) {
|
||||
// This error should crash whole process
|
||||
throw new Error("⚠️ Couldn't find .env file ⚠️");
|
||||
}
|
||||
dotenv.config({
|
||||
path: '../../.env',
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
@@ -19,36 +14,38 @@ module.exports = {
|
||||
* System database configuration.
|
||||
*/
|
||||
system: {
|
||||
db_client: process.env.SYSTEM_DB_CLIENT,
|
||||
db_host: process.env.SYSTEM_DB_HOST,
|
||||
db_user: process.env.SYSTEM_DB_USER,
|
||||
db_password: process.env.SYSTEM_DB_PASSWORD,
|
||||
db_client: process.env.SYSTEM_DB_CLIENT || process.env.DB_CLIENT || 'mysql',
|
||||
db_host: process.env.SYSTEM_DB_HOST || process.env.DB_HOST,
|
||||
db_user: process.env.SYSTEM_DB_USER || process.env.DB_USER,
|
||||
db_password: process.env.SYSTEM_DB_PASSWORD || process.env.DB_PASSWORD,
|
||||
db_name: process.env.SYSTEM_DB_NAME,
|
||||
charset: process.env.SYSTEM_DB_CHARSET,
|
||||
migrations_dir: process.env.SYSTEM_MIGRATIONS_DIR,
|
||||
seeds_dir: process.env.SYSTEM_SEEDS_DIR,
|
||||
charset: process.env.SYSTEM_DB_CHARSET || process.env.DB_CHARSET,
|
||||
migrations_dir:
|
||||
process.env.SYSTEM_MIGRATIONS_DIR || './src/system/migrations',
|
||||
seeds_dir: process.env.SYSTEM_SEEDS_DIR || './src/system/seeds',
|
||||
},
|
||||
|
||||
/**
|
||||
* Tenant database configuration.
|
||||
*/
|
||||
tenant: {
|
||||
db_client: process.env.TENANT_DB_CLIENT,
|
||||
db_client: process.env.TENANT_DB_CLIENT || process.env.DB_CLIENT || 'mysql',
|
||||
db_name_prefix: process.env.TENANT_DB_NAME_PERFIX,
|
||||
db_host: process.env.TENANT_DB_HOST,
|
||||
db_user: process.env.TENANT_DB_USER,
|
||||
db_password: process.env.TENANT_DB_PASSWORD,
|
||||
charset: process.env.TENANT_DB_CHARSET,
|
||||
migrations_dir: process.env.TENANT_MIGRATIONS_DIR,
|
||||
seeds_dir: process.env.TENANT_SEEDS_DIR,
|
||||
db_host: process.env.TENANT_DB_HOST || process.env.DB_HOST,
|
||||
db_user: process.env.TENANT_DB_USER || process.env.DB_USER,
|
||||
db_password: process.env.TENANT_DB_PASSWORD || process.env.DB_PASSWORD,
|
||||
charset: process.env.TENANT_DB_CHARSET || process.env.DB_CHARSET,
|
||||
migrations_dir:
|
||||
process.env.TENANT_MIGRATIONS_DIR || './src/database/migrations',
|
||||
seeds_dir: process.env.TENANT_SEEDS_DIR || './src/database/seeds/core',
|
||||
},
|
||||
|
||||
/**
|
||||
* Databases manager config.
|
||||
*/
|
||||
manager: {
|
||||
superUser: process.env.DB_MANAGER_SUPER_USER,
|
||||
superPassword: process.env.DB_MANAGER_SUPER_PASSWORD,
|
||||
superUser: process.env.SYSTEM_DB_USER || process.env.DB_USER,
|
||||
superPassword: process.env.SYSTEM_DB_PASSWORD || process.env.DB_PASSWORD,
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -119,14 +116,6 @@ module.exports = {
|
||||
prefix: '/api',
|
||||
},
|
||||
|
||||
/**
|
||||
* Licenses api basic authentication.
|
||||
*/
|
||||
licensesAuth: {
|
||||
user: process.env.LICENSES_AUTH_USER,
|
||||
password: process.env.LICENSES_AUTH_PASSWORD,
|
||||
},
|
||||
|
||||
/**
|
||||
* Redis storage configuration.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user