Compare commits

...

33 Commits

Author SHA1 Message Date
Matt Hill
73b02ebdc8 Merge pull request #3159 from Start9Labs/fix/open-ui
fix: address URL whitespace and blank tab on Open UI
2026-04-03 13:18:18 -06:00
Matt Hill
dc857e028f fix: address whitespace in URL display and blank tab on Open UI
Remove extra whitespace between protocol/hostname/port in address item
template. Handle missing access types (domain, tor, wan-ipv4) in
launchableAddress so Open UI resolves the correct URL. Disable the
button when no launchable address exists instead of opening a blank tab.
Fix mock startPackage never reaching running state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 12:44:24 -06:00
Aiden McClelland
c03bf166f1 Merge pull request #3158 from Start9Labs/fix/rpc-listener
fix: buffer incomplete chunks in RPC socket listener
2026-04-03 09:11:09 -06:00
Aiden McClelland
9373f40e82 chore: bump version to 0.4.0-beta.2 2026-04-03 09:06:05 -06:00
Aiden McClelland
f181b9a9f1 fix: handle None case in list_service_interfaces without early return 2026-04-03 09:00:20 -06:00
Matt Hill
2ea2879317 fix: buffer incomplete chunks in RPC socket listener
The data event handler assumed each chunk contained complete
newline-delimited JSON messages. Unix sockets are stream-based, so
large messages (>64KB) arrive split across multiple data events.
This caused JSON parse failures for callback payloads containing
full serviceInterfaces maps with hostname/gateway metadata.

Buffer incoming data per connection and only parse after a complete
newline-terminated message is received.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 08:30:52 -06:00
Aiden McClelland
2427255eb5 Merge pull request #3156 from Start9Labs/fix/beta-bugs 2026-04-02 18:39:18 -06:00
Aiden McClelland
5d36347d9d chore: i18n log messages in disk/main.rs
Replace hardcoded English log strings with i18n keys for e2fsck,
btrfs conversion, filesystem optimization, and VG probe warnings.
2026-04-02 18:38:13 -06:00
Aiden McClelland
2a3c3b3f68 chore: move ops scripts to scripts/ directory
Move manage-release.sh and publish-deb.sh out of build/ into scripts/
since they are operational tools, not build steps. Add
copy-categories.sh for cross-registry category sync. Update the
publish-deb reference in manage-release.sh.
2026-04-02 18:38:13 -06:00
Aiden McClelland
63bea3deda chore: bump version to 0.4.0-beta.1 2026-04-02 18:38:12 -06:00
Aiden McClelland
3fb5a69986 chore: update patch-db submodule and sync mock data
Update patch-db to f7a4e02. Remove stale arch/platform fields from
mock-patch data. Update container-runtime lock file.
2026-04-02 18:38:12 -06:00
Aiden McClelland
2026b9c38b fix: improve 0.3.5 migration with data version persistence and failure notifications
Write package data version to disk before reinstalling so the install
process detects existing data and uses update mode. Collect migration
failures and notify the user which services failed, reassuring that
data is safe and can be reinstalled from the marketplace. Add i18n
keys for migration failure and service operation notifications.
2026-04-02 18:38:12 -06:00
Aiden McClelland
04fb3a69dc fix: localize service operation failure notification titles
Replace hardcoded English "{Operation} Failed" strings with i18n
lookup for installing, updating, restoring, and uninstall failures.
2026-04-02 18:38:12 -06:00
Aiden McClelland
a433db3180 fix: recheck tasks on action export and handle unavailable actions gracefully
Call recheck_tasks() after export_action so task active state is
updated when actions change. Handle unavailable actions/services by
logging instead of returning an error, keeping tasks active until
they can be properly evaluated.
2026-04-02 18:38:11 -06:00
Aiden McClelland
f53b1a03e8 fix: improve btrfs-convert to show progress output
Remove --no-progress flag and enable output capture so conversion
progress is visible during ext4 to btrfs migration.
2026-04-02 18:38:11 -06:00
Matt Hill
e63bf07ae6 update ST cert language, category names, and patchDB 2026-04-02 18:38:11 -06:00
Aiden McClelland
22b2ee01d7 feat: make version optional in registry package remove, add --force flag
When version is omitted, removes the entire package entry. Requires
--force if the package has any existing versions.
2026-04-01 17:06:51 -06:00
Aiden McClelland
de7fbeff2c chore: add remove-signer command, fix bugs, and update release notes
- Add registry admin remove-signer command to remove a signer and all their authorizations
- Fix remove_package_signer condition (is_some -> is_none) for correct not-found error
- Use log_err() instead of silently swallowing asset fetch errors
- Trim leading '#' from version in s9pk publish path
- Add --delete-removed to s3 sync in publish-deb.sh
- Expand v0.4.0 release notes with additional features
- Regenerate man pages and add i18n entries
2026-04-01 16:09:32 -06:00
Aiden McClelland
0eedcf58f5 feat: support data URLs, http(s) URLs, and file:// URLs in registry set-icon CLI 2026-04-01 08:50:59 -06:00
Aiden McClelland
208e9a5e3a feat: add registry os promote command for cross-registry OS version promotion
Batch promotes an entire OS version (metadata + all iso/squashfs/img assets
across all platforms) from one registry to another, mirroring the existing
package promote command.
2026-03-31 22:12:35 -06:00
Aiden McClelland
7c304eef02 chore: regenerate SDK TypeScript bindings for metrics types 2026-03-31 20:52:41 -06:00
Aiden McClelland
3de91687f1 chore: fix formatting in v0_3_6_alpha_0 migration logging 2026-03-31 20:52:00 -06:00
Aiden McClelland
0d80a1c0b1 fix: handle null value in list_service_interfaces
Return an empty map instead of failing when the watched value is null.
2026-03-31 20:51:33 -06:00
Aiden McClelland
48f50e3c6c feat: add package promote command for cross-registry promotion
Allows promoting a package version from one registry to another by
fetching package info from the source and re-signing/publishing each
s9pk variant to the destination.
2026-03-31 20:51:22 -06:00
Aiden McClelland
3e0bbe47ad fix: skip btrfs readonly check on preen to avoid false failures
The btrfs check --readonly command can produce false positives. Skip it
for the preen strategy and only run the repair path when aggressive
repair is requested.
2026-03-31 20:51:02 -06:00
Aiden McClelland
a3575cf9a3 chore: remove arch and platform fields from ServerInfo
These are static platform constants and don't need to be stored in the
database or exposed in the public model. Use crate::ARCH directly where
needed.
2026-03-31 20:50:48 -06:00
Aiden McClelland
5443f8dab1 chore: bump startos to 0.4.0-beta.0 and start-sdk to 1.0.0 2026-03-31 20:03:03 -06:00
Aiden McClelland
c6fd58f714 feat: rename ghost and synapse packages to legacy variants
Add ghost→ghost-legacy and synapse→synapse-legacy ID renames in v1
manifest compat, container runtime, and v0.3.6 migration (volume
renames).
2026-03-31 19:57:16 -06:00
Aiden McClelland
40ac974a0c feat: replace PostgreSQL metrics with SQLite and add metrics query API
Migrate registry metrics from PostgreSQL/sqlx to embedded SQLite via
rusqlite. Add new metrics CLI subcommands (summary, users, downloads)
with i18n support. Record os_version in user activity and package
download requests. Remove old PostgreSQL schema and setup script.
2026-03-31 19:56:49 -06:00
Aiden McClelland
cbcff17ebc chore: refactor release scripts to download OS images from registry
Replace GitHub Actions artifact downloads with registry-based OS image
retrieval via start-cli. Add publish-tunnel subcommand, registry_url
helper, and remove old S3/RUN_ID workflows. Also clean up old deb
versions in publish-deb.sh before copying new ones.
2026-03-31 19:56:33 -06:00
Matt Hill
8e8f457393 fix locale bug with postgres for 0351 migration 2026-03-31 16:12:32 -06:00
Matt Hill
886aa5d7db remove unnecessary warnings 2026-03-31 13:47:20 -06:00
Aiden McClelland
653a0a1428 Merge pull request #2867 from Start9Labs/next/major
StartOS 0.4.0
2026-03-30 19:29:39 -06:00
161 changed files with 2451 additions and 1411 deletions

View File

