first commit 🎉

This commit is contained in:
2025-10-08 11:37:54 +07:00
commit 4ec61fa51e
61 changed files with 4558 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
export const ENV = process.env.NODE_ENV || 'development'
export const PORT = Number(process.env.PORT || 9000)
export const timeZone = process.env.TIMEZONE || 'Asia/Jakarta'
export const attendanceCheckInHour = Number(process.env.ATTENDANCE_CHECK_IN_HOUR || 8)
export const dbDsn = process.env.DB_DSN || ''
export const basicAuth = {
username: process.env.BASIC_AUTH_USERNAME || 'basicauth',
password: process.env.BASIC_AUTH_PASSWORD || 'supersecret',
}
export const jwt = {
algorithm: process.env.JWT_ALG || 'ES256', // ES256 | HS256 | RS256
key: {
secret: process.env.JWT_SECRET || '', // for HS256 algorithm
public: String(process.env.JWT_PUBLIC_KEY || '').replace(/\\n/g, '\n'), // for ES256 or RS256 algorithm
private: String(process.env.JWT_PRIVATE_KEY || '').replace(/\\n/g, '\n'), // for ES256 or RS256 algorithm
},
claims: {
issuer: process.env.JWT_ISS || 'skyrain',
audience: process.env.JWT_AUD || 'skyrain-mbg',
},
expires: {
access: process.env.JWT_EXP_ACCESS || '15m',
},
}
export const s3Configs = {
config: {
region: process.env.S3_REGION || 'us-east-1',
endpoint: process.env.S3_URL || '',
credentials: {
accessKeyId: process.env.S3_ACCESS_KEY || '',
secretAccessKey: process.env.S3_SECRET_KEY || '',
},
forcePathStyle: true,
},
bucket: process.env.S3_BUCKET_NAME || 'mbg',
}
export const otel = {
enabled: process.env.OTEL_ENABLED === 'true',
serviceName: process.env.OTEL_SERVICE_NAME || 'backend-node-mbg',
tracesExporter: process.env.OTEL_TRACES_EXPORTER || 'otlp',
otlpEndpoint: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'http://localhost:4319/v1/traces',
}
export const CORSConfig = {
urls: process.env.CORS_URLS || '*',
methods: process.env.CORS_METHODS || '*',
}
export const redis = {
host: process.env.REDIS_HOST,
port: Number(process.env.REDIS_PORT || 6378),
username: process.env.REDIS_USER,
password: process.env.REDIS_PASSWORD,
tls: Boolean(process.env.REDIS_TLS || false),
db: Number(process.env.REDIS_DB),
}
// const minioHost = process.env.MINIO_HOST || ''
// export const minio = {
// endPoint: minioHost,
// port: Number(process.env.MINIO_PORT || 9000),
// useSSL: !!(process.env.MINIO_SSL || false),
// accessKey: String(process.env.MINIO_ACCESS_KEY) || '',
// secretKey: process.env.MINIO_SECRET_KEY || '',
// }
// export const uploadBucket = process.env.MINIO_BUCKET || ''