diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 000000000..65f629afd --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,13 @@ +tasks: + - name: Start Logto + init: | + docker-compose pull + command: | + ENDPOINT=$(gp url 3001) docker compose -p logto up + env: + TAG: prerelease + +ports: + - name: Logto + description: The Logto core service + port: 3001 diff --git a/README.md b/README.md index 88fc20cff..397b8c62b 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,9 @@ release + + gitpod + core coverage diff --git a/docker-compose.yml b/docker-compose.yml index 5044a2278..04ea93e27 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,16 +3,24 @@ version: "3.9" services: app: depends_on: - - postgres + postgres: + condition: service_healthy image: ghcr.io/logto-io/logto:${TAG-latest} ports: - 3001:3001 environment: - ALL_YES: 1 - NO_INQUIRY: 0 - DB_URL_DEFAULT: postgres://postgres:p0stgr3s@postgres:5432 + - ALL_YES=1 + - NO_INQUIRY=0 + - TRUST_PROXY_HEADER=1 + - DB_URL_DEFAULT=postgres://postgres:p0stgr3s@postgres:5432 + - ENDPOINT postgres: image: postgres:14-alpine environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: p0stgr3s + healthcheck: + test: ["CMD-SHELL", "pg_isready"] + interval: 10s + timeout: 5s + retries: 5 diff --git a/packages/core/src/env-set/index.ts b/packages/core/src/env-set/index.ts index c7a609156..538fbea43 100644 --- a/packages/core/src/env-set/index.ts +++ b/packages/core/src/env-set/index.ts @@ -5,6 +5,7 @@ import { appendPath } from '@/utils/url'; import createPoolByEnv from './create-pool-by-env'; import loadOidcValues from './oidc'; +import { isTrue } from './parameters'; export enum MountedApps { Api = 'api', @@ -32,7 +33,7 @@ const loadEnvValues = async () => { localhostUrl, endpoint, developmentUserId: getEnv('DEVELOPMENT_USER_ID'), - trustProxyHeader: getEnv('TRUST_PROXY_HEADER') === 'true', + trustProxyHeader: isTrue(getEnv('TRUST_PROXY_HEADER')), oidc: await loadOidcValues(appendPath(endpoint, '/oidc').toString()), adminConsoleUrl: appendPath(endpoint, '/console'), }); diff --git a/packages/core/src/env-set/parameters.ts b/packages/core/src/env-set/parameters.ts index 667847af8..6b4d8af8a 100644 --- a/packages/core/src/env-set/parameters.ts +++ b/packages/core/src/env-set/parameters.ts @@ -1,6 +1,6 @@ import { getEnv } from '@silverhand/essentials'; -const isTrue = (value: string) => ['1', 'true', 'y', 'yes', 'yep', 'yeah'].includes(value); +export const isTrue = (value: string) => ['1', 'true', 'y', 'yes', 'yep', 'yeah'].includes(value); const parameters = new Set(process.argv.slice(2)); export const noInquiry = parameters.has('--no-inquiry') || isTrue(getEnv('NO_INQUIRY'));