Directories
ΒΆ
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
tero
command
Command tero is the whole of Tero: `sudo tero init` sets up a server once, `tero serve` is the long-running service systemd starts as the tero user, and `tero keys` is the key service systemd starts as tero-keys.
|
Command tero is the whole of Tero: `sudo tero init` sets up a server once, `tero serve` is the long-running service systemd starts as the tero user, and `tero keys` is the key service systemd starts as tero-keys. |
|
internal
|
|
|
agent
Package agent is `tero agent`, the process that builds and runs apps.
|
Package agent is `tero agent`, the process that builds and runs apps. |
|
apps
Package apps holds the rules for apps the admin creates.
|
Package apps holds the rules for apps the admin creates. |
|
auth
Package auth is the dashboard's side of the single-admin login and account settings.
|
Package auth is the dashboard's side of the single-admin login and account settings. |
|
breach
Package breach is `sudo tero assume-breach`: the one command for a server that may be compromised.
|
Package breach is `sudo tero assume-breach`: the one command for a server that may be compromised. |
|
build
Package build turns an app's source into an image in tero's Podman store: Railpack plans the build, a throwaway rootless BuildKit container runs it, and the result is loaded with `podman load`.
|
Package build turns an app's source into an image in tero's Podman store: Railpack plans the build, a throwaway rootless BuildKit container runs it, and the result is loaded with `podman load`. |
|
config
Package config holds the settings `tero init` writes under /etc/tero.
|
Package config holds the settings `tero init` writes under /etc/tero. |
|
containers
Package containers starts and checks app containers under tero's rootless Podman, with the ADR 0001 rules: no capabilities, no privilege gain, a user namespace slice of their own, and a network namespace of their own that can't reach other apps.
|
Package containers starts and checks app containers under tero's rootless Podman, with the ADR 0001 rules: no capabilities, no privilege gain, a user namespace slice of their own, and a network namespace of their own that can't reach other apps. |
|
dashboard
Package dashboard serves the dashboard's JSON API under /api and the web app everywhere else.
|
Package dashboard serves the dashboard's JSON API under /api and the web app everywhere else. |
|
deployer
Package deployer is the agent's pipeline for one deploy: fetch the branch's latest commit, build it, start it next to the live release (or in its place, when the app's setting says so), check it answers, and make it live.
|
Package deployer is the agent's pipeline for one deploy: fetch the branch's latest commit, build it, start it next to the live release (or in its place, when the app's setting says so), check it answers, and make it live. |
|
deploylog
Package deploylog stores each deploy's build log as a file the agent writes and the service streams to the dashboard.
|
Package deploylog stores each deploy's build log as a file the agent writes and the service streams to the dashboard. |
|
deploys
Package deploys is the deploy queue shared by the service and the agent through the SQLite store.
|
Package deploys is the deploy queue shared by the service and the agent through the SQLite store. |
|
hostfs
Package hostfs reads and writes host files relative to a root directory: "/" on a real server, a temporary directory in unit tests.
|
Package hostfs reads and writes host files relative to a root directory: "/" on a real server, a temporary directory in unit tests. |
|
initflow
Package initflow implements `sudo tero init`: it checks the host, then turns it into a hardened Tero host in one run.
|
Package initflow implements `sudo tero init`: it checks the host, then turns it into a hardened Tero host in one run. |
|
journal
Package journal writes structured entries to the systemd journal through its native socket, so they carry fields that `journalctl` can filter on.
|
Package journal writes structured entries to the systemd journal through its native socket, so they carry fields that `journalctl` can filter on. |
|
keyfiles
Package keyfiles manages the sealed master key files for root commands: sealing a new version, rotating to it, and setting aside files that no longer open.
|
Package keyfiles manages the sealed master key files for root commands: sealing a new version, rotating to it, and setting aside files that no longer open. |
|
keys
Package keys is the key service, `tero keys`: the only process that holds Tero's master key.
|
Package keys is the key service, `tero keys`: the only process that holds Tero's master key. |
|
loginlink
Package loginlink issues dashboard setup links for root CLI commands (`sudo tero init` and `sudo tero reset-login`).
|
Package loginlink issues dashboard setup links for root CLI commands (`sudo tero init` and `sudo tero reset-login`). |
|
password
Package password holds the dashboard password rules (OWASP ASVS 5.0.0 V6.2) and stores passwords as Argon2id hashes (RFC 9106).
|
Package password holds the dashboard password rules (OWASP ASVS 5.0.0 V6.2) and stores passwords as Argon2id hashes (RFC 9106). |
|
platform
Package platform identifies the host OS and CPU architecture and checks them against the platforms Tero is tested on.
|
Package platform identifies the host OS and CPU architecture and checks them against the platforms Tero is tested on. |
|
podman
Package podman runs the podman CLI as the current user, which for Tero is always the agent running as tero.
|
Package podman runs the podman CLI as the current user, which for Tero is always the agent running as tero. |
|
publicip
Package publicip finds the server's public IPv4 address, used to build the default <ip>.nip.io dashboard domain.
|
Package publicip finds the server's public IPv4 address, used to build the default <ip>.nip.io dashboard domain. |
|
rootcheck
Package rootcheck guards the subcommands that must run as root.
|
Package rootcheck guards the subcommands that must run as root. |
|
serve
Package serve runs the long-lived Tero service: an embedded Caddy that serves the dashboard over HTTPS on the domain chosen at init, getting and renewing its certificate automatically.
|
Package serve runs the long-lived Tero service: an embedded Caddy that serves the dashboard over HTTPS on the domain chosen at init, getting and renewing its certificate automatically. |
|
source
Package source fetches app source code from public GitHub repositories.
|
Package source fetches app source code from public GitHub repositories. |
|
store
Package store opens Tero's SQLite database, which holds apps and deploys.
|
Package store opens Tero's SQLite database, which holds apps and deploys. |
|
sysexec
Package sysexec runs host commands for init.
|
Package sysexec runs host commands for init. |
|
totp
Package totp implements RFC 6238 time-based one-time passwords with the settings every authenticator app supports: SHA-1, 6 digits, 30 seconds.
|
Package totp implements RFC 6238 time-based one-time passwords with the settings every authenticator app supports: SHA-1, 6 digits, 30 seconds. |
|
webauthntest
Package webauthntest is a software passkey authenticator for tests: it answers the options the key service issues the way a browser and a platform authenticator would, with ES256 keys and attestation "none".
|
Package webauthntest is a software passkey authenticator for tests: it answers the options the key service issues the way a browser and a platform authenticator would, with ES256 keys and attestation "none". |
Click to show internal directories.
Click to hide internal directories.