Tonne of debugging - getting ready for the production builds
This commit is contained in:
@@ -26,6 +26,10 @@ const envSchema = z.object({
|
||||
// Encryption (for DB-stored secrets like SMTP password; falls back to JWT_ACCESS_SECRET)
|
||||
ENCRYPTION_KEY: z.string().optional(),
|
||||
|
||||
// Initial Super Admin (auto-created during database seeding)
|
||||
INITIAL_ADMIN_EMAIL: z.string().email().default('admin@cmlite.org'),
|
||||
INITIAL_ADMIN_PASSWORD: z.string().min(12).default('REQUIRED_STRONG_PASSWORD_CHANGE_THIS'),
|
||||
|
||||
// SMTP
|
||||
SMTP_HOST: z.string().default('mailhog-changemaker'),
|
||||
SMTP_PORT: z.coerce.number().default(1025),
|
||||
@@ -56,6 +60,17 @@ const envSchema = z.object({
|
||||
// Geocoding
|
||||
MAPBOX_API_KEY: z.string().optional(),
|
||||
GEOCODING_RATE_LIMIT_MS: z.coerce.number().default(1100),
|
||||
GEOCODING_CACHE_ENABLED: z.string().default('true'),
|
||||
GEOCODING_CACHE_TTL_HOURS: z.coerce.number().default(24),
|
||||
// Phase 2: Performance & Accuracy
|
||||
GOOGLE_MAPS_API_KEY: z.string().optional(),
|
||||
GOOGLE_MAPS_ENABLED: z.string().default('false'),
|
||||
GEOCODING_PARALLEL_ENABLED: z.string().default('true'),
|
||||
GEOCODING_BATCH_SIZE: z.coerce.number().default(10),
|
||||
|
||||
// Bulk Re-Geocoding (Phase 3)
|
||||
BULK_GEOCODE_ENABLED: z.string().default('true'),
|
||||
BULK_GEOCODE_MAX_BATCH: z.coerce.number().default(5000),
|
||||
|
||||
// Platform Services (NocoDB, n8n, Gitea)
|
||||
NOCODB_URL: z.string().default('http://changemaker-v2-nocodb:8080'),
|
||||
@@ -72,8 +87,23 @@ const envSchema = z.object({
|
||||
MAILHOG_URL: z.string().default('http://mailhog-changemaker:8025'),
|
||||
MAILHOG_EMBED_PORT: z.coerce.number().default(8884),
|
||||
|
||||
// Mini QR (QR code generator)
|
||||
MINI_QR_URL: z.string().default('http://mini-qr:8080'),
|
||||
MINI_QR_PORT: z.coerce.number().default(8089),
|
||||
MINI_QR_EMBED_PORT: z.coerce.number().default(8885),
|
||||
|
||||
// Excalidraw (collaborative whiteboard)
|
||||
EXCALIDRAW_URL: z.string().default('http://excalidraw-changemaker:80'),
|
||||
EXCALIDRAW_PORT: z.coerce.number().default(8090),
|
||||
EXCALIDRAW_EMBED_PORT: z.coerce.number().default(8886),
|
||||
|
||||
// Pangolin (tunnel / reverse proxy)
|
||||
PANGOLIN_API_URL: z.string().default(''),
|
||||
PANGOLIN_API_URL: z.string()
|
||||
.default('')
|
||||
.refine(
|
||||
(url) => !url || url.startsWith('https://'),
|
||||
{ message: 'PANGOLIN_API_URL must use HTTPS for secure credential transmission' }
|
||||
),
|
||||
PANGOLIN_API_KEY: z.string().default(''),
|
||||
PANGOLIN_ORG_ID: z.string().default(''),
|
||||
PANGOLIN_SITE_ID: z.string().default(''),
|
||||
@@ -84,6 +114,14 @@ const envSchema = z.object({
|
||||
// NAR (National Address Register)
|
||||
NAR_DATA_DIR: z.string().default('/data'),
|
||||
|
||||
// Media Management
|
||||
ENABLE_MEDIA_FEATURES: z.string().default('false'),
|
||||
MEDIA_API_PORT: z.coerce.number().default(4100),
|
||||
MEDIA_API_PUBLIC_URL: z.string().default('http://media-api:4100'),
|
||||
MEDIA_ROOT: z.string().default('/media/library'),
|
||||
MEDIA_UPLOADS: z.string().default('/media/uploads'),
|
||||
MAX_UPLOAD_SIZE_GB: z.coerce.number().default(10),
|
||||
|
||||
// Docs / Code Server
|
||||
CODE_SERVER_URL: z.string().default('http://code-server-changemaker:8080'),
|
||||
CODE_SERVER_PORT: z.coerce.number().default(8888),
|
||||
@@ -94,6 +132,22 @@ const envSchema = z.object({
|
||||
MKDOCS_CONTAINER_NAME: z.string().default('mkdocs-changemaker'),
|
||||
MKDOCS_SITE_SERVER_URL: z.string().default('http://mkdocs-site-server-changemaker:80'),
|
||||
MKDOCS_SITE_SERVER_PORT: z.coerce.number().default(4004),
|
||||
|
||||
// Monitoring Services (behind 'monitoring' profile)
|
||||
PROMETHEUS_URL: z.string().default('http://prometheus-changemaker:9090'),
|
||||
PROMETHEUS_PORT: z.coerce.number().default(9090),
|
||||
GRAFANA_URL: z.string().default('http://grafana-changemaker:3000'),
|
||||
GRAFANA_PORT: z.coerce.number().default(3005),
|
||||
ALERTMANAGER_URL: z.string().default('http://alertmanager-changemaker:9093'),
|
||||
ALERTMANAGER_PORT: z.coerce.number().default(9093),
|
||||
CADVISOR_URL: z.string().default('http://cadvisor-changemaker:8080'),
|
||||
CADVISOR_PORT: z.coerce.number().default(8086),
|
||||
NODE_EXPORTER_URL: z.string().default('http://node-exporter-changemaker:9100'),
|
||||
NODE_EXPORTER_PORT: z.coerce.number().default(9100),
|
||||
REDIS_EXPORTER_URL: z.string().default('http://redis-exporter-changemaker:9121'),
|
||||
REDIS_EXPORTER_PORT: z.coerce.number().default(9121),
|
||||
GOTIFY_URL: z.string().default('http://gotify-changemaker:80'),
|
||||
GOTIFY_PORT: z.coerce.number().default(8889),
|
||||
});
|
||||
|
||||
export type Env = z.infer<typeof envSchema>;
|
||||
|
||||
Reference in New Issue
Block a user