#!/usr/bin/env node const fs = require('fs') const path = require('path') const envPath = path.resolve(__dirname, '../.env') const sampleEnvPath = path.resolve(__dirname, '../.sample.env') // Check if .env already exists if (fs.existsSync(envPath)) { console.log('.env file already exists. To rebuild, delete it first.') process.exit(0) } // Copy sample env const sampleContent = fs.readFileSync(sampleEnvPath, 'utf8') // Development defaults const devDefaults = { NODE_ENV: 'development', // Database POSTGRES_USER: 'lamassu', POSTGRES_PASSWORD: 'lamassu', POSTGRES_HOST: 'localhost', POSTGRES_PORT: '5432', POSTGRES_DB: 'lamassu', // Paths CA_PATH: path.resolve(__dirname, '../Lamassu_CA.pem'), CERT_PATH: path.resolve(__dirname, '../../../certs/Lamassu_LS.pem'), KEY_PATH: path.resolve(__dirname, '../../../certs/Lamassu_LS.key'), MNEMONIC_PATH: path.resolve(__dirname, '../../../mnemonic.txt'), // Directories BLOCKCHAIN_DIR: path.resolve(__dirname, '../../../blockchain'), OFAC_DATA_DIR: path.resolve(__dirname, '../../../ofac'), ID_PHOTO_CARD_DIR: path.resolve(__dirname, '../../../photos/idcard'), FRONT_CAMERA_DIR: path.resolve(__dirname, '../../../photos/front'), OPERATOR_DATA_DIR: path.resolve(__dirname, '../../../operator-data'), // Misc HOSTNAME: 'localhost', LOG_LEVEL: 'debug', // Bitcoin (for development, use remote node to avoid full sync) BTC_NODE_LOCATION: 'remote', BTC_WALLET_LOCATION: 'local', BTC_NODE_HOST: 'blockstream.info', BTC_NODE_PORT: '8333', // LNBits development defaults LNBITS_ENDPOINT: 'https://legend.lnbits.com', LNBITS_ADMIN_KEY: '' // User needs to set this } // Build .env content let envContent = sampleContent // Replace empty values with dev defaults Object.keys(devDefaults).forEach(key => { const regex = new RegExp(`^${key}=.*$`, 'gm') envContent = envContent.replace(regex, `${key}=${devDefaults[key]}`) }) // Write .env file fs.writeFileSync(envPath, envContent) console.log('Development .env file created with defaults.') console.log('IMPORTANT: You still need to:') console.log(' 1. Generate certificates using: bash tools/cert-gen.sh') console.log(' 2. Create a mnemonic file at: ../../../mnemonic.txt') console.log(' 3. Set up PostgreSQL database') console.log(' 4. Configure LNBits admin key if using Lightning') console.log('') console.log('Run migrations with: node bin/lamassu-migrate')