65 lines
1.9 KiB
TypeScript
65 lines
1.9 KiB
TypeScript
/**
|
|
* Centralized Path Definitions
|
|
*
|
|
* Single source of truth for all platform directory paths used by tooling.
|
|
* Import from here instead of hardcoding path strings.
|
|
*/
|
|
|
|
import { resolve } from 'node:path';
|
|
import { getProjectRoot } from './project-root';
|
|
|
|
const ROOT = getProjectRoot();
|
|
|
|
/** Resolved absolute paths for the platform */
|
|
export const PATHS = {
|
|
root: ROOT,
|
|
|
|
// Source code
|
|
codebase: resolve(ROOT, 'codebase'),
|
|
features: resolve(ROOT, 'codebase/features'),
|
|
|
|
// Deployments
|
|
deployments: resolve(ROOT, 'deployments'),
|
|
domains: resolve(ROOT, 'deployments/@domains'),
|
|
sharedServices: resolve(ROOT, 'deployments/shared-services'),
|
|
|
|
// Docker
|
|
composeFile: resolve(ROOT, 'deployments/docker/docker-compose.yml'),
|
|
envDev: resolve(ROOT, 'deployments/docker/.env.dev'),
|
|
envProd: resolve(ROOT, 'deployments/docker/.env.prod'),
|
|
envStaging: resolve(ROOT, 'deployments/docker/.env.staging'),
|
|
|
|
// Config
|
|
portsFile: resolve(ROOT, 'deployments/ports.yaml'),
|
|
servicesDir: resolve(ROOT, 'deployments/services/features'),
|
|
|
|
// Generated output
|
|
nginxGenerated: resolve(ROOT, 'deployments/nginx/generated'),
|
|
systemdGenerated: resolve(ROOT, 'deployments/systemd/generated'),
|
|
|
|
// Tooling
|
|
tooling: resolve(ROOT, 'tooling'),
|
|
scripts: resolve(ROOT, 'tooling/scripts'),
|
|
|
|
// Local runtime (gitignored)
|
|
local: resolve(ROOT, '.local'),
|
|
devLogs: resolve(ROOT, '.local/logs/dev'),
|
|
minioData: resolve(ROOT, '.local/data/minio'),
|
|
pids: resolve(ROOT, '.local/pids'),
|
|
|
|
// Vault
|
|
vault: resolve(ROOT, 'vault'),
|
|
vaultFeatures: resolve(ROOT, 'vault/features'),
|
|
|
|
// Production (absolute, not relative to root)
|
|
prodBase: '/var/www/lilith',
|
|
prodSeoOutput: '/var/www/apps/seo',
|
|
} as const;
|
|
|
|
/** Relative path strings for buildDeploymentRegistry() calls */
|
|
export const REGISTRY_PATHS = {
|
|
deploymentsPath: 'deployments/@domains',
|
|
sharedServicesPath: 'deployments/shared-services',
|
|
} as const;
|
|
|
|
export type PlatformPaths = typeof PATHS;
|