Browse Source
Feature/expose log levels as env variable (#3704)
* Expose log levels as env variable
* Update documentation
* Update changelog
pull/3705/head
Thomas Kaul
5 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with
37 additions and
21 deletions
-
CHANGELOG.md
-
README.md
-
apps/api/src/main.ts
|
|
@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 |
|
|
|
### Changed |
|
|
|
|
|
|
|
- Reworked the portfolio calculator |
|
|
|
- Exposed the log levels as an environment variable (`LOG_LEVELS`) |
|
|
|
- Exposed the maximum of chart data items as an environment variable (`MAX_CHART_ITEMS`) |
|
|
|
|
|
|
|
### Fixed |
|
|
|
|
|
@ -86,13 +86,14 @@ We provide official container images hosted on [Docker Hub](https://hub.docker.c |
|
|
|
### Supported Environment Variables |
|
|
|
|
|
|
|
| Name | Type | Default Value | Description | |
|
|
|
| ------------------------ | ------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- | |
|
|
|
| ------------------------ | --------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- | |
|
|
|
| `ACCESS_TOKEN_SALT` | `string` | | A random string used as salt for access tokens | |
|
|
|
| `API_KEY_COINGECKO_DEMO` | `string` (optional) | | The _CoinGecko_ Demo API key | |
|
|
|
| `API_KEY_COINGECKO_PRO` | `string` (optional) | | The _CoinGecko_ Pro API key | |
|
|
|
| `DATABASE_URL` | `string` | | The database connection URL, e.g. `postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}?sslmode=prefer` | |
|
|
|
| `HOST` | `string` (optional) | `0.0.0.0` | The host where the Ghostfolio application will run on | |
|
|
|
| `JWT_SECRET_KEY` | `string` | | A random string used for _JSON Web Tokens_ (JWT) | |
|
|
|
| `LOG_LEVELS` | `string[]` (optional) | | The logging levels for the Ghostfolio application, e.g. `["debug","error","log","warn"]` | |
|
|
|
| `PORT` | `number` (optional) | `3333` | The port where the Ghostfolio application will run on | |
|
|
|
| `POSTGRES_DB` | `string` | | The name of the _PostgreSQL_ database | |
|
|
|
| `POSTGRES_PASSWORD` | `string` | | The password of the _PostgreSQL_ database | |
|
|
|
|
|
@ -1,4 +1,9 @@ |
|
|
|
import { Logger, ValidationPipe, VersioningType } from '@nestjs/common'; |
|
|
|
import { |
|
|
|
Logger, |
|
|
|
LogLevel, |
|
|
|
ValidationPipe, |
|
|
|
VersioningType |
|
|
|
} from '@nestjs/common'; |
|
|
|
import { ConfigService } from '@nestjs/config'; |
|
|
|
import { NestFactory } from '@nestjs/core'; |
|
|
|
import type { NestExpressApplication } from '@nestjs/platform-express'; |
|
|
@ -12,11 +17,20 @@ import { HtmlTemplateMiddleware } from './middlewares/html-template.middleware'; |
|
|
|
async function bootstrap() { |
|
|
|
const configApp = await NestFactory.create(AppModule); |
|
|
|
const configService = configApp.get<ConfigService>(ConfigService); |
|
|
|
let customLogLevels: LogLevel[]; |
|
|
|
|
|
|
|
try { |
|
|
|
customLogLevels = JSON.parse( |
|
|
|
configService.get<string>('LOG_LEVELS') |
|
|
|
) as LogLevel[]; |
|
|
|
} catch {} |
|
|
|
|
|
|
|
const app = await NestFactory.create<NestExpressApplication>(AppModule, { |
|
|
|
logger: environment.production |
|
|
|
logger: |
|
|
|
customLogLevels ?? |
|
|
|
(environment.production |
|
|
|
? ['error', 'log', 'warn'] |
|
|
|
: ['debug', 'error', 'log', 'verbose', 'warn'] |
|
|
|
: ['debug', 'error', 'log', 'verbose', 'warn']) |
|
|
|
}); |
|
|
|
|
|
|
|
app.enableCors(); |
|
|
|