48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
import { i18n } from './i18n'
|
|
import { sdk } from './sdk'
|
|
import { uiPort } from './utils'
|
|
import { electrumPort, mainHostId } from 'fulcrum-startos/startos/utils'
|
|
|
|
export const main = sdk.setupMain(async ({ effects }) => {
|
|
console.info(i18n('Starting Munin Bitcoin!'))
|
|
|
|
const fulcrumAddress = await sdk.host
|
|
.getBridgeAddress(effects, {
|
|
packageId: 'fulcrum',
|
|
hostId: mainHostId,
|
|
internalPort: electrumPort,
|
|
ssl: false,
|
|
})
|
|
.const()
|
|
|
|
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'],
|
|
env: fulcrumAddress
|
|
? {
|
|
MUNIN_FULCRUM_URL: `tcp://${fulcrumAddress}`,
|
|
}
|
|
: {},
|
|
},
|
|
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: [],
|
|
})
|
|
}) |