@@ -37,7 +37,7 @@
},
"../sdk/dist": {
"name": "@start9labs/start-sdk",
"version": "0.4.0-beta.66",
"version": "1.0.0",
"license": "MIT",
"dependencies": {
"@iarna/toml": "^3.0.0",

View File

@@ -156,6 +156,7 @@ export class RpcListener {
this.unixSocketServer.on("connection", (s) => {
let id: IdType = null
let lineBuffer = ""
const captureId = <X>(x: X) => {
if (hasId(x)) id = x.id
return x
@@ -190,32 +191,31 @@ export class RpcListener {
)
}
}
s.on("data", (a) =>
Promise.resolve(a)
.then((b) => b.toString())
.then((buf) => {
for (let s of buf.split("\n")) {
if (s)
Promise.resolve(s)
.then(logData("dataIn"))
.then(jsonParse)
.then(captureId)
.then((x) => this.dealWithInput(x))
.catch(mapError)
.then(logData("response"))
.then(writeDataToSocket)
.then((_) => {
if (this.shouldExit) {
process.exit(0)
}
})
.catch((e) => {
console.error(`Major error in socket handling: ${e}`)
console.debug(`Data in: ${a.toString()}`)
})
}
}),
)
s.on("data", (a) => {
lineBuffer += a.toString()
const lines = lineBuffer.split("\n")
lineBuffer = lines.pop()! // keep incomplete trailing chunk in buffer
for (const line of lines) {
if (line)
Promise.resolve(line)
.then(logData("dataIn"))
.then(jsonParse)
.then(captureId)
.then((x) => this.dealWithInput(x))
.catch(mapError)
.then(logData("response"))
.then(writeDataToSocket)
.then((_) => {
if (this.shouldExit) {
process.exit(0)
}
})
.catch((e) => {
console.error(`Major error in socket handling: ${e}`)
console.debug(`Data in: ${line}`)
})
}
})
})
}

View File

@@ -396,6 +396,12 @@ export class SystemForEmbassy implements System {
if (this.manifest.id === "nostr") {
this.manifest.id = "nostr-rs-relay"
}
if (this.manifest.id === "ghost") {
this.manifest.id = "ghost-legacy"
}
if (this.manifest.id === "synapse") {
this.manifest.id = "synapse-legacy"
}
}
async init(

40
core/Cargo.lock generated
View File

@@ -1967,6 +1967,18 @@ dependencies = [
"once_cell",
]
[[package]]
name = "fallible-iterator"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
[[package]]
name = "fallible-streaming-iterator"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
[[package]]
name = "fastrand"
version = "2.3.0"
@@ -3562,6 +3574,17 @@ dependencies = [
"redox_syscall 0.7.3",
]
[[package]]
name = "libsqlite3-sys"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbb8270bb4060bd76c6e96f20c52d80620f1d82a3470885694e41e0f81ef6fe7"
dependencies = [
"cc",
"pkg-config",
"vcpkg",
]
[[package]]
name = "libyml"
version = "0.0.5"
@@ -5444,6 +5467,20 @@ dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "rusqlite"
version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37e34486da88d8e051c7c0e23c3f15fd806ea8546260aa2fec247e97242ec143"
dependencies = [
"bitflags 2.11.0",
"fallible-iterator",
"fallible-streaming-iterator",
"hashlink",
"libsqlite3-sys",
"smallvec",
]
[[package]]
name = "rust-argon2"
version = "3.0.0"
@@ -6439,7 +6476,7 @@ dependencies = [
[[package]]
name = "start-os"
version = "0.4.0-alpha.23"
version = "0.4.0-beta.2"
dependencies = [
"aes",
"async-acme",
@@ -6536,6 +6573,7 @@ dependencies = [
"reqwest_cookie_store",
"rpassword",
"rpc-toolkit",
"rusqlite",
"rust-argon2",
"rust-i18n",
"semver",

View File

@@ -15,7 +15,7 @@ license = "MIT"
name = "start-os"
readme = "README.md"
repository = "https://github.com/Start9Labs/start-os"
version = "0.4.0-alpha.23" # VERSION_BUMP
version = "0.4.0-beta.2" # VERSION_BUMP
[lib]
name = "startos"
@@ -182,6 +182,7 @@ qrcode = "0.14.1"
r3bl_tui = "0.7.6"
rand = "0.9.2"
regex = "1.10.2"
rusqlite = { version = "0.34", features = ["bundled"] }
reqwest = { version = "0.12.25", features = [
"http2",
"json",
@@ -250,5 +251,3 @@ opt-level = 3
[profile.dev.package.backtrace]
opt-level = 3
[profile.dev.package.sqlx-macros]
opt-level = 3

View File

@@ -872,6 +872,20 @@ disk.main.disk-not-found:
fr_FR: "Disque StartOS non trouvé."
pl_PL: "Nie znaleziono dysku StartOS."
disk.main.clearing-duplicate-files:
en_US: "Clearing up duplicate files"
de_DE: "Doppelte Dateien werden bereinigt"
es_ES: "Eliminando archivos duplicados"
fr_FR: "Suppression des fichiers en double"
pl_PL: "Usuwanie zduplikowanych plików"
disk.main.converting-ext4-to-btrfs:
en_US: "Converting %{name} from ext4 to btrfs"
de_DE: "%{name} wird von ext4 nach btrfs konvertiert"
es_ES: "Convirtiendo %{name} de ext4 a btrfs"
fr_FR: "Conversion de %{name} d'ext4 vers btrfs"
pl_PL: "Konwertowanie %{name} z ext4 na btrfs"
disk.main.converting-to-btrfs:
en_US: "Performing file system conversion to btrfs. This can take many hours, please be patient and DO NOT unplug the server."
de_DE: "Dateisystemkonvertierung zu btrfs wird durchgeführt. Dies kann viele Stunden dauern, bitte haben Sie Geduld und trennen Sie den Server NICHT vom Strom."
@@ -879,6 +893,20 @@ disk.main.converting-to-btrfs:
fr_FR: "Conversion du système de fichiers vers btrfs en cours. Cela peut prendre de nombreuses heures, soyez patient et NE débranchez PAS le serveur."
pl_PL: "Wykonywanie konwersji systemu plików na btrfs. To może potrwać wiele godzin, prosimy o cierpliwość i NIE odłączaj serwera od zasilania."
disk.main.could-not-activate-vg:
en_US: "Could not activate VG %{guid} for filesystem probe: %{error}"
de_DE: "VG %{guid} konnte für die Dateisystemprüfung nicht aktiviert werden: %{error}"
es_ES: "No se pudo activar VG %{guid} para la comprobación del sistema de archivos: %{error}"
fr_FR: "Impossible d'activer le VG %{guid} pour la vérification du système de fichiers : %{error}"
pl_PL: "Nie udało się aktywować VG %{guid} do sprawdzenia systemu plików: %{error}"
disk.main.could-not-import-vg:
en_US: "Could not import VG %{guid} for filesystem probe: %{error}"
de_DE: "VG %{guid} konnte für die Dateisystemprüfung nicht importiert werden: %{error}"
es_ES: "No se pudo importar VG %{guid} para la comprobación del sistema de archivos: %{error}"
fr_FR: "Impossible d'importer le VG %{guid} pour la vérification du système de fichiers : %{error}"
pl_PL: "Nie udało się zaimportować VG %{guid} do sprawdzenia systemu plików: %{error}"
disk.main.incorrect-disk:
en_US: "A StartOS disk was found, but it is not the correct disk for this device."
de_DE: "Eine StartOS-Festplatte wurde gefunden, aber es ist nicht die richtige Festplatte für dieses Gerät."
@@ -886,6 +914,20 @@ disk.main.incorrect-disk:
fr_FR: "Un disque StartOS a été trouvé, mais ce n'est pas le bon disque pour cet appareil."
pl_PL: "Znaleziono dysk StartOS, ale nie jest to właściwy dysk dla tego urządzenia."
disk.main.optimizing-filesystem:
en_US: "Optimizing filesystem"
de_DE: "Dateisystem wird optimiert"
es_ES: "Optimizando sistema de archivos"
fr_FR: "Optimisation du système de fichiers"
pl_PL: "Optymalizacja systemu plików"
disk.main.running-e2fsck:
en_US: "Running e2fsck before converting %{name} from ext4 to btrfs"
de_DE: "e2fsck wird vor der Konvertierung von %{name} von ext4 nach btrfs ausgeführt"
es_ES: "Ejecutando e2fsck antes de convertir %{name} de ext4 a btrfs"
fr_FR: "Exécution de e2fsck avant la conversion de %{name} d'ext4 vers btrfs"
pl_PL: "Uruchamianie e2fsck przed konwersją %{name} z ext4 na btrfs"
# disk/util.rs
disk.util.not-canonical-block-device:
en_US: "not a canonical block device"
@@ -1729,6 +1771,20 @@ migration.migrating-package:
fr_FR: "Migration du paquet %{package}..."
pl_PL: "Migracja pakietu %{package}..."
migration.services-failed-title:
en_US: "Services Failed To Migrate"
de_DE: "Dienste konnten nicht migriert werden"
es_ES: "Los servicios no pudieron migrarse"
fr_FR: "Échec de la migration des services"
pl_PL: "Migracja usług nie powiodła się"
migration.services-failed-message:
en_US: "Failed to migrate the following services from 0.3.5.1: %{services}\nYOUR DATA IS SAFE. Simply re-install these services from the marketplace."
de_DE: "Die folgenden Dienste konnten nicht von 0.3.5.1 migriert werden: %{services}\nIHRE DATEN SIND SICHER. Installieren Sie diese Dienste einfach erneut über den Marktplatz."
es_ES: "No se pudieron migrar los siguientes servicios desde 0.3.5.1: %{services}\nSUS DATOS ESTÁN SEGUROS. Simplemente reinstale estos servicios desde el marketplace."
fr_FR: "Échec de la migration des services suivants depuis 0.3.5.1 : %{services}\nVOS DONNÉES SONT EN SÉCURITÉ. Réinstallez simplement ces services depuis le marketplace."
pl_PL: "Nie udało się zmigrować następujących usług z 0.3.5.1: %{services}\nTWOJE DANE SĄ BEZPIECZNE. Po prostu zainstaluj ponownie te usługi z marketplace."
# registry/admin.rs
registry.admin.unknown-signer:
en_US: "Unknown signer"
@@ -1826,13 +1882,28 @@ registry.os.version.signer-not-authorized:
fr_FR: "Le signataire %{signer} n'est pas autorisé à signer pour v%{version}"
pl_PL: "Sygnatariusz %{signer} nie jest autoryzowany do podpisywania v%{version}"
# registry/os/promote.rs
registry.os.promote.need-from-or-to:
en_US: "At least one of --from or --to must be specified"
de_DE: "Mindestens --from oder --to muss angegeben werden"
es_ES: "Se debe especificar al menos --from o --to"
fr_FR: "Au moins --from ou --to doit être spécifié"
pl_PL: "Należy podać przynajmniej --from lub --to"
registry.os.promote.version-not-found:
en_US: "OS version %{version} not found on source registry"
de_DE: "OS-Version %{version} nicht in der Quell-Registry gefunden"
es_ES: "Versión del SO %{version} no encontrada en el registro de origen"
fr_FR: "Version OS %{version} introuvable dans le registre source"
pl_PL: "Wersja OS %{version} nie znaleziona w rejestrze źródłowym"
# registry/package/mod.rs
registry.package.remove-not-exist:
en_US: "%{id}@%{version}%{sighash} does not exist, so not removed"
de_DE: "%{id}@%{version}%{sighash} existiert nicht, daher nicht entfernt"
es_ES: "%{id}@%{version}%{sighash} no existe, por lo que no se eliminó"
fr_FR: "%{id}@%{version}%{sighash} n'existe pas, donc non supprimé"
pl_PL: "%{id}@%{version}%{sighash} nie istnieje, więc nie usunięto"
en_US: "%{id}%{version}%{sighash} does not exist, so not removed"
de_DE: "%{id}%{version}%{sighash} existiert nicht, daher nicht entfernt"
es_ES: "%{id}%{version}%{sighash} no existe, por lo que no se eliminó"
fr_FR: "%{id}%{version}%{sighash} n'existe pas, donc non supprimé"
pl_PL: "%{id}%{version}%{sighash} nie istnieje, więc nie usunięto"
# registry/package/add.rs
registry.package.add.must-specify-url:
@@ -1856,6 +1927,13 @@ registry.package.missing-signer:
fr_FR: "Signataire manquant"
pl_PL: "Brak sygnatariusza"
registry.package.remove-has-versions:
en_US: "Package %{id} has versions; use --force to remove"
de_DE: "Paket %{id} hat Versionen; verwenden Sie --force zum Entfernen"
es_ES: "El paquete %{id} tiene versiones; use --force para eliminar"
fr_FR: "Le paquet %{id} a des versions ; utilisez --force pour supprimer"
pl_PL: "Pakiet %{id} ma wersje; użyj --force aby usunąć"
registry.package.unauthorized:
en_US: "Unauthorized"
de_DE: "Nicht autorisiert"
@@ -1870,6 +1948,20 @@ registry.package.add-mirror.unauthorized:
fr_FR: "Non autorisé"
pl_PL: "Brak autoryzacji"
registry.package.promote.need-from-or-to:
en_US: "At least one of --from or --to must be specified"
de_DE: "Mindestens --from oder --to muss angegeben werden"
es_ES: "Se debe especificar al menos --from o --to"
fr_FR: "Au moins --from ou --to doit être spécifié"
pl_PL: "Należy podać przynajmniej --from lub --to"
registry.package.promote.version-not-found:
en_US: "Version %{version} of %{id} not found on source registry"
de_DE: "Version %{version} von %{id} nicht in der Quell-Registry gefunden"
es_ES: "Versión %{version} de %{id} no encontrada en el registro de origen"
fr_FR: "Version %{version} de %{id} introuvable dans le registre source"
pl_PL: "Wersja %{version} pakietu %{id} nie znaleziona w rejestrze źródłowym"
registry.package.cannot-remove-last-mirror:
en_US: "Cannot remove last mirror from an s9pk"
de_DE: "Letzter Spiegel kann nicht aus einem s9pk entfernt werden"
@@ -2110,6 +2202,42 @@ service.persistent-container.service-exited:
fr_FR: "Le service pour %{id} s'est terminé"
pl_PL: "Usługa dla %{id} zakończyła działanie"
# service/service_map.rs
service.service-map.installing-failed:
en_US: "Installing Failed"
de_DE: "Installation fehlgeschlagen"
es_ES: "Instalación fallida"
fr_FR: "Échec de l'installation"
pl_PL: "Instalacja nie powiodła się"
service.service-map.operation-failed:
en_US: "%{operation} Failed"
de_DE: "%{operation} fehlgeschlagen"
es_ES: "%{operation} falló"
fr_FR: "Échec de %{operation}"
pl_PL: "%{operation} nie powiodło się"
service.service-map.restoring-failed:
en_US: "Restoring Failed"
de_DE: "Wiederherstellung fehlgeschlagen"
es_ES: "Restauración fallida"
fr_FR: "Échec de la restauration"
pl_PL: "Przywracanie nie powiodło się"
service.service-map.uninstall-failed:
en_US: "Uninstall Failed"
de_DE: "Deinstallation fehlgeschlagen"
es_ES: "Desinstalación fallida"
fr_FR: "Échec de la désinstallation"
pl_PL: "Dezinstalacja nie powiodła się"
service.service-map.updating-failed:
en_US: "Updating Failed"
de_DE: "Aktualisierung fehlgeschlagen"
es_ES: "Actualización fallida"
fr_FR: "Échec de la mise à jour"
pl_PL: "Aktualizacja nie powiodła się"
# service/uninstall.rs
service.uninstall.invalid-package-state-for-cleanup:
en_US: "Invalid package state for cleanup: %{state}"
@@ -2881,6 +3009,13 @@ help.arg.force-clear-task:
fr_FR: "Forcer la suppression de la tâche même si elle est en cours"
pl_PL: "Wymuś wyczyszczenie zadania nawet jeśli jest uruchomione"
help.arg.force-remove-package:
en_US: "Force removal even if the package has versions"
de_DE: "Entfernung erzwingen, auch wenn das Paket Versionen hat"
es_ES: "Forzar la eliminación aunque el paquete tenga versiones"
fr_FR: "Forcer la suppression même si le paquet a des versions"
pl_PL: "Wymuś usunięcie nawet jeśli pakiet ma wersje"
help.arg.force-stderr-tty:
en_US: "Force stderr to be treated as a TTY"
de_DE: "stderr als TTY behandeln erzwingen"
@@ -2902,6 +3037,13 @@ help.arg.force-uninstall:
fr_FR: "Ignorer les erreurs dans le script de désinitialisation du service"
pl_PL: "Ignoruj błędy w skrypcie deinicjalizacji usługi"
help.arg.from-registry-url:
en_US: "Source registry URL to promote from"
de_DE: "Quell-Registry-URL zum Heraufstufen"
es_ES: "URL del registro de origen para promover"
fr_FR: "URL du registre source pour la promotion"
pl_PL: "URL rejestru źródłowego do promowania"
help.arg.host-url:
en_US: "URL of the StartOS server"
de_DE: "URL des StartOS-Servers"
@@ -2923,6 +3065,13 @@ help.arg.icon-path:
fr_FR: "Chemin vers le fichier d'icône du service"
pl_PL: "Ścieżka do pliku ikony usługi"
help.arg.icon-source:
en_US: "Icon source: file path, file:// URL, http(s):// URL, or data: URL"
de_DE: "Icon-Quelle: Dateipfad, file://-URL, http(s)://-URL oder data:-URL"
es_ES: "Fuente del icono: ruta de archivo, URL file://, URL http(s):// o URL data:"
fr_FR: "Source de l'icône : chemin de fichier, URL file://, URL http(s):// ou URL data:"
pl_PL: "Źródło ikony: ścieżka pliku, URL file://, URL http(s):// lub URL data:"
help.arg.image-id:
en_US: "Docker image identifier"
de_DE: "Docker-Image-Kennung"
@@ -3007,6 +3156,34 @@ help.arg.merge:
fr_FR: "Fusionner avec la plage de versions existante au lieu de remplacer"
pl_PL: "Połącz z istniejącym zakresem wersji zamiast zastępować"
help.arg.metrics-after:
en_US: "Start of time range (RFC 3339 timestamp)"
de_DE: "Beginn des Zeitraums (RFC 3339 Zeitstempel)"
es_ES: "Inicio del rango de tiempo (marca de tiempo RFC 3339)"
fr_FR: "Début de la plage temporelle (horodatage RFC 3339)"
pl_PL: "Początek zakresu czasu (znacznik czasu RFC 3339)"
help.arg.metrics-before:
en_US: "End of time range (RFC 3339 timestamp)"
de_DE: "Ende des Zeitraums (RFC 3339 Zeitstempel)"
es_ES: "Fin del rango de tiempo (marca de tiempo RFC 3339)"
fr_FR: "Fin de la plage temporelle (horodatage RFC 3339)"
pl_PL: "Koniec zakresu czasu (znacznik czasu RFC 3339)"
help.arg.metrics-pkg-id:
en_US: "Filter by package ID"
de_DE: "Nach Paket-ID filtern"
es_ES: "Filtrar por ID de paquete"
fr_FR: "Filtrer par identifiant de paquet"
pl_PL: "Filtruj według identyfikatora pakietu"
help.arg.metrics-version:
en_US: "Filter by version"
de_DE: "Nach Version filtern"
es_ES: "Filtrar por versión"
fr_FR: "Filtrer par version"
pl_PL: "Filtruj według wersji"
help.arg.mirror-url:
en_US: "URL of the mirror"
de_DE: "URL des Spiegels"
@@ -3126,13 +3303,6 @@ help.arg.port:
fr_FR: "Numéro de port"
pl_PL: "Numer portu"
help.arg.postgres-connection-url:
en_US: "PostgreSQL connection URL"
de_DE: "PostgreSQL-Verbindungs-URL"
es_ES: "URL de conexión PostgreSQL"
fr_FR: "URL de connexion PostgreSQL"
pl_PL: "URL połączenia PostgreSQL"
help.arg.proxy-url:
en_US: "HTTP/SOCKS proxy URL"
de_DE: "HTTP/SOCKS-Proxy-URL"
@@ -3357,6 +3527,13 @@ help.arg.target-version-range:
fr_FR: "Contrainte de plage de version cible"
pl_PL: "Ograniczenie zakresu wersji docelowej"
help.arg.to-registry-url:
en_US: "Destination registry URL to promote to"
de_DE: "Ziel-Registry-URL zum Heraufstufen"
es_ES: "URL del registro de destino para promover"
fr_FR: "URL du registre de destination pour la promotion"
pl_PL: "URL rejestru docelowego do promowania"
help.arg.tor-proxy-url:
en_US: "Tor SOCKS proxy URL"
de_DE: "Tor-SOCKS-Proxy-URL"
@@ -4457,6 +4634,13 @@ about.commands-registry-db:
fr_FR: "Commandes pour interagir avec la base de données, comme dump et apply"
pl_PL: "Polecenia interakcji z bazą danych, np. dump i apply"
about.commands-registry-metrics:
en_US: "Query registry usage metrics"
de_DE: "Registry-Nutzungsmetriken abfragen"
es_ES: "Consultar métricas de uso del registro"
fr_FR: "Consulter les métriques d'utilisation du registre"
pl_PL: "Zapytaj o metryki użycia rejestru"
about.commands-registry-info:
en_US: "View or edit registry information"
de_DE: "Registry-Informationen anzeigen oder bearbeiten"
@@ -4898,6 +5082,27 @@ about.get-listen-address-for-webserver:
fr_FR: "Obtenir l'adresse d'écoute du serveur web"
pl_PL: "Pobierz adres nasłuchiwania serwera internetowego"
about.get-metrics-downloads:
en_US: "Count package download requests with optional filters"
de_DE: "Paket-Download-Anfragen mit optionalen Filtern zählen"
es_ES: "Contar solicitudes de descarga de paquetes con filtros opcionales"
fr_FR: "Compter les demandes de téléchargement de paquets avec filtres optionnels"
pl_PL: "Zlicz żądania pobrania pakietów z opcjonalnymi filtrami"
about.get-metrics-summary:
en_US: "Get a summary of registry usage metrics"
de_DE: "Zusammenfassung der Registry-Nutzungsmetriken abrufen"
es_ES: "Obtener un resumen de las métricas de uso del registro"
fr_FR: "Obtenir un résumé des métriques d'utilisation du registre"
pl_PL: "Pobierz podsumowanie metryk użycia rejestru"
about.get-metrics-users:
en_US: "Count unique active users within a time range"
de_DE: "Eindeutige aktive Benutzer in einem Zeitraum zählen"
es_ES: "Contar usuarios activos únicos dentro de un rango de tiempo"
fr_FR: "Compter les utilisateurs actifs uniques dans un intervalle de temps"
pl_PL: "Zlicz unikalnych aktywnych użytkowników w zakresie czasu"
about.get-os-versions-info:
en_US: "Get OS versions info"
de_DE: "Informationen zu Betriebssystemversionen abrufen"
@@ -5234,6 +5439,20 @@ about.persist-new-notification:
fr_FR: "Persister une nouvelle notification"
pl_PL: "Utrwal nowe powiadomienie"
about.promote-os-registry:
en_US: "Promote an OS version from one registry to another"
de_DE: "Eine OS-Version von einer Registry in eine andere heraufstufen"
es_ES: "Promover una versión del SO de un registro a otro"
fr_FR: "Promouvoir une version OS d'un registre à un autre"
pl_PL: "Promuj wersję OS z jednego rejestru do drugiego"
about.promote-package-registry:
en_US: "Promote a package from one registry to another"
de_DE: "Ein Paket von einer Registry in eine andere heraufstufen"
es_ES: "Promover un paquete de un registro a otro"
fr_FR: "Promouvoir un paquet d'un registre à un autre"
pl_PL: "Promuj pakiet z jednego rejestru do drugiego"
about.publish-s9pk:
en_US: "Publish s9pk to S3 bucket and index on registry"
de_DE: "S9pk in S3-Bucket veröffentlichen und in Registry indizieren"
@@ -5367,6 +5586,13 @@ about.remove-package-signer:
fr_FR: "Supprimer le signataire du package"
pl_PL: "Usuń sygnatariusza pakietu"
about.remove-signer:
en_US: "Remove signer and all their authorizations"
de_DE: "Unterzeichner und alle Autorisierungen entfernen"
es_ES: "Eliminar firmante y todas sus autorizaciones"
fr_FR: "Supprimer le signataire et toutes ses autorisations"
pl_PL: "Usuń sygnatariusza i wszystkie jego autoryzacje"
about.remove-port-forward:
en_US: "Remove port forward"
de_DE: "Portweiterleitung entfernen"

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-net-forward-dump-table 1 "dump-table "
.SH NAME
start\-cli\-net\-forward\-dump\-table
start\-cli\-net\-forward\-dump\-table \- Dump port forward table
.SH SYNOPSIS
\fBstart\-cli net forward dump\-table\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
Dump port forward table
.SH OPTIONS
.TP
\fB\-\-format\fR

View File

@@ -14,3 +14,4 @@ Print help
.SH SUBCOMMANDS
.TP
start\-cli\-net\-forward\-dump\-table(1)
Dump port forward table

View File

@@ -2,11 +2,11 @@
.el .ds Aq '
.TH start-cli-net-gateway-check-port 1 "check-port "
.SH NAME
start\-cli\-net\-gateway\-check\-port \- about.check\-port\-reachability
start\-cli\-net\-gateway\-check\-port \- Check if a port is reachable from the WAN
.SH SYNOPSIS
\fBstart\-cli net gateway check\-port\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIPORT\fR> <\fIGATEWAY\fR>
.SH DESCRIPTION
about.check\-port\-reachability
Check if a port is reachable from the WAN
.SH OPTIONS
.TP
\fB\-\-format\fR
@@ -16,7 +16,7 @@ about.check\-port\-reachability
Print help
.TP
<\fIPORT\fR>
help.arg.port
Port number
.TP
<\fIGATEWAY\fR>
Gateway identifier

View File

@@ -2,11 +2,11 @@
.el .ds Aq '
.TH start-cli-net-gateway-set-default-outbound 1 "set-default-outbound "
.SH NAME
start\-cli\-net\-gateway\-set\-default\-outbound \- about.set\-default\-outbound\-gateway
start\-cli\-net\-gateway\-set\-default\-outbound \- Set the default outbound gateway
.SH SYNOPSIS
\fBstart\-cli net gateway set\-default\-outbound\fR [\fB\-h\fR|\fB\-\-help\fR] [\fIGATEWAY\fR]
.SH DESCRIPTION
about.set\-default\-outbound\-gateway
Set the default outbound gateway
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -17,7 +17,7 @@ start\-cli\-net\-gateway\-check\-dns(1)
Check DNS configuration for a gateway
.TP
start\-cli\-net\-gateway\-check\-port(1)
about.check\-port\-reachability
Check if a port is reachable from the WAN
.TP
start\-cli\-net\-gateway\-forget(1)
Forget a disconnected gateway
@@ -26,7 +26,7 @@ start\-cli\-net\-gateway\-list(1)
Show gateways StartOS can listen on
.TP
start\-cli\-net\-gateway\-set\-default\-outbound(1)
about.set\-default\-outbound\-gateway
Set the default outbound gateway
.TP
start\-cli\-net\-gateway\-set\-name(1)
Rename a gateway

View File

@@ -0,0 +1,22 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-cli-net-ssl-generate-certificate 1 "generate-certificate "
.SH NAME
start\-cli\-net\-ssl\-generate\-certificate \- Generate an SSL certificate from the system root CA
.SH SYNOPSIS
\fBstart\-cli net ssl generate\-certificate\fR [\fB\-\-ed25519\fR] [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fIHOSTNAMES\fR]
.SH DESCRIPTION
Generate an SSL certificate from the system root CA
.SH OPTIONS
.TP
\fB\-\-ed25519\fR
Use Ed25519 instead of NIST P\-256
.TP
\fB\-\-format\fR
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP
[\fIHOSTNAMES\fR]
Hostnames to include in the certificate

View File

@@ -0,0 +1,17 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-cli-net-ssl 1 "ssl "
.SH NAME
start\-cli\-net\-ssl \- Manage SSL certificates
.SH SYNOPSIS
\fBstart\-cli net ssl\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Manage SSL certificates
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.SH SUBCOMMANDS
.TP
start\-cli\-net\-ssl\-generate\-certificate(1)
Generate an SSL certificate from the system root CA

View File

@@ -10,7 +10,7 @@ Add a new tunnel
.SH OPTIONS
.TP
\fB\-\-set\-as\-default\-outbound\fR
help.arg.set\-as\-default\-outbound
Set as the default outbound gateway
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
@@ -22,7 +22,7 @@ Tunnel name
WireGuard configuration
.TP
[\fIGATEWAY_TYPE\fR]
help.arg.gateway\-type
Type of gateway
.br
.br

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-net-vhost-add-passthrough 1 "add-passthrough "
.SH NAME
start\-cli\-net\-vhost\-add\-passthrough
start\-cli\-net\-vhost\-add\-passthrough \- Add vhost passthrough
.SH SYNOPSIS
\fBstart\-cli net vhost add\-passthrough\fR <\fB\-\-hostname\fR> <\fB\-\-listen\-port\fR> <\fB\-\-backend\fR> [\fB\-\-public\-gateway\fR] [\fB\-\-private\-ip\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
Add vhost passthrough
.SH OPTIONS
.TP
\fB\-\-hostname\fR \fI<HOSTNAME>\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-net-vhost-dump-table 1 "dump-table "
.SH NAME
start\-cli\-net\-vhost\-dump\-table
start\-cli\-net\-vhost\-dump\-table \- Dump vhost proxy table
.SH SYNOPSIS
\fBstart\-cli net vhost dump\-table\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
Dump vhost proxy table
.SH OPTIONS
.TP
\fB\-\-format\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-net-vhost-list-passthrough 1 "list-passthrough "
.SH NAME
start\-cli\-net\-vhost\-list\-passthrough
start\-cli\-net\-vhost\-list\-passthrough \- List vhost passthroughs
.SH SYNOPSIS
\fBstart\-cli net vhost list\-passthrough\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
List vhost passthroughs
.SH OPTIONS
.TP
\fB\-\-format\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-net-vhost-remove-passthrough 1 "remove-passthrough "
.SH NAME
start\-cli\-net\-vhost\-remove\-passthrough
start\-cli\-net\-vhost\-remove\-passthrough \- Remove vhost passthrough
.SH SYNOPSIS
\fBstart\-cli net vhost remove\-passthrough\fR <\fB\-\-hostname\fR> <\fB\-\-listen\-port\fR> [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
Remove vhost passthrough
.SH OPTIONS
.TP
\fB\-\-hostname\fR \fI<HOSTNAME>\fR

View File

@@ -14,9 +14,13 @@ Print help
.SH SUBCOMMANDS
.TP
start\-cli\-net\-vhost\-add\-passthrough(1)
Add vhost passthrough
.TP
start\-cli\-net\-vhost\-dump\-table(1)
Dump vhost proxy table
.TP
start\-cli\-net\-vhost\-list\-passthrough(1)
List vhost passthroughs
.TP
start\-cli\-net\-vhost\-remove\-passthrough(1)
Remove vhost passthrough

View File

@@ -25,6 +25,9 @@ Manage port forwards
start\-cli\-net\-gateway(1)
View and edit gateway configurations
.TP
start\-cli\-net\-ssl(1)
Manage SSL certificates
.TP
start\-cli\-net\-tunnel(1)
Manage tunnels
.TP

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-package-attach 1 "attach "
.SH NAME
start\-cli\-package\-attach
start\-cli\-package\-attach \- Execute commands in container
.SH SYNOPSIS
\fBstart\-cli package attach\fR [\fB\-\-force\-tty\fR] [\fB\-s\fR|\fB\-\-subcontainer\fR] [\fB\-n\fR|\fB\-\-name\fR] [\fB\-u\fR|\fB\-\-user\fR] [\fB\-i\fR|\fB\-\-image\-id\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR> [\fICOMMAND\fR]
.SH DESCRIPTION
Execute commands in container
.SH OPTIONS
.TP
\fB\-\-force\-tty\fR

View File

@@ -4,11 +4,14 @@
.SH NAME
start\-cli\-package\-backup\-restore \- Restore packages from backup
.SH SYNOPSIS
\fBstart\-cli package backup restore\fR [\fB\-h\fR|\fB\-\-help\fR] <\fITARGET_ID\fR> <\fIPASSWORD\fR> [\fIIDS\fR]
\fBstart\-cli package backup restore\fR [\fB\-\-server\-id\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fITARGET_ID\fR> <\fIPASSWORD\fR> [\fIIDS\fR]
.SH DESCRIPTION
Restore packages from backup
.SH OPTIONS
.TP
\fB\-\-server\-id\fR \fI<SERVER_ID>\fR
Unique server identifier
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-package-host-address-domain-private 1 "private "
.SH NAME
start\-cli\-package\-host\-address\-domain\-private
start\-cli\-package\-host\-address\-domain\-private \- Commands for managing private domains for a host
.SH SYNOPSIS
\fBstart\-cli package host address domain private\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing private domains for a host
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-package-host-address-domain-public 1 "public "
.SH NAME
start\-cli\-package\-host\-address\-domain\-public
start\-cli\-package\-host\-address\-domain\-public \- Commands for managing public domains for a host
.SH SYNOPSIS
\fBstart\-cli package host address domain public\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing public domains for a host
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-package-host-address-domain 1 "domain "
.SH NAME
start\-cli\-package\-host\-address\-domain
start\-cli\-package\-host\-address\-domain \- Commands for managing host address domains
.SH SYNOPSIS
\fBstart\-cli package host address domain\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing host address domains
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
@@ -13,5 +14,7 @@ Print help
.SH SUBCOMMANDS
.TP
start\-cli\-package\-host\-address\-domain\-private(1)
Commands for managing private domains for a host
.TP
start\-cli\-package\-host\-address\-domain\-public(1)
Commands for managing public domains for a host

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-package-host-address 1 "address "
.SH NAME
start\-cli\-package\-host\-address
start\-cli\-package\-host\-address \- Commands for managing host addresses
.SH SYNOPSIS
\fBstart\-cli package host address\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIHOST\fR> <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing host addresses
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
@@ -16,6 +17,7 @@ Host identifier
.SH SUBCOMMANDS
.TP
start\-cli\-package\-host\-address\-domain(1)
Commands for managing host address domains
.TP
start\-cli\-package\-host\-address\-list(1)
List addresses for a host

View File

@@ -2,15 +2,15 @@
.el .ds Aq '
.TH start-cli-package-host-binding-set-address-enabled 1 "set-address-enabled "
.SH NAME
start\-cli\-package\-host\-binding\-set\-address\-enabled \- about.set\-address\-enabled\-for\-binding
start\-cli\-package\-host\-binding\-set\-address\-enabled \- Set a gateway address enabled for a binding
.SH SYNOPSIS
\fBstart\-cli package host binding set\-address\-enabled\fR <\fB\-\-address\fR> [\fB\-\-enabled\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIINTERNAL_PORT\fR>
.SH DESCRIPTION
about.set\-address\-enabled\-for\-binding
Set a gateway address enabled for a binding
.SH OPTIONS
.TP
\fB\-\-address\fR \fI<ADDRESS>\fR
help.arg.address
Network address
.TP
\fB\-\-enabled\fR \fI<ENABLED>\fR
Enable or disable this binding

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-package-host-binding 1 "binding "
.SH NAME
start\-cli\-package\-host\-binding
start\-cli\-package\-host\-binding \- Commands for managing host bindings
.SH SYNOPSIS
\fBstart\-cli package host binding\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIHOST\fR> <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing host bindings
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
@@ -19,4 +20,4 @@ start\-cli\-package\-host\-binding\-list(1)
List bindings for a host
.TP
start\-cli\-package\-host\-binding\-set\-address\-enabled(1)
about.set\-address\-enabled\-for\-binding
Set a gateway address enabled for a binding

View File

@@ -17,5 +17,7 @@ Package identifier
.SH SUBCOMMANDS
.TP
start\-cli\-package\-host\-address(1)
Commands for managing host addresses
.TP
start\-cli\-package\-host\-binding(1)
Commands for managing host bindings

View File

@@ -2,11 +2,11 @@
.el .ds Aq '
.TH start-cli-package-set-outbound-gateway 1 "set-outbound-gateway "
.SH NAME
start\-cli\-package\-set\-outbound\-gateway \- about.set\-outbound\-gateway\-package
start\-cli\-package\-set\-outbound\-gateway \- Set the outbound gateway for a package
.SH SYNOPSIS
\fBstart\-cli package set\-outbound\-gateway\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIPACKAGE\fR> [\fIGATEWAY\fR]
.SH DESCRIPTION
about.set\-outbound\-gateway\-package
Set the outbound gateway for a package
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -17,6 +17,7 @@ start\-cli\-package\-action(1)
Commands to get action input or run an action
.TP
start\-cli\-package\-attach(1)
Execute commands in container
.TP
start\-cli\-package\-backup(1)
Commands for restoring package(s) from backup
@@ -46,7 +47,7 @@ start\-cli\-package\-restart(1)
Restart a service
.TP
start\-cli\-package\-set\-outbound\-gateway(1)
about.set\-outbound\-gateway\-package
Set the outbound gateway for a package
.TP
start\-cli\-package\-start(1)
Start a service

View File

@@ -0,0 +1,16 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-cli-registry-admin-signer-remove 1 "remove "
.SH NAME
start\-cli\-registry\-admin\-signer\-remove \- Remove signer and all their authorizations
.SH SYNOPSIS
\fBstart\-cli registry admin signer remove\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR>
.SH DESCRIPTION
Remove signer and all their authorizations
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP
<\fIID\fR>
Signer identifier

View File

@@ -21,3 +21,6 @@ Edit signer information
.TP
start\-cli\-registry\-admin\-signer\-list(1)
List signers
.TP
start\-cli\-registry\-admin\-signer\-remove(1)
Remove signer and all their authorizations

View File

@@ -13,4 +13,4 @@ Set the registry icon
Print help
.TP
<\fIICON\fR>
Path to service icon file
Icon source: file path, file:// URL, http(s):// URL, or data: URL

View File

@@ -2,11 +2,11 @@
.el .ds Aq '
.TH start-cli-registry-info 1 "info "
.SH NAME
start\-cli\-registry\-info \- Display registry info
start\-cli\-registry\-info \- View or edit registry information
.SH SYNOPSIS
\fBstart\-cli registry info\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fIsubcommands\fR]
.SH DESCRIPTION
Display registry info
View or edit registry information
.SH OPTIONS
.TP
\fB\-\-format\fR

View File

@@ -0,0 +1,28 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-cli-registry-metrics-downloads 1 "downloads "
.SH NAME
start\-cli\-registry\-metrics\-downloads \- Count package download requests with optional filters
.SH SYNOPSIS
\fBstart\-cli registry metrics downloads\fR [\fB\-\-pkg\-id\fR] [\fB\-\-version\fR] [\fB\-\-after\fR] [\fB\-\-before\fR] [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
Count package download requests with optional filters
.SH OPTIONS
.TP
\fB\-\-pkg\-id\fR \fI<PKG_ID>\fR
Filter by package ID
.TP
\fB\-\-version\fR \fI<VERSION>\fR
Filter by version
.TP
\fB\-\-after\fR \fI<AFTER>\fR
Start of time range (RFC 3339 timestamp)
.TP
\fB\-\-before\fR \fI<BEFORE>\fR
End of time range (RFC 3339 timestamp)
.TP
\fB\-\-format\fR
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help

View File

@@ -0,0 +1,16 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-cli-registry-metrics-summary 1 "summary "
.SH NAME
start\-cli\-registry\-metrics\-summary \- Get a summary of registry usage metrics
.SH SYNOPSIS
\fBstart\-cli registry metrics summary\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
Get a summary of registry usage metrics
.SH OPTIONS
.TP
\fB\-\-format\fR
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help

View File

@@ -0,0 +1,22 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-cli-registry-metrics-users 1 "users "
.SH NAME
start\-cli\-registry\-metrics\-users \- Count unique active users within a time range
.SH SYNOPSIS
\fBstart\-cli registry metrics users\fR [\fB\-\-after\fR] [\fB\-\-before\fR] [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
Count unique active users within a time range
.SH OPTIONS
.TP
\fB\-\-after\fR \fI<AFTER>\fR
Start of time range (RFC 3339 timestamp)
.TP
\fB\-\-before\fR \fI<BEFORE>\fR
End of time range (RFC 3339 timestamp)
.TP
\fB\-\-format\fR
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help

View File

@@ -0,0 +1,23 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-cli-registry-metrics 1 "metrics "
.SH NAME
start\-cli\-registry\-metrics \- Query registry usage metrics
.SH SYNOPSIS
\fBstart\-cli registry metrics\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Query registry usage metrics
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.SH SUBCOMMANDS
.TP
start\-cli\-registry\-metrics\-downloads(1)
Count package download requests with optional filters
.TP
start\-cli\-registry\-metrics\-summary(1)
Get a summary of registry usage metrics
.TP
start\-cli\-registry\-metrics\-users(1)
Count unique active users within a time range

View File

@@ -0,0 +1,22 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-cli-registry-os-promote 1 "promote "
.SH NAME
start\-cli\-registry\-os\-promote \- Promote an OS version from one registry to another
.SH SYNOPSIS
\fBstart\-cli registry os promote\fR [\fB\-\-from\fR] [\fB\-\-to\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIVERSION\fR>
.SH DESCRIPTION
Promote an OS version from one registry to another
.SH OPTIONS
.TP
\fB\-\-from\fR \fI<FROM>\fR
Source registry URL to promote from
.TP
\fB\-\-to\fR \fI<TO>\fR
Destination registry URL to promote to
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP
<\fIVERSION\fR>
StartOS version number

View File

@@ -19,5 +19,8 @@ Commands to add, sign, or get registry assets
start\-cli\-registry\-os\-index(1)
List OS versions index
.TP
start\-cli\-registry\-os\-promote(1)
Promote an OS version from one registry to another
.TP
start\-cli\-registry\-os\-version(1)
Commands to add, remove, or list versions or version signers

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-registry-package-category-list 1 "list "
.SH NAME
start\-cli\-registry\-package\-category\-list
start\-cli\-registry\-package\-category\-list \- List registry categories
.SH SYNOPSIS
\fBstart\-cli registry package category list\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
List registry categories
.SH OPTIONS
.TP
\fB\-\-format\fR

View File

@@ -20,6 +20,7 @@ start\-cli\-registry\-package\-category\-add\-package(1)
Add a package to a category
.TP
start\-cli\-registry\-package\-category\-list(1)
List registry categories
.TP
start\-cli\-registry\-package\-category\-remove(1)
Remove category from registry

View File

@@ -4,7 +4,7 @@
.SH NAME
start\-cli\-registry\-package\-download \- Download s9pk package
.SH SYNOPSIS
\fBstart\-cli registry package download\fR [\fB\-v\fR|\fB\-\-target\-version\fR] [\fB\-d\fR|\fB\-\-dest\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR>
\fBstart\-cli registry package download\fR [\fB\-v\fR|\fB\-\-target\-version\fR] [\fB\-d\fR|\fB\-\-dest\fR] [\fB\-a\fR|\fB\-\-arch\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR>
.SH DESCRIPTION
Download s9pk package
.SH OPTIONS
@@ -15,6 +15,9 @@ Target version range constraint
\fB\-d\fR, \fB\-\-dest\fR \fI<DEST>\fR
Destination path for download
.TP
\fB\-a\fR, \fB\-\-arch\fR \fI<ARCH>\fR
Target CPU architecture (e.g. x86_64, aarch64)
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP

View File

@@ -0,0 +1,25 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-cli-registry-package-promote 1 "promote "
.SH NAME
start\-cli\-registry\-package\-promote \- Promote a package from one registry to another
.SH SYNOPSIS
\fBstart\-cli registry package promote\fR [\fB\-\-from\fR] [\fB\-\-to\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR> <\fIVERSION\fR>
.SH DESCRIPTION
Promote a package from one registry to another
.SH OPTIONS
.TP
\fB\-\-from\fR \fI<FROM>\fR
Source registry URL to promote from
.TP
\fB\-\-to\fR \fI<TO>\fR
Destination registry URL to promote to
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP
<\fIID\fR>
Package identifier
.TP
<\fIVERSION\fR>
Package version

View File

@@ -4,7 +4,7 @@
.SH NAME
start\-cli\-registry\-package\-remove \- Remove package from registry
.SH SYNOPSIS
\fBstart\-cli registry package remove\fR [\fB\-\-sighash\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR> <\fIVERSION\fR>
\fBstart\-cli registry package remove\fR [\fB\-\-sighash\fR] [\fB\-\-force\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR> [\fIVERSION\fR]
.SH DESCRIPTION
Remove package from registry
.SH OPTIONS
@@ -12,11 +12,14 @@ Remove package from registry
\fB\-\-sighash\fR \fI<SIGHASH>\fR
Hash for signature verification
.TP
\fB\-\-force\fR
Force removal even if the package has versions
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP
<\fIID\fR>
Package identifier
.TP
<\fIVERSION\fR>
[\fIVERSION\fR]
Package version

View File

@@ -31,6 +31,9 @@ List installation candidates
start\-cli\-registry\-package\-index(1)
List packages and categories
.TP
start\-cli\-registry\-package\-promote(1)
Promote a package from one registry to another
.TP
start\-cli\-registry\-package\-remove(1)
Remove package from registry
.TP

View File

@@ -23,7 +23,10 @@ start\-cli\-registry\-index(1)
List registry info and packages
.TP
start\-cli\-registry\-info(1)
Display registry info
View or edit registry information
.TP
start\-cli\-registry\-metrics(1)
Query registry usage metrics
.TP
start\-cli\-registry\-os(1)
Commands related to OS assets and versions

View File

@@ -2,11 +2,11 @@
.el .ds Aq '
.TH start-cli-s9pk-inspect-commitment 1 "commitment "
.SH NAME
start\-cli\-s9pk\-inspect\-commitment \- about.display\-s9pk\-root\-sighash\-and\-maxsize
start\-cli\-s9pk\-inspect\-commitment \- Display the s9pk root signature hash and max size
.SH SYNOPSIS
\fBstart\-cli s9pk inspect commitment\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
about.display\-s9pk\-root\-sighash\-and\-maxsize
Display the s9pk root signature hash and max size
.SH OPTIONS
.TP
\fB\-\-format\fR

View File

@@ -20,7 +20,7 @@ start\-cli\-s9pk\-inspect\-cat(1)
Display file contents from s9pk
.TP
start\-cli\-s9pk\-inspect\-commitment(1)
about.display\-s9pk\-root\-sighash\-and\-maxsize
Display the s9pk root signature hash and max size
.TP
start\-cli\-s9pk\-inspect\-file\-tree(1)
Display list of paths in s9pk

View File

@@ -2,11 +2,11 @@
.el .ds Aq '
.TH start-cli-server-device-info 1 "device-info "
.SH NAME
start\-cli\-server\-device\-info \- about.get\-device\-info
start\-cli\-server\-device\-info \- Display device information
.SH SYNOPSIS
\fBstart\-cli server device\-info\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
about.get\-device\-info
Display device information
.SH OPTIONS
.TP
\fB\-\-format\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-server-host-address-domain-private 1 "private "
.SH NAME
start\-cli\-server\-host\-address\-domain\-private
start\-cli\-server\-host\-address\-domain\-private \- Commands for managing private domains for a host
.SH SYNOPSIS
\fBstart\-cli server host address domain private\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing private domains for a host
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-server-host-address-domain-public 1 "public "
.SH NAME
start\-cli\-server\-host\-address\-domain\-public
start\-cli\-server\-host\-address\-domain\-public \- Commands for managing public domains for a host
.SH SYNOPSIS
\fBstart\-cli server host address domain public\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing public domains for a host
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-server-host-address-domain 1 "domain "
.SH NAME
start\-cli\-server\-host\-address\-domain
start\-cli\-server\-host\-address\-domain \- Commands for managing host address domains
.SH SYNOPSIS
\fBstart\-cli server host address domain\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing host address domains
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
@@ -13,5 +14,7 @@ Print help
.SH SUBCOMMANDS
.TP
start\-cli\-server\-host\-address\-domain\-private(1)
Commands for managing private domains for a host
.TP
start\-cli\-server\-host\-address\-domain\-public(1)
Commands for managing public domains for a host

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-server-host-address 1 "address "
.SH NAME
start\-cli\-server\-host\-address
start\-cli\-server\-host\-address \- Commands for managing host addresses
.SH SYNOPSIS
\fBstart\-cli server host address\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing host addresses
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
@@ -13,6 +14,7 @@ Print help
.SH SUBCOMMANDS
.TP
start\-cli\-server\-host\-address\-domain(1)
Commands for managing host address domains
.TP
start\-cli\-server\-host\-address\-list(1)
List addresses for a host

View File

@@ -2,15 +2,15 @@
.el .ds Aq '
.TH start-cli-server-host-binding-set-address-enabled 1 "set-address-enabled "
.SH NAME
start\-cli\-server\-host\-binding\-set\-address\-enabled \- about.set\-address\-enabled\-for\-binding
start\-cli\-server\-host\-binding\-set\-address\-enabled \- Set a gateway address enabled for a binding
.SH SYNOPSIS
\fBstart\-cli server host binding set\-address\-enabled\fR <\fB\-\-address\fR> [\fB\-\-enabled\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIINTERNAL_PORT\fR>
.SH DESCRIPTION
about.set\-address\-enabled\-for\-binding
Set a gateway address enabled for a binding
.SH OPTIONS
.TP
\fB\-\-address\fR \fI<ADDRESS>\fR
help.arg.address
Network address
.TP
\fB\-\-enabled\fR \fI<ENABLED>\fR
Enable or disable this binding

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-server-host-binding 1 "binding "
.SH NAME
start\-cli\-server\-host\-binding
start\-cli\-server\-host\-binding \- Commands for managing host bindings
.SH SYNOPSIS
\fBstart\-cli server host binding\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing host bindings
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
@@ -16,4 +17,4 @@ start\-cli\-server\-host\-binding\-list(1)
List bindings for a host
.TP
start\-cli\-server\-host\-binding\-set\-address\-enabled(1)
about.set\-address\-enabled\-for\-binding
Set a gateway address enabled for a binding

View File

@@ -14,5 +14,7 @@ Print help
.SH SUBCOMMANDS
.TP
start\-cli\-server\-host\-address(1)
Commands for managing host addresses
.TP
start\-cli\-server\-host\-binding(1)
Commands for managing host bindings

View File

@@ -17,7 +17,7 @@ start\-cli\-server\-clear\-smtp(1)
Remove system smtp server and credentials
.TP
start\-cli\-server\-device\-info(1)
about.get\-device\-info
Display device information
.TP
start\-cli\-server\-experimental(1)
Commands related to configuring experimental options such as zram and cpu governor

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-tunnel-auth-key 1 "key "
.SH NAME
start\-cli\-tunnel\-auth\-key
start\-cli\-tunnel\-auth\-key \- Commands for managing authorized keys
.SH SYNOPSIS
\fBstart\-cli tunnel auth key\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing authorized keys
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -17,6 +17,7 @@ start\-cli\-tunnel\-auth\-get\-pubkey(1)
Get the public key from the server
.TP
start\-cli\-tunnel\-auth\-key(1)
Commands for managing authorized keys
.TP
start\-cli\-tunnel\-auth\-login(1)
Login to a new auth session

View File

@@ -2,11 +2,11 @@
.el .ds Aq '
.TH start-cli-tunnel-port-forward-set-enabled 1 "set-enabled "
.SH NAME
start\-cli\-tunnel\-port\-forward\-set\-enabled \- about.enable\-or\-disable\-port\-forward
start\-cli\-tunnel\-port\-forward\-set\-enabled \- Enable or disable a port forward
.SH SYNOPSIS
\fBstart\-cli tunnel port\-forward set\-enabled\fR [\fB\-\-enabled\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fISOURCE\fR>
.SH DESCRIPTION
about.enable\-or\-disable\-port\-forward
Enable or disable a port forward
.SH OPTIONS
.TP
\fB\-\-enabled\fR

View File

@@ -2,11 +2,11 @@
.el .ds Aq '
.TH start-cli-tunnel-port-forward-update-label 1 "update-label "
.SH NAME
start\-cli\-tunnel\-port\-forward\-update\-label \- about.update\-port\-forward\-label
start\-cli\-tunnel\-port\-forward\-update\-label \- Update the label of a port forward
.SH SYNOPSIS
\fBstart\-cli tunnel port\-forward update\-label\fR [\fB\-h\fR|\fB\-\-help\fR] <\fISOURCE\fR> [\fILABEL\fR]
.SH DESCRIPTION
about.update\-port\-forward\-label
Update the label of a port forward
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-tunnel-port-forward 1 "port-forward "
.SH NAME
start\-cli\-tunnel\-port\-forward
start\-cli\-tunnel\-port\-forward \- Commands for managing port forwards
.SH SYNOPSIS
\fBstart\-cli tunnel port\-forward\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing port forwards
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
@@ -19,7 +20,7 @@ start\-cli\-tunnel\-port\-forward\-remove(1)
Remove port forward
.TP
start\-cli\-tunnel\-port\-forward\-set\-enabled(1)
about.enable\-or\-disable\-port\-forward
Enable or disable a port forward
.TP
start\-cli\-tunnel\-port\-forward\-update\-label(1)
about.update\-port\-forward\-label
Update the label of a port forward

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-tunnel-update 1 "update "
.SH NAME
start\-cli\-tunnel\-update
start\-cli\-tunnel\-update \- Commands for checking and applying tunnel updates
.SH SYNOPSIS
\fBstart\-cli tunnel update\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for checking and applying tunnel updates
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-cli-tunnel-web 1 "web "
.SH NAME
start\-cli\-tunnel\-web
start\-cli\-tunnel\-web \- Commands for managing the tunnel web interface
.SH SYNOPSIS
\fBstart\-cli tunnel web\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing the tunnel web interface
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -23,6 +23,7 @@ start\-cli\-tunnel\-device(1)
Add, remove, or list devices in subnets
.TP
start\-cli\-tunnel\-port\-forward(1)
Commands for managing port forwards
.TP
start\-cli\-tunnel\-restart(1)
Reboot the tunnel server
@@ -31,5 +32,7 @@ start\-cli\-tunnel\-subnet(1)
Add, remove, or modify subnets
.TP
start\-cli\-tunnel\-update(1)
Commands for checking and applying tunnel updates
.TP
start\-cli\-tunnel\-web(1)
Commands for managing the tunnel web interface

View File

@@ -1,6 +1,6 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-cli 1 "start-cli 0.4.0-alpha.21"
.TH start-cli 1 "start-cli 0.4.0-beta.0"
.SH NAME
start\-cli
.SH SYNOPSIS
@@ -117,4 +117,4 @@ Command for calculating the blake3 hash of a file
start\-cli\-wifi(1)
Commands related to wifi networks i.e. add, connect, delete
.SH VERSION
v0.4.0\-alpha.21
v0.4.0\-beta.0

View File

@@ -0,0 +1,15 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-container-pipe-wrap 1 "pipe-wrap "
.SH NAME
start\-container\-pipe\-wrap
.SH SYNOPSIS
\fBstart\-container pipe\-wrap\fR [\fB\-h\fR|\fB\-\-help\fR] [\fICOMMAND\fR]
.SH DESCRIPTION
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP
[\fICOMMAND\fR]
Command to execute in the container

View File

@@ -1,6 +1,6 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-container 1 "start-container 0.4.0-alpha.21"
.TH start-container 1 "start-container 0.4.0-beta.0"
.SH NAME
start\-container
.SH SYNOPSIS
@@ -34,6 +34,8 @@ start\-container\-get\-status(1)
.TP
start\-container\-git\-info(1)
.TP
start\-container\-pipe\-wrap(1)
.TP
start\-container\-plugin(1)
.TP
start\-container\-rebuild(1)
@@ -50,4 +52,4 @@ start\-container\-shutdown(1)
.TP
start\-container\-subcontainer(1)
.SH VERSION
v0.4.0\-alpha.21
v0.4.0\-beta.0

View File

@@ -0,0 +1,16 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-registry-admin-signer-remove 1 "remove "
.SH NAME
start\-registry\-admin\-signer\-remove \- Remove signer and all their authorizations
.SH SYNOPSIS
\fBstart\-registry admin signer remove\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR>
.SH DESCRIPTION
Remove signer and all their authorizations
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP
<\fIID\fR>
Signer identifier

View File

@@ -21,3 +21,6 @@ Edit signer information
.TP
start\-registry\-admin\-signer\-list(1)
List signers
.TP
start\-registry\-admin\-signer\-remove(1)
Remove signer and all their authorizations

View File

@@ -13,4 +13,4 @@ Set the registry icon
Print help
.TP
<\fIICON\fR>
Path to service icon file
Icon source: file path, file:// URL, http(s):// URL, or data: URL

View File

@@ -2,11 +2,11 @@
.el .ds Aq '
.TH start-registry-info 1 "info "
.SH NAME
start\-registry\-info \- Display registry info
start\-registry\-info \- View or edit registry information
.SH SYNOPSIS
\fBstart\-registry info\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fIsubcommands\fR]
.SH DESCRIPTION
Display registry info
View or edit registry information
.SH OPTIONS
.TP
\fB\-\-format\fR

View File

@@ -0,0 +1,28 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-registry-metrics-downloads 1 "downloads "
.SH NAME
start\-registry\-metrics\-downloads \- Count package download requests with optional filters
.SH SYNOPSIS
\fBstart\-registry metrics downloads\fR [\fB\-\-pkg\-id\fR] [\fB\-\-version\fR] [\fB\-\-after\fR] [\fB\-\-before\fR] [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
Count package download requests with optional filters
.SH OPTIONS
.TP
\fB\-\-pkg\-id\fR \fI<PKG_ID>\fR
Filter by package ID
.TP
\fB\-\-version\fR \fI<VERSION>\fR
Filter by version
.TP
\fB\-\-after\fR \fI<AFTER>\fR
Start of time range (RFC 3339 timestamp)
.TP
\fB\-\-before\fR \fI<BEFORE>\fR
End of time range (RFC 3339 timestamp)
.TP
\fB\-\-format\fR
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help

View File

@@ -0,0 +1,16 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-registry-metrics-summary 1 "summary "
.SH NAME
start\-registry\-metrics\-summary \- Get a summary of registry usage metrics
.SH SYNOPSIS
\fBstart\-registry metrics summary\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
Get a summary of registry usage metrics
.SH OPTIONS
.TP
\fB\-\-format\fR
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help

View File

@@ -0,0 +1,22 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-registry-metrics-users 1 "users "
.SH NAME
start\-registry\-metrics\-users \- Count unique active users within a time range
.SH SYNOPSIS
\fBstart\-registry metrics users\fR [\fB\-\-after\fR] [\fB\-\-before\fR] [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
Count unique active users within a time range
.SH OPTIONS
.TP
\fB\-\-after\fR \fI<AFTER>\fR
Start of time range (RFC 3339 timestamp)
.TP
\fB\-\-before\fR \fI<BEFORE>\fR
End of time range (RFC 3339 timestamp)
.TP
\fB\-\-format\fR
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help

View File

@@ -0,0 +1,23 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-registry-metrics 1 "metrics "
.SH NAME
start\-registry\-metrics \- Query registry usage metrics
.SH SYNOPSIS
\fBstart\-registry metrics\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Query registry usage metrics
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.SH SUBCOMMANDS
.TP
start\-registry\-metrics\-downloads(1)
Count package download requests with optional filters
.TP
start\-registry\-metrics\-summary(1)
Get a summary of registry usage metrics
.TP
start\-registry\-metrics\-users(1)
Count unique active users within a time range

View File

@@ -0,0 +1,22 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-registry-os-promote 1 "promote "
.SH NAME
start\-registry\-os\-promote \- Promote an OS version from one registry to another
.SH SYNOPSIS
\fBstart\-registry os promote\fR [\fB\-\-from\fR] [\fB\-\-to\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIVERSION\fR>
.SH DESCRIPTION
Promote an OS version from one registry to another
.SH OPTIONS
.TP
\fB\-\-from\fR \fI<FROM>\fR
Source registry URL to promote from
.TP
\fB\-\-to\fR \fI<TO>\fR
Destination registry URL to promote to
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP
<\fIVERSION\fR>
StartOS version number

View File

@@ -19,5 +19,8 @@ Commands to add, sign, or get registry assets
start\-registry\-os\-index(1)
List OS versions index
.TP
start\-registry\-os\-promote(1)
Promote an OS version from one registry to another
.TP
start\-registry\-os\-version(1)
Commands to add, remove, or list versions or version signers

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-registry-package-category-list 1 "list "
.SH NAME
start\-registry\-package\-category\-list
start\-registry\-package\-category\-list \- List registry categories
.SH SYNOPSIS
\fBstart\-registry package category list\fR [\fB\-\-format\fR] [\fB\-h\fR|\fB\-\-help\fR]
.SH DESCRIPTION
List registry categories
.SH OPTIONS
.TP
\fB\-\-format\fR

View File

@@ -20,6 +20,7 @@ start\-registry\-package\-category\-add\-package(1)
Add a package to a category
.TP
start\-registry\-package\-category\-list(1)
List registry categories
.TP
start\-registry\-package\-category\-remove(1)
Remove category from registry

View File

@@ -4,7 +4,7 @@
.SH NAME
start\-registry\-package\-download \- Download s9pk package
.SH SYNOPSIS
\fBstart\-registry package download\fR [\fB\-v\fR|\fB\-\-target\-version\fR] [\fB\-d\fR|\fB\-\-dest\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR>
\fBstart\-registry package download\fR [\fB\-v\fR|\fB\-\-target\-version\fR] [\fB\-d\fR|\fB\-\-dest\fR] [\fB\-a\fR|\fB\-\-arch\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR>
.SH DESCRIPTION
Download s9pk package
.SH OPTIONS
@@ -15,6 +15,9 @@ Target version range constraint
\fB\-d\fR, \fB\-\-dest\fR \fI<DEST>\fR
Destination path for download
.TP
\fB\-a\fR, \fB\-\-arch\fR \fI<ARCH>\fR
Target CPU architecture (e.g. x86_64, aarch64)
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP

View File

@@ -0,0 +1,25 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-registry-package-promote 1 "promote "
.SH NAME
start\-registry\-package\-promote \- Promote a package from one registry to another
.SH SYNOPSIS
\fBstart\-registry package promote\fR [\fB\-\-from\fR] [\fB\-\-to\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR> <\fIVERSION\fR>
.SH DESCRIPTION
Promote a package from one registry to another
.SH OPTIONS
.TP
\fB\-\-from\fR \fI<FROM>\fR
Source registry URL to promote from
.TP
\fB\-\-to\fR \fI<TO>\fR
Destination registry URL to promote to
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP
<\fIID\fR>
Package identifier
.TP
<\fIVERSION\fR>
Package version

View File

@@ -4,7 +4,7 @@
.SH NAME
start\-registry\-package\-remove \- Remove package from registry
.SH SYNOPSIS
\fBstart\-registry package remove\fR [\fB\-\-sighash\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR> <\fIVERSION\fR>
\fBstart\-registry package remove\fR [\fB\-\-sighash\fR] [\fB\-\-force\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fIID\fR> [\fIVERSION\fR]
.SH DESCRIPTION
Remove package from registry
.SH OPTIONS
@@ -12,11 +12,14 @@ Remove package from registry
\fB\-\-sighash\fR \fI<SIGHASH>\fR
Hash for signature verification
.TP
\fB\-\-force\fR
Force removal even if the package has versions
.TP
\fB\-h\fR, \fB\-\-help\fR
Print help
.TP
<\fIID\fR>
Package identifier
.TP
<\fIVERSION\fR>
[\fIVERSION\fR]
Package version

View File

@@ -31,6 +31,9 @@ List installation candidates
start\-registry\-package\-index(1)
List packages and categories
.TP
start\-registry\-package\-promote(1)
Promote a package from one registry to another
.TP
start\-registry\-package\-remove(1)
Remove package from registry
.TP

View File

@@ -1,6 +1,6 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-registry 1 "start-registry 0.4.0-alpha.21"
.TH start-registry 1 "start-registry 0.4.0-beta.0"
.SH NAME
start\-registry
.SH SYNOPSIS
@@ -55,7 +55,10 @@ start\-registry\-index(1)
List registry info and packages
.TP
start\-registry\-info(1)
Display registry info
View or edit registry information
.TP
start\-registry\-metrics(1)
Query registry usage metrics
.TP
start\-registry\-os(1)
Commands related to OS assets and versions
@@ -63,4 +66,4 @@ Commands related to OS assets and versions
start\-registry\-package(1)
Commands to index, add, or get packages
.SH VERSION
v0.4.0\-alpha.21
v0.4.0\-beta.0

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-tunnel-auth-key 1 "key "
.SH NAME
start\-tunnel\-auth\-key
start\-tunnel\-auth\-key \- Commands for managing authorized keys
.SH SYNOPSIS
\fBstart\-tunnel auth key\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing authorized keys
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -17,6 +17,7 @@ start\-tunnel\-auth\-get\-pubkey(1)
Get the public key from the server
.TP
start\-tunnel\-auth\-key(1)
Commands for managing authorized keys
.TP
start\-tunnel\-auth\-login(1)
Login to a new auth session

View File

@@ -2,11 +2,11 @@
.el .ds Aq '
.TH start-tunnel-port-forward-set-enabled 1 "set-enabled "
.SH NAME
start\-tunnel\-port\-forward\-set\-enabled \- about.enable\-or\-disable\-port\-forward
start\-tunnel\-port\-forward\-set\-enabled \- Enable or disable a port forward
.SH SYNOPSIS
\fBstart\-tunnel port\-forward set\-enabled\fR [\fB\-\-enabled\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fISOURCE\fR>
.SH DESCRIPTION
about.enable\-or\-disable\-port\-forward
Enable or disable a port forward
.SH OPTIONS
.TP
\fB\-\-enabled\fR

View File

@@ -2,11 +2,11 @@
.el .ds Aq '
.TH start-tunnel-port-forward-update-label 1 "update-label "
.SH NAME
start\-tunnel\-port\-forward\-update\-label \- about.update\-port\-forward\-label
start\-tunnel\-port\-forward\-update\-label \- Update the label of a port forward
.SH SYNOPSIS
\fBstart\-tunnel port\-forward update\-label\fR [\fB\-h\fR|\fB\-\-help\fR] <\fISOURCE\fR> [\fILABEL\fR]
.SH DESCRIPTION
about.update\-port\-forward\-label
Update the label of a port forward
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-tunnel-port-forward 1 "port-forward "
.SH NAME
start\-tunnel\-port\-forward
start\-tunnel\-port\-forward \- Commands for managing port forwards
.SH SYNOPSIS
\fBstart\-tunnel port\-forward\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing port forwards
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
@@ -19,7 +20,7 @@ start\-tunnel\-port\-forward\-remove(1)
Remove port forward
.TP
start\-tunnel\-port\-forward\-set\-enabled(1)
about.enable\-or\-disable\-port\-forward
Enable or disable a port forward
.TP
start\-tunnel\-port\-forward\-update\-label(1)
about.update\-port\-forward\-label
Update the label of a port forward

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-tunnel-update 1 "update "
.SH NAME
start\-tunnel\-update
start\-tunnel\-update \- Commands for checking and applying tunnel updates
.SH SYNOPSIS
\fBstart\-tunnel update\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for checking and applying tunnel updates
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -2,10 +2,11 @@
.el .ds Aq '
.TH start-tunnel-web 1 "web "
.SH NAME
start\-tunnel\-web
start\-tunnel\-web \- Commands for managing the tunnel web interface
.SH SYNOPSIS
\fBstart\-tunnel web\fR [\fB\-h\fR|\fB\-\-help\fR] <\fIsubcommands\fR>
.SH DESCRIPTION
Commands for managing the tunnel web interface
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR

View File

@@ -1,6 +1,6 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH start-tunnel 1 "start-tunnel 0.4.0-alpha.21"
.TH start-tunnel 1 "start-tunnel 0.4.0-beta.0"
.SH NAME
start\-tunnel
.SH SYNOPSIS
@@ -55,6 +55,7 @@ start\-tunnel\-device(1)
Add, remove, or list devices in subnets
.TP
start\-tunnel\-port\-forward(1)
Commands for managing port forwards
.TP
start\-tunnel\-restart(1)
Reboot the tunnel server
@@ -63,7 +64,9 @@ start\-tunnel\-subnet(1)
Add, remove, or modify subnets
.TP
start\-tunnel\-update(1)
Commands for checking and applying tunnel updates
.TP
start\-tunnel\-web(1)
Commands for managing the tunnel web interface
.SH VERSION
v0.4.0\-alpha.21
v0.4.0\-beta.0

View File

@@ -55,8 +55,6 @@ impl Public {
) -> Result<Self, Error> {
Ok(Self {
server_info: ServerInfo {
arch: get_arch(),
platform: get_platform(),
id: account.server_id.clone(),
version: Current::default().semver(),
name: account.hostname.name.clone(),
@@ -160,14 +158,6 @@ impl Public {
}
}
fn get_arch() -> InternedString {
(*ARCH).into()
}
fn get_platform() -> InternedString {
(&*PLATFORM).into()
}
pub fn default_echoip_urls() -> Vec<Url> {
vec![
"https://ipconfig.io".parse().unwrap(),
@@ -180,10 +170,6 @@ pub fn default_echoip_urls() -> Vec<Url> {
#[model = "Model<Self>"]
#[ts(export)]
pub struct ServerInfo {
#[serde(default = "get_arch")]
pub arch: InternedString,
#[serde(default = "get_platform")]
pub platform: InternedString,
pub id: String,
pub name: InternedString,
pub hostname: InternedString,

View File

@@ -2,24 +2,11 @@ use std::io::Cursor;
use std::path::Path;
use tokio::process::Command;
use tracing::instrument;
use crate::Error;
use crate::disk::fsck::RequiresReboot;
use crate::util::Invoke;
#[instrument(skip_all)]
pub async fn btrfs_check_readonly(logicalname: impl AsRef<Path>) -> Result<RequiresReboot, Error> {
Command::new("btrfs")
.arg("check")
.arg("--readonly")
.arg(logicalname.as_ref())
.invoke(crate::ErrorKind::DiskManagement)
.await?;
Ok(RequiresReboot(false))
}
pub async fn btrfs_check_repair(logicalname: impl AsRef<Path>) -> Result<RequiresReboot, Error> {
Command::new("btrfs")
.arg("check")

View File

@@ -4,7 +4,7 @@ use color_eyre::eyre::eyre;
use tokio::process::Command;
use crate::Error;
use crate::disk::fsck::btrfs::{btrfs_check_readonly, btrfs_check_repair};
use crate::disk::fsck::btrfs::btrfs_check_repair;
use crate::disk::fsck::ext4::{e2fsck_aggressive, e2fsck_preen};
use crate::util::Invoke;
@@ -71,7 +71,7 @@ impl RepairStrategy {
logicalname: impl AsRef<Path> + std::fmt::Debug,
) -> Result<RequiresReboot, Error> {
match self {
RepairStrategy::Preen => btrfs_check_readonly(logicalname).await,
RepairStrategy::Preen => Ok(RequiresReboot(false)),
RepairStrategy::Aggressive => btrfs_check_repair(logicalname).await,
}
}

View File

@@ -313,7 +313,7 @@ pub async fn mount_fs<P: AsRef<Path>>(
if let Some(ref mut phase) = convert_phase {
phase.start();
}
tracing::info!("Running e2fsck before converting {name} from ext4 to btrfs");
tracing::info!("{}", t!("disk.main.running-e2fsck", name = name));
// e2fsck exit codes: 0 = no errors, 1 = errors corrected, 2 = corrected + reboot needed
// Only codes >= 4 indicate actual failure, so we can't use .invoke() which treats any
// non-zero exit as an error.
@@ -328,20 +328,18 @@ pub async fn mount_fs<P: AsRef<Path>>(
.with_kind(ErrorKind::DiskManagement)?;
let e2fsck_exit = e2fsck_output.status.code().unwrap_or(4);
if e2fsck_exit >= 4 {
let msg = std::str::from_utf8(
if e2fsck_output.stderr.is_empty() {
&e2fsck_output.stdout
} else {
&e2fsck_output.stderr
},
)
let msg = std::str::from_utf8(if e2fsck_output.stderr.is_empty() {
&e2fsck_output.stdout
} else {
&e2fsck_output.stderr
})
.unwrap_or("e2fsck failed");
return Err(Error::new(eyre!("{msg}"), ErrorKind::DiskManagement));
}
tracing::info!("Converting {name} from ext4 to btrfs");
tracing::info!("{}", t!("disk.main.converting-ext4-to-btrfs", name = name));
Command::new("btrfs-convert")
.arg("--no-progress")
.arg(&blockdev_path)
.capture(false)
.invoke(ErrorKind::DiskManagement)
.await?;
// Delete ext2_saved subvolume and defragment after conversion
@@ -350,11 +348,13 @@ pub async fn mount_fs<P: AsRef<Path>>(
BlockDev::new(&blockdev_path)
.mount(&tmp_mount, ReadWrite)
.await?;
tracing::info!("{}", t!("disk.main.clearing-duplicate-files"));
Command::new("btrfs")
.args(["subvolume", "delete"])
.arg(tmp_mount.join("ext2_saved"))
.invoke(ErrorKind::DiskManagement)
.await?;
tracing::info!("{}", t!("disk.main.optimizing-filesystem"));
Command::new("btrfs")
.args(["filesystem", "defragment", "-r"])
.arg(&tmp_mount)
@@ -441,7 +441,7 @@ pub async fn probe_package_data_fs(guid: &str) -> Result<Option<String>, Error>
// Already imported, that's fine
}
Err(e) => {
tracing::warn!("Could not import VG {guid} for filesystem probe: {e}");
tracing::warn!("{}", t!("disk.main.could-not-import-vg", guid = guid, error = e));
return Ok(None);
}
}
@@ -451,7 +451,7 @@ pub async fn probe_package_data_fs(guid: &str) -> Result<Option<String>, Error>
.invoke(ErrorKind::DiskManagement)
.await
{
tracing::warn!("Could not activate VG {guid} for filesystem probe: {e}");
tracing::warn!("{}", t!("disk.main.could-not-activate-vg", guid = guid, error = e));
return Ok(None);
}

View File

@@ -83,6 +83,14 @@ fn signers_api<C: Context>() -> ParentHandler<C> {
.with_about("about.edit-signer")
.with_call_remote::<CliContext>(),
)
.subcommand(
"remove",
from_fn_async(remove_signer)
.with_metadata("admin", Value::Bool(true))
.no_display()
.with_about("about.remove-signer")
.with_call_remote::<CliContext>(),
)
}
impl Model<BTreeMap<Guid, SignerInfo>> {
@@ -276,6 +284,62 @@ pub async fn edit_signer(
.result
}
#[derive(Debug, Deserialize, Serialize, Parser, TS)]
#[group(skip)]
#[serde(rename_all = "camelCase")]
#[command(rename_all = "kebab-case")]
#[ts(export)]
pub struct RemoveSignerParams {
#[arg(help = "help.arg.signer-id")]
pub id: Guid,
}
pub async fn remove_signer(
ctx: RegistryContext,
RemoveSignerParams { id }: RemoveSignerParams,
) -> Result<(), Error> {
ctx.db
.mutate(|db| {
if db
.as_index_mut()
.as_signers_mut()
.remove(&id)?
.is_none()
{
return Err(Error::new(
eyre!("{}", t!("registry.admin.unknown-signer")),
ErrorKind::NotFound,
));
}
for (_, pkg) in db
.as_index_mut()
.as_package_mut()
.as_packages_mut()
.as_entries_mut()?
{
pkg.as_authorized_mut().remove(&id)?;
}
for (_, version) in db
.as_index_mut()
.as_os_mut()
.as_versions_mut()
.as_entries_mut()?
{
version
.as_authorized_mut()
.mutate(|s| Ok(s.remove(&id)))?;
}
db.as_admins_mut().mutate(|a| Ok(a.remove(&id)))?;
Ok(())
})
.await
.result
}
#[derive(Debug, Deserialize, Serialize, Parser)]
#[group(skip)]
#[command(rename_all = "kebab-case")]

Some files were not shown because too many files have changed in this diff Show More