diff --git a/startos/main.ts b/startos/main.ts index 6fbd83f..cef2350 100644 --- a/startos/main.ts +++ b/startos/main.ts @@ -1,9 +1,31 @@ -import { createInterface } from '@start9labs/start-sdk' +import { i18n } from './i18n' +import { sdk } from './sdk' +import { uiPort } from './utils' -export const main = createInterface({ - volumeId: 'main', +export const main = sdk.setupMain(async ({ effects }) => { + console.info(i18n('Starting Munin Bitcoin!')) - run: async ({ effects }) => { - await effects.check.inform('Munin-bitcoin service running') - }, + return sdk.Daemons.of(effects).addDaemon('primary', { + subcontainer: sdk.SubContainer.of( + effects, + { imageId: 'munin-bitcoin' }, + sdk.Mounts.of().mountVolume({ + volumeId: 'main', + subpath: null, + mountpoint: '/data', + readonly: false, + }), + 'munin-bitcoin-sub', + ), + exec: { command: ['munin-bitcoin'] }, + ready: { + display: i18n('Web Interface'), + fn: () => + sdk.healthCheck.checkPortListening(effects, uiPort, { + successMessage: i18n('The web interface is ready'), + errorMessage: i18n('The web interface is not ready'), + }), + }, + requires: [], + }) }) \ No newline at end of file