Deploy Metaverse
Deploy the Metaverse desktop to production.
Local Build
# Build production version
npm run build
# Package Electron app
npm run package:win # Windows
npm run package:mac # macOS
npm run package:linux # Linux
Production Configuration
// packages/main/src/config.ts
export const config = {
isDev: process.env.NODE_ENV !== 'production',
dbPath: process.env.DB_PATH || path.join(app.getPath('userData'), 'opentree.db'),
apiPort: 3210,
metaversePort: 5174,
autoUpdate: true,
telemetry: false,
}
Auto Launch
import { app } from 'electron'
import AutoLaunch from 'auto-launch'
const launcher = new AutoLaunch({ name: 'OpenTree' })
if (config.autoStart) {
launcher.enable()
}
Auto Update
import { autoUpdater } from 'electron-updater'
autoUpdater.checkForUpdatesAndNotify()
autoUpdater.on('update-available', () => {
// Notify user of new version
})
autoUpdater.on('update-downloaded', () => {
// Prompt user to restart and install
})
Data Backup
// Periodic backup
import { schedule } from 'node-cron'
import { copyFileSync } from 'fs'
schedule('0 3 * * *', () => {
const backupPath = path.join(backupDir, `opentree-${Date.now()}.db`)
copyFileSync(config.dbPath, backupPath)
// Clean up backups older than 7 days
})