Files
proof-of-work/start9/0.4/startos/manifest/index.ts
T
Keysat a64fee4873 Replace placeholder manifest URLs with real keysat-xyz/proof-of-work
packageRepo + upstreamRepo now point at the public GitHub repo where
this code will live. marketingUrl set to null (not yet a landing page).
2026-05-09 16:37:04 -05:00

78 lines
3.3 KiB
TypeScript

import { setupManifest } from '@start9labs/start-sdk'
import { alertInstall, alertUpdate, long, short } from './i18n'
/**
* Proof of Work (proof-of-work) — StartOS 0.4 manifest.
*
* Contract invariants that MUST stay stable across all future releases so the
* 0.3.5 \u2192 0.4 data migration and subsequent upgrades remain safe:
* - package identifier = 'proof-of-work' (matches the 0.3.5 package)
* - volume name = 'main' (matches the 0.3.5 volume)
* - mount path = '/data' (matches the 0.3.5 mount)
*
* NOTE: do NOT write the literal two-character token "i"+"d" followed by ":"
* anywhere else in this file. s9pk.mk extracts PACKAGE_ID with a naive awk
* that matches on that substring and will concatenate multiple hits into a
* broken BASE_NAME (symptom: make warning "overriding commands for target
* 'proof-of-work'" and "No rule to make target .git/HEAD").
*/
export const manifest = setupManifest({
id: 'proof-of-work',
title: 'Proof of Work',
license: 'Proprietary',
packageRepo: 'https://github.com/keysat-xyz/proof-of-work',
upstreamRepo: 'https://github.com/keysat-xyz/proof-of-work',
marketingUrl: 'https://github.com/keysat-xyz/proof-of-work',
donationUrl: null,
docsUrls: ['https://docs.start9.com/packaging/0.4.0.x/'],
description: { short, long },
volumes: ['main'],
images: {
main: {
source: {
dockerBuild: {
// Both `workdir` and `dockerfile` are resolved by start-cli
// relative to the PACKAGE directory (where this manifest
// lives), per the 0.4.0.x packaging docs. That means:
// workdir: '../..' -> Docker build context = repo root
// (two levels up from
// start9/0.4/). The
// Dockerfile's COPY paths such as
// 'proof-of-work/...' and
// 'start9/0.4/...' are
// resolved from there.
// dockerfile: './Dockerfile'
// -> <package-dir>/Dockerfile. That's
// where ours actually lives; the
// Dockerfile sitting OUTSIDE the
// workdir is fine -- Docker
// supports it via `-f <path>
// <context>` and buildkit resolves
// COPY paths against the context
// (workdir), not the Dockerfile's
// directory.
// DO NOT set dockerfile to './start9/0.4/Dockerfile'.
// That would resolve to
// start9/0.4/start9/0.4/Dockerfile
// (nonexistent), producing
// `resolve : lstat start9: no such file or directory`
// from buildkit before any layer runs.
workdir: '../..',
dockerfile: './Dockerfile',
},
},
// 0.4 beta is x86_64-only; expand to ['x86_64', 'aarch64'] post-beta.
arch: ['x86_64'],
},
},
alerts: {
install: alertInstall,
update: alertUpdate,
uninstall: null,
restore: null,
start: null,
stop: null,
},
dependencies: {},
})