filecoin-pin
Version:
IPFS Pinning Service API implementation that pins to Filecoin's PDP service
37 lines • 1.56 kB
JavaScript
import { createConfig } from './config.js';
import { createLogger } from './logger.js';
import { createFilecoinPinningServer } from './filecoin-pinning-server.js';
export async function daemon(serviceInfo) {
const config = createConfig();
const logger = createLogger(config);
logger.info(`Starting ${serviceInfo.service} v${serviceInfo.version} daemon...`);
try {
const { server, pinStore } = await createFilecoinPinningServer(config, logger, serviceInfo);
process.on('SIGINT', () => {
void (async () => {
logger.info('Received SIGINT, shutting down gracefully...');
await server.close();
await pinStore.stop();
process.exit(0);
})();
});
process.on('SIGTERM', () => {
void (async () => {
logger.info('Received SIGTERM, shutting down gracefully...');
await server.close();
await pinStore.stop();
process.exit(0);
})();
});
// Get the actual port the server is listening on
const address = server.server.address();
const port = typeof address === 'string' ? address : address?.port;
logger.info({ port }, `${serviceInfo.service} daemon started successfully`);
logger.info(`Pinning service listening on http://${config.host}:${String(port)}`);
}
catch (error) {
logger.error({ error }, 'Failed to start daemon');
process.exit(1);
}
}
//# sourceMappingURL=index.js.map