diff --git a/docs/explanation/index.md b/docs/explanation/index.md index 0731a8b4f..bd87ec604 100644 --- a/docs/explanation/index.md +++ b/docs/explanation/index.md @@ -1,11 +1,40 @@ # Explanation +These guides explain how Pebble works. + + +## Fundamentals + +Pebble works as a daemon and a client, with state and configuration stored in the `$PEBBLE` directory. + ```{toctree} :titlesonly: :maxdepth: 1 -API and clients General model +``` + + +## Access to the API + +The daemon exposes an API that clients can connect to. By default, Pebble restricts access to some API endpoints based on the user that is connecting. You can set up named "identities" to grant specific access levels to users. + +```{toctree} +:titlesonly: +:maxdepth: 1 + +API and clients +``` + + +## Service orchestration + +Pebble automatically starts and stops services if you specify dependencies between services. + +```{toctree} +:titlesonly: +:maxdepth: 1 + Service dependencies Service start order ``` diff --git a/docs/how-to/index.md b/docs/how-to/index.md index bbe5ccfa9..0e5725502 100644 --- a/docs/how-to/index.md +++ b/docs/how-to/index.md @@ -1,11 +1,11 @@ # How-to guides -These guides will walk you through every step of using Pebble through its complete operations lifecycle. +These guides walk you through key operations you can perform with Pebble. ## Installation -Installation follows a broadly similar pattern on all architectures, and you can choose to install the pre-built binary or build it from the source by yourself. +Installation follows a similar pattern on all architectures. You can choose to install the pre-built binary or build it from the source by yourself. ```{toctree} :titlesonly: @@ -29,7 +29,7 @@ Manage service dependencies ## Identities -Use named identities to allow additional users to access the API. +Use named "identities" to allow additional users to access the API. ```{toctree} :titlesonly: diff --git a/docs/reference/cli-commands/cli-commands.md b/docs/reference/cli-commands/cli-commands.md index f2388b8cb..16798bbd8 100644 --- a/docs/reference/cli-commands/cli-commands.md +++ b/docs/reference/cli-commands/cli-commands.md @@ -1,4 +1,4 @@ -# CLI Commands +# CLI commands Pebble uses subcommands, like some other command-line tools such as go tool or git. diff --git a/docs/reference/index.md b/docs/reference/index.md index 33941c2a6..9318de16f 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -1,17 +1,88 @@ # Reference +These guides provide technical information about Pebble. + +% COMMENT: This toctree is for the navigation sidebar only +% Use an alphabetical listing of pages in the toctree +% For each page, make sure there's also a link in a section below + ```{toctree} +:hidden: :titlesonly: :maxdepth: 1 Changes and tasks -CLI Commands +CLI commands Health checks Identities Layers Layer specification Log forwarding Notices +Pebble in containers Service auto-restart -Use Pebble in containers ``` + + +% COMMENT: The first few pages are presented in a more logical reading order + + +## Layers + +Pebble configuration is defined as a stack of "layers". + +* [Layers](layer-specification) +* [Layer specification](layer-specification) + + +## Pebble commands + +The `pebble` command has several subcommands. + +* [CLI commands](cli-commands/cli-commands) + + +## Pebble in containers + +When the Pebble daemon is running inside a remote system (for example, a separate container), you can manage the remote system using subcommands on the Pebble client. + +* [Pebble in containers](pebble-in-containers) + + +## Service failures + +Pebble provides two ways to automatically restart services when they fail. Auto-restart is based on exit codes from services. Health checks are a more sophisticated way to test and report the availability of services. + +* [Service auto-restart](service-auto-restart) +* [Health checks](health-checks) + + +% COMMENT: After this point, match the alphabetical listing of pages + + +## Changes and tasks + +Pebble tracks system changes as "tasks" grouped into "change" objects. + +* [Changes and tasks](changes-and-tasks) + + +## Identities + +You can set up named "identities" to control access to the API. + +* [Identities](identities) + + +## Log forwarding + +Pebble can send service logs to a Loki server. + +* [Log forwarding](log-forwarding) + + +## Notices + +Pebble records events as "notices". In addition to the built-in notices, clients can report custom notices. + +* [Notices](notices) diff --git a/docs/reference/pebble-in-containers.md b/docs/reference/pebble-in-containers.md index f08d06d16..7329b4b3b 100644 --- a/docs/reference/pebble-in-containers.md +++ b/docs/reference/pebble-in-containers.md @@ -1,4 +1,4 @@ -# Use Pebble in containers +# Pebble in containers Pebble works well as a local service manager, but if running Pebble in a separate container, you can use the exec and file management APIs to coordinate with the remote system over the shared unix socket.