diff --git a/assets/css/custom.css b/assets/css/custom.css
index 9f738eed1..32cb17603 100644
--- a/assets/css/custom.css
+++ b/assets/css/custom.css
@@ -341,12 +341,14 @@ html[class~="dark"] .content table:not(.code-block table) th {
/* -----------------------------------------
Customize paragraphs
-------------------------------------------*/
-.content :where(p):not(:where([class~=not-prose],[class~=not-prose] *)) {
+/*Apply to content and exclude alerts
from this style*/
+.content :where(p):not(:where([class~=not-prose],[class~=not-prose] *)):not(:where(.hx-overflow-x-auto *, .hx-border p)) {
margin-top: .3rem;
margin-bottom: 1.5rem;
line-height: 1.75rem;
}
+
/* -- Add padding to the left for changelog listing--*/
.hx-pl-5 {
padding-left: 1.25rem;
diff --git a/content/doc/CLI/_index.md b/content/doc/CLI/_index.md
index 34d54d38a..e83d25fe7 100644
--- a/content/doc/CLI/_index.md
+++ b/content/doc/CLI/_index.md
@@ -1,34 +1,164 @@
---
+type: "docs"
weight: 8
-title: CLI
-shortdesc: Use Clever Cloud CLI
-tags:
-- cli
-keywords:
-- clever-tools
-
+title: Clever Tools (CLI)
+description: Use Clever Cloud CLI, Clever Tools
aliases:
+- /doc/administrate/clever-tools/getting_started
- /doc/quickstartcli
- /doc/getting-started/cli
- /doc/reference/clever-tools/getting_started
- /doc/reference/clever-tools
-
-type: "docs"
-comments: false
+- /developers/doc/cli/getting_started
---
-{{< hextra/hero-subtitle >}}
- Manage your applications from your terminal.
-{{< /hextra/hero-subtitle >}}
+Clever Tools is the command line interface (CLI) of Clever Cloud. You can use it to create and manage multiple services of the platform as applications, databases or storage add-ons. It also provides easy authenticated access to Clever Cloud public APIv2 and APIv4 through the [`clever curl` command](#curl). It's an [easy to set up](install) multiplatform and open source tool, based on Node.js.
-In addition to the Clever Cloud console, you can manage your add-ons and applications from the command line with Clever Tools.
+You can contribute to it through [issue](https://github.com/CleverCloud/clever-tools/issues) or [pull requests](https://github.com/CleverCloud/clever-tools/pulls). Ask for new features, enhancements or help us to provide them to our community.
+
+- [How to install Clever Tools](install)
+- [Create a Clever Cloud account](https://console.clever-cloud.com)
+
+You'll find below the first commands to know to connect Clever Tools to your account, get its information and manage some options. Others are developed in dedicated pages:
{{< cards >}}
- {{< card link="getting_started" title="Install" icon="arrow-down-tray" >}}
- {{< card link="create" title="Create an application or an add-on" icon="command-line" >}}
- {{< card link="configure" title="Configure an application" icon= "adjustments-horizontal">}}
- {{< card link="manage" title="Manage an application" icon="wrench-screwdriver" >}}
- {{< card link="lifecycle" title="Manage an application's lifecycle" icon="arrow-path" >}}
- {{< card link="notifications" title="Set notifications" icon="bell" >}}
- {{< card link="ssh-access" title="SSH access an application" icon="key" >}}
+ {{< card link="install" title="Install" icon="arrow-down-tray" >}}
+ {{< card link="addons" title="Create and manage add-ons" icon= "wrench-screwdriver" >}}
+ {{< card link="applications" title="Create and manage applications" icon="code-bracket" >}}
+ {{< card link="kv-stores" title="Manage KV stores" icon="server-stack" >}}
+ {{< card link="logs-drains" title="Manage logs, drains" icon="command-line" >}}
+ {{< card link="network-groups" title="Network Groups" icon="tcp-ip-service" >}}
+ {{< card link="notifications-webhooks" title="Notifications, Web hooks" icon="bell" >}}
+ {{< card link="services-depedencies" title="Services dependencies" icon="endpoints" >}}
{{< /cards >}}
+
+## basic commands
+
+To show Clever tools available commands, use:
+
+```
+clever
+clever help
+```
+
+For each of them, you can add these parameters:
+
+```
+[--help, -?] Display help about this program (default: false)
+[--version, -V] Display the version of this program (default: false)
+[--color] Choose whether to print colors or not. You can also use --no-color (default: true)
+[--update-notifier] Choose whether to use update notifier or not. You can also use --no-update-notifier (default: true)
+[--verbose, -v] Verbose output (default: false)
+```
+
+> [!TIP]
+> For commands returning a list of items, you can use `--format json` or `-F json` to get a JSON output.
+
+## features
+
+Some features are available as experimental, before they're completely ready for prime time. They usually work well, but this testing phase allows us to get feedbacks, refine some details, documentation, and break things between two releases.
+
+Experimental features can be (de)activated on-demand. To list them, use:
+
+```
+clever features
+```
+
+To (de)activate an experimental feature, use:
+
+```
+clever features enable theFeature
+clever features disable theFeature
+```
+
+To get information about how to use an experimental feature, use:
+
+```
+clever features info theFeature
+```
+
+## diag | version
+
+To check the current version or get information about your setup, use:
+
+```
+clever version
+clever diag
+clever diag --format json
+```
+
+> [!NOTE]
+> Such information are nice to provide in your issues report or when you contact Clever Cloud technical support team.
+
+## login | logout
+
+To connect to your Clever Cloud account, use:
+
+```
+clever login
+```
+
+It will open your default browser and start an Open Authorization ([OAuth](https://en.wikipedia.org/wiki/OAuth)) process to get a `token` and `secret` pair added in your account if it succeeds. You can manage it from the [Console](https://console.clever-cloud.com/users/me/tokens). Clever Tools will automatically store these `token` and `secret` values in a hidden `clever-tools.json` config file in the current local user home folder.
+
+If you already know them, you can use:
+
+```
+clever login --secret SECRET --token TOKEN
+```
+
+> [!TIP]
+> If environment variables `CLEVER_SECRET` and `CLEVER_TOKEN` are set, Clever Tools will use them, `login` is not needed.
+
+To log out, delete this file or use:
+
+```
+clever logout
+```
+
+## profile
+
+To get information about the current logged-in user (ID, name, email, 2FA activation, etc.), use:
+
+```
+clever profile
+clever profile open
+clever profile -F json
+```
+
+## curl
+
+To use our public API, you need to be authenticated for most endpoints. If you're logged in through Clever Tools, there is a simple way to make any request you want: `clever curl`. It's `curl`, but in an authenticated context for Clever Cloud API.
+
+- [Clever Cloud public APIv2 documentation](/developers/api/v2/)
+- [Clever Cloud public APIv4 documentation](/developers/api/v4/)
+
+## tokens
+
+You can query Clever Cloud public API with a bearer token thanks to the Auth Bridge. To get a token, use:
+
+```
+clever tokens create myTokenName
+```
+
+Once created, you can use it replacing the API endpoint with https://auth-bridge.clever-cloud.com. For example:
+
+```
+curl https://auth-bridge.clever-cloud.com/v2/self -H "Authorization: Bearer myToken"
+```
+
+To list all your tokens, use:
+
+```
+clever tokens
+clever tokens list
+clever tokens list -F json
+```
+
+To revoke a token, use:
+
+```
+clever tokens revoke myTokenId
+```
+
+> [!NOTE]
+> The `clever tokens` command is an experimental feature, activate it with `clever features enable tokens` command
diff --git a/content/doc/CLI/configure.md b/content/doc/CLI/configure.md
deleted file mode 100644
index 660a43236..000000000
--- a/content/doc/CLI/configure.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-type: docs
-title: Configure
-weight: 3
-tags:
-- cli
-- reference
-keywords:
-- apps
-- configuration
-aliases:
-- /doc/administrate/clever-tools/configure
----
-
-## Inspect the current configuration
-
-`clever config` will list you all available configuration for your application.
-
-```bash
-$ clever config
-Name: phpinfo
-Description: phpinfo
-Zero-downtime deployment: enabled
-Sticky sessions: disabled
-Cancel current deployment on push: disabled
-Force redirection of HTTP to HTTPS: disabled
-```
-
-You can also get a single configuration using `clever config get {name}`
-
-```bash
-$ clever config get cancel-on-push
-Cancel current deployment on push: disabled
-```
-
-## Update your configuration
-
-You can update a single configuration using `clever config set {name} {value}`
-
-```bash
-$ clever config set sticky-sessions true
-Sticky sessions: enabled
-```
-
-You can also update all of the configuration at once using `clever config update [options]`
-
-```bash
-$ clever config update --description="Displays phpinfo()" --disable-sticky-sessions --enable-force-https
-Description: Displays phpinfo()
-Sticky sessions: disabled
-Force redirection of HTTP to HTTPS: enabled
-```
diff --git a/content/doc/CLI/create.md b/content/doc/CLI/create.md
deleted file mode 100644
index d8511100f..000000000
--- a/content/doc/CLI/create.md
+++ /dev/null
@@ -1,173 +0,0 @@
----
-type: docs
-title: Create
-weight: 2
-shortdesc: Create an application with Clever Tools
-tags:
-- cli
-- reference
-keywords:
-- clever-tools
-- create
-- remove
-- list
-- application
-- addon
-- link
-- unlink
-- linked application
-- dependency
-- exposed configuration
-aliases:
-- /doc/administrate/clever-tools/create
-
----
-## Apps creation process
-
-`clever create` allows you to create a new application.
-
-First of all, select the type of your application in the list below :
-
-* docker (Docker)
-* go (Go)
-* gradle (Java or Groovy + Gradle)
-* jar (Java + JAR)
-* maven (Java + Maven)
-* node (Node)
-* php (PHP)
-* play1 (Java + Play! 1)
-* play2 (Java or Scala + Play! 2)
-* python (Python)
-* ruby (Ruby)
-* rust (Rust)
-* sbt (Scala + SBT)
-* static-apache (Static)
-* war (Java + WAR)
-
-Then, in order to create your app in your personal space, use :
-
-```shell
-clever create --type
-
-# Create an application for an organization
-clever create --type --org
-
-# Choose the region of your application (par, rbx, wsw, mtl, sgp, syd)
-clever create --type --region
-```
-
-### Alias
-
-You might want to use an alias instead of the complete name.
-
-```shell
-clever create --type --alias
-```
-
-When you want to make reference to this application using an other command, use `--alias ALIAS` instead of the name.
-
-### GitHub
-
-When creating your application, you can link it to GitHub for deployments.
-
-```shell
-# Link an application to GitHub
-clever create --github /
-```
-
-## Addon creation process
-
-Using `clever addon`, you can add, rename or delete addon and list available addon providers
-
-```shell
-# List existing addons
-clever addon
-```
-
-### Creating an addon
-
-First, list addon providers and then create your addon.
-
-```shell
-# List addon providers
-clever addon providers
-
-# Create your addon and link it to your application with --link
-clever addon create --link
-
-# Create an addon for an organization
-clever addon create --link --org
-```
-
-### Choosing provider's plan and region
-
-You can choose your addon's plan when you create it using `--plan `. The plan is by default 'dev'. With the flag "--yes" you can skip confirmation even if the addon is not free. You can also select the region that will provision the addon in.
-
-```shell
-# Show more informations about a provider(plans and available regions)
-clever addon providers show
-
-# Create your addon
-clever addon create --plan --region
-```
-
-### Rename or delete an addon
-
-Use `addon rename` and `addon delete` to respectively rename and delete an addon.
-If you don't want any confirmation, use `--yes`.
-
-```shell
-# Rename an addon
-clever addon rename
-
-# Delete an addon
-clever addon delete
-```
-
-## Dependencies
-
-### Link an application or an addon
-
-You can make dependencies using `clever service link`
-
-```shell
-# Link an application
-clever service link-app
-
-# Link an addon
-clever service link-addon
-```
-
-You can unlink dependency using `unlink-app` and `unlink-addon`
-
-## Exposed configuration
-
-Clever-tools allows you to get and update the exposed configuration of your application that allows dependencies to get informations about your application.
-
-### Get the whole configuration
-
-Simply use the commmand down below to get all your variables.
-
-```shell
-clever published-config
-```
-
-### Update a variable
-
-Use `set` to add or update a variable and `rm` to remove one.
-
-```shell
-# Add or update a variable
-clever published-config set
-
-# Remove a variable
-clever published-config rm
-```
-
-### Import a configuration
-
-Clever-tools allows you to load a configuration from STDIN.
-
-```shell
-cat | clever published-config import
-```
diff --git a/content/doc/CLI/getting_started.md b/content/doc/CLI/getting_started.md
deleted file mode 100644
index 0a315c431..000000000
--- a/content/doc/CLI/getting_started.md
+++ /dev/null
@@ -1,273 +0,0 @@
----
-type: docs
-title: Install
-weight: 1
-shortdesc: Getting started with Clever Cloud CLI
-tags:
-- cli
-- reference
-keywords:
-- clever-tools
-- get started
-aliases:
-- /doc/administrate/clever-tools/getting_started
-
----
-
-In addition to the Clever Cloud console, you can manage your addons and applications from the command line with Clever Tools.
-
-## Installing Clever Tools
-
-The clever-tools CLI can be installed through many different channels depending on your system setup.
-
-### Via npm
-
-If you already have node/npm on your system, you can run:
-
-```sh
-npm install -g clever-tools
-```
-
-If you want to install our latest beta release, you can run:
-
-```sh
-npm install -g clever-tools@beta
-```
-
-### On GNU/Linux
-
-#### Debian/Ubuntu (.deb)
-
-{{< callout type="warning" >}}
-We recently moved from Bintray to a self-hosted Nexus repository available at . If you were using Bintray to install our `.deb` packages, you will need to edit your `/etc/apt/sources.list` and remove the old entry with `https://dl.bintray.com/clevercloud/deb` before going further.
-{{< /callout >}}
-
-If you are using a GNU/Linux distribution that uses `.deb` packages like Debian or Ubuntu, you can run:
-
-```sh
-curl -fsSL https://clever-tools.clever-cloud.com/gpg/cc-nexus-deb.public.gpg.key | gpg --dearmor -o /usr/share/keyrings/cc-nexus-deb.gpg
-echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/cc-nexus-deb.gpg] https://nexus.clever-cloud.com/repository/deb stable main" | tee -a /etc/apt/sources.list
-apt-get update
-apt-get install clever-tools
-```
-
-NOTES:
-
-* The `.deb` packages are hosted on Clever Cloud's public Nexus instance available at [https://nexus.clever-cloud.com](https://nexus.clever-cloud.com).
-* Our PGP key is required to trust the repository.
-* If you want access to the beta channel, you can use this in your `sources.list`:
-
-```sh
-echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/cc-nexus-deb.gpg] https://nexus.clever-cloud.com/repository/deb-beta beta main" | tee -a /etc/apt/sources.list
-```
-
-#### CentOS/Fedora (.rpm)
-
-{{< callout type="warning" >}}
-We recently moved from Bintray to a self-hosted Nexus repository available at . If you were using Bintray to install our `.rpm` packages, you will need to remove the old `/etc/yum.repos.d/bintray-clevercloud-rpm.repo` before going further.
-{{< /callout >}}
-
-If you are using a GNU/Linux distribution that uses `.rpm` packages like CentOS or Fedora, you can run:
-
-```sh
-curl -s https://clever-tools.clever-cloud.com/repos/cc-nexus-rpm.repo > /etc/yum.repos.d/cc-nexus-rpm.repo
-yum update
-yum install clever-tools
-```
-
-NOTES:
-
-* The `.rpm` packages are hosted on Clever Cloud's public Nexus instance available at [https://nexus.clever-cloud.com](https://nexus.clever-cloud.com).
-* If you want access to the beta channel, you will need to edit `/etc/yum.repos.d/cc-nexus-rpm.repo` and set `enabled=1` for the `[clever-tools-beta]`.
-
-#### Arch Linux
-
-If you are using Arch Linux, the packages can be installed from AUR with this repo: [clever-tools-bin](https://aur.archlinux.org/packages/clever-tools-bin/).
-If you don't know how to use this, you can run:
-
-```sh
-git clone https://aur.archlinux.org/clever-tools-bin.git clever-tools
-cd clever-tools
-makepkg -si
-```
-
-NOTES:
-
-* If you want access to the beta channel, you can use this repo [clever-tools-bin-beta](https://aur.archlinux.org/packages/clever-tools-bin-beta/).
-
-#### Exherbo
-
-If you are using Exherbo, you can run:
-
-```sh
-cave resolve repository/CleverCloud -zx1
-cave resolve clever-tools-bin -zx
-```
-
-#### Other distributions (.tar.gz)
-
-If you are using another GNU/Linux distribution, you can download a `.tar.gz` archive and extract the binary in your `PATH`:
-
-```sh
-curl -O https://clever-tools.clever-cloud.com/releases/latest/clever-tools-latest_linux.tar.gz
-tar xvzf clever-tools-latest_linux.tar.gz
-cp clever-tools-latest_linux/clever ~/.local/bin/
-```
-
-NOTES:
-
-* The packages are available on Clever Cloud's Cellar bucket: [clever-tools-latest_linux.tar.gz](https://clever-tools.clever-cloud.com/releases/latest/clever-tools-latest_linux.tar.gz).
-* You can also retrieve any release (including beta) on this Cellar bucket by replacing `latest` (path and filename) with the version number you need.
-
-### On macOS
-
-{{< callout type="warning" >}}
-If you have an Apple processor, an error may occur during the installation.
-This is because clever tools currently only work on MacOS with an Intel processor.
-To resolve this problem, you can install Rosetta, a program that lets Apple processors run programs compiled for Intel processors.
-To install it, you can use the command `/usr/sbin/softwareupdate --install-rosetta`
-{{< /callout >}}
-
-#### Using homebrew
-
-If you are using macOS and you have [homebrew](https://brew.sh) installed, you can run:
-
-```sh
-brew install CleverCloud/homebrew-tap/clever-tools
-```
-
-NOTES:
-
-* If you want access to the beta channel, you can use `CleverCloud/homebrew-tap-beta/clever-tools` instead.
-
-#### Using the `.tar.gz` archive
-
-If you are using macOS, but you don't have [homebrew](https://brew.sh) installed, you can download a `.tar.gz` archive and extract the binary in your `PATH`:
-
-```sh
-curl -O https://clever-tools.clever-cloud.com/releases/latest/clever-tools-latest_macos.tar.gz
-tar xvzf clever-tools-latest_macos.tar.gz
-cp clever-tools-latest_macos/clever ~/.local/bin/
-```
-
-NOTES:
-
-* The packages are available on Clever Cloud's Cellar bucket: [clever-tools-latest_macos.tar.gz](https://clever-tools.clever-cloud.com/releases/latest/clever-tools-latest_macos.tar.gz).
-* You can also retrieve any release (including beta) on this Cellar bucket by replacing `latest` (path and filename) with the version number you need.
-
-### On Windows
-
-#### Using chocolatey
-
-{{< callout type="warning" >}}
-We recently moved from Bintray to a self-hosted Nexus repository available at .
-If you were using Bintray to install our `nupkg` packages, you will need to remove the old source.
-{{< /callout >}}
-
-If you are using Windows and you have [chocolatey](https://chocolatey.org) installed, you can run:
-
-```bash
-choco sources add -n=clevercloud -s='https://nexus.clever-cloud.com/repository/nupkg/'
-choco install clever-tools
-```
-
-NOTES:
-
-* If you want access to the beta channel, you can use `choco sources add -n=clevercloud -s='https://nexus.clever-cloud.com/repository/nupkg-beta/'` instead.
-
-#### Using the `.zip` archive
-
-If you are using Windows, but you don't have [chocolatey](https://chocolatey.org) installed, you can download a `.zip` archive and extract the binary in your `PATH`.
-
-NOTES:
-
-* The packages are available on Clever Cloud's Cellar bucket: [clever-tools-latest_win.tar.gz](https://clever-tools.clever-cloud.com/releases/latest/clever-tools-latest_win.zip).
-* You can also retrieve any release (including beta) on this Cellar bucket by replacing `latest` (path and filename) with the version number you need.
-
-### Via Docker
-
-If you are using docker, you can use the image provided [here](https://hub.docker.com/r/clevercloud/clever-tools/).
-
-```sh
-docker pull clevercloud/clever-tools
-docker run --rm clevercloud/clever-tools
-```
-
-#### Dockerfile
-
-In your `Dockerfile` you can copy the clever-tools CLI from the image itself with a simple one liner:
-
-```Dockerfile
-COPY --from=clevercloud/clever-tools /bin/clever /usr/local/bin/clever
-```
-
-### Via Nix
-
-If you are using Nix, you will find a Nix derivation on Fretlink's GitHub repository:
-
-## Enabling autocompletion
-
-The clever-tools CLI comes with a comprehensive auto-completion system.
-Some installation methods like `.deb` packages, `.rpm` packages or brew will try to enable it automatically.
-If it does not work, try this for bash:
-
-```bash
-clever --bash-autocomplete-script $(which clever) | sudo tee /usr/share/bash-completion/completions/clever
-```
-
-or this for zsh:
-
-```bash
-clever --zsh-autocomplete-script $(which clever) | sudo tee /usr/share/zsh/site-functions
-```
-
-## Linking your account
-
-To use `clever-tools`, you have to login.
-
-```sh
-clever login
-```
-
-It will open the Web console in your browser and reuse your existing session if you're already logged in.
-
-`clever login` tries to open a browser through `xdg-open` on GNU/Linux systems (and in bash for windows).
-Make sure you have `xdg-utils` available as well as a default browser set (or you can copy and paste the URL displayed in the console.
-
-## Linking an existing application
-
-If you have an already existing application, you can start managing it with
-Clever Tools.
-
-```sh
-# First, go to your local repository
-cd /path/to/your/application
-
-# Then, link it to the Clever Cloud application
-clever link
-
-# You can also use the application name (make sure to specify the
-# organization name if your application is in an organization.
-clever link --org
-
-# Unlink an application
-clever unlink
-```
-
-{{< callout type="info" >}}
-Once you have linked an application, clever-tools will create a Json configuration file named `.clever.json` at the root of the directory.
-This file can be commited safely, others team members working on this repository will not have to link the application again.
-This configuration file contains the AppID, so keep this in mind if you publish it on a public repository.
-{{< /callout >}}
-
-## Deploying new code
-
-After having written new code, you can deploy it to Clever Cloud
-
-```sh
-# Will git push your code to Clever Cloud and display logs
-clever deploy
-
-# Will open your application
-clever open
-```
diff --git a/content/doc/CLI/lifecycle.md b/content/doc/CLI/lifecycle.md
deleted file mode 100644
index 3f9469a3f..000000000
--- a/content/doc/CLI/lifecycle.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-type: docs
-title: Get an application lifecycle
-weight: 5
-shortdesc: Get informations about your application using the Clever Cloud CLI tool
-tags:
-- cli
-- reference
-keywords:
-- clever-tools
-- logs
-- log
-- logging
-- log drains
-- drain
-- drains
-- lifecycle
-- status
-- activity
-- list
-aliases:
-- /doc/administrate/clever-tools/lifecycle
-- /doc/clever-tools/lifecycle/
----
-## Status of your application
-
-Clever-tools can show you the status of an application on Clever Cloud using `clever status`. This command shows you if the application is running or stopped and informations about the scalability of your application.
-
-## Activity of your application
-
-`clever-tools` can show you the activity of an application. For each deployment, you get :
-
-* date and time of deployment
-* status (OK or FAIL)
-* action (DEPLOY or UNDEPLOY)
-* commit ID
-* tool used to deploy (Git/Console/clever-tools/...)
-
-In order to show those informations, use :
-
-```shell
-# Show the last 10 deployments
-clever activity
-
-# Show all deployments
-clever activity --show-all
-
-# Show deployments and track new ones
-clever activity --follow
-```
-
-## Listing linked applications
-
-You can list your linked applications with `clever applications`. For each application, the command shows you the alias, the id and the deployment url.
-
-```shell
-# List linked applications
-clever applications
-
-# List only application aliases
-clever applications --only-aliases
-```
diff --git a/content/doc/CLI/manage.md b/content/doc/CLI/manage.md
deleted file mode 100644
index a271a4deb..000000000
--- a/content/doc/CLI/manage.md
+++ /dev/null
@@ -1,127 +0,0 @@
----
-type: docs
-title: Manage
-weight: 4
-shortdesc: Manage your application using the Clever Cloud CLI tool
-tags:
-- cli
-- reference
-keywords:
-- cli
-- clever-tools
-- stop
-- restart
-- env
-- scalability
-- flavor
-- instance
-- domain
-
-aliases:
-- /doc/administrate/clever-tools/manage
-
----
-
-## Stop or restart your application
-
-`clever stop ` allows you to stop your application.
-If you want to restart your application, you can use :
-
-```shell
-clever restart
-
-# Restart the application with a specific commit id
-clever restart --commit
-```
-
-You can use `--quiet` when you restart, logs won't appear during deployment.
-
-## Deploy a new commit
-
-Use `clever deploy` to push your commits, which then starts a deployment
-
-## Environment
-
-Clever-tools allows you to get and update the environment of your application.
-
-### Get the whole environment
-
-Simply use the command down below to get all your variables.
-
-```shell
-clever env
-```
-
-### Update an environment variable
-
-Use `set` to add or update an environment variable and `rm` to remove one.
-
-```shell
-# Add or update an environment variable
-clever env set
-
-# Remove an environment variable
-clever env rm
-```
-
-If your environment variable contains a `-`, then write: `clever env set test -- ---foo---`
-
-Or you can put the dashes before the remaining arguments, as follows: `clever -- env set test ---bar---`
-
-The `--` indicates that there are no options to be parsed.
-
-### Load environment variables
-
-Clever-tools allows you to load variables from STDIN.
-
-```shell
-cat | clever env import
-```
-
-## Scalability
-
-### Flavors
-
-You can choose the scale of your application using `--flavor ` where `` can be pico, nano, XS, S, M, L or XL.
-
-```shell
-# Change the scale of your application
-clever scale --flavor
-
-# Set the minimum and maximum scale for your application
-clever scale --min-flavor --max-flavor
-```
-
-### Instances
-
-You can choose the number of parallels instances using `--instances ` where `` is a number between 1 and 20.
-
-```shell
-# Change the number of parallels instances
-clever scale --instances
-
-# Set the minimum and maximum number of parallels instances
-clever scale --min-instances --max-instances
-```
-
-## Domains
-
-### List your domains
-
-If you want to list your domain, use :
-
-```shell
-clever domain
-```
-
-### Add or remove domains
-
-Using `clever domain`, you can add or remove domain names.
-
-```shell
-# Add a domain
-clever domain add
-
-# Remove a domain
-clever domain remove
-```
diff --git a/content/doc/addons/elastic/_index.md b/content/doc/addons/elastic/_index.md
index 6c1eb4005..01c1ac39a 100644
--- a/content/doc/addons/elastic/_index.md
+++ b/content/doc/addons/elastic/_index.md
@@ -148,7 +148,7 @@ Elasticsearch managed by Clever Cloud comes with these plugins, you can activate
| mapper-annotated-text | Provides the ability to index text that is a combination of free-text and special markup |
{{< callout type="info" >}}
-Plugin activation is only available at add-on creation, through [API](/api) or the `--option` flag of [Clever Tools](https://github.com/CleverCloud/clever-tools/blob/master/docs/addons-backups.md#create--rename--delete). You must pass the option as a comma-separated list: `plugins=plugin1,plugin2`. To modify enabled plugins on an existing add-on, contact [support team](https://console.clever-cloud.com/ticket-center-choice).
+Plugin activation is only available at add-on creation, through [API](/api) or the `--option` flag of [Clever Tools](/developers/doc/cli/addons/#create--rename--delete). You must pass the option as a comma-separated list: `plugins=plugin1,plugin2`. To modify enabled plugins on an existing add-on, contact [support team](https://console.clever-cloud.com/ticket-center-choice).
{{< /callout >}}
## Backups
diff --git a/content/doc/addons/jenkins.md b/content/doc/addons/jenkins.md
index bc199113d..d64470e7e 100644
--- a/content/doc/addons/jenkins.md
+++ b/content/doc/addons/jenkins.md
@@ -43,11 +43,11 @@ To create a Jenkins add-on, you can either use our web console or our CLI:
### CLI
-1. Make sure you have clever-tools installed locally. Report to the [getting started]({{< ref `doc/cli/getting_started.md` >}}) guide if needed.
+1. Make sure you have clever-tools installed locally. Report to the [getting started](/developers/doc/cli/getting_started) guide if needed.
2. List the available plans and options for Jenkins: `clever addon providers show jenkins`.
3. In your terminal, you can then run `clever addon create jenkins --region --org ` where `app-name` is the name you want for your add-on, `region` deployment region, and `org` the organization ID the application will be created under.
-Refer to the [documentation]({{< ref `doc/cli/create.md` >}}) for more details on application creation with Clever Tools
+Refer to the [documentation](/developers/doc/cli/create) for more details on application creation with Clever Tools
## Accessing the Jenkins interface
diff --git a/content/doc/addons/keycloak.md b/content/doc/addons/keycloak.md
index ed8b33682..bc9f417fa 100644
--- a/content/doc/addons/keycloak.md
+++ b/content/doc/addons/keycloak.md
@@ -78,7 +78,7 @@ You can however manage and adjust them directly in the Console to fit your needs
### Using the CLI
-Make sure you have `clever-tools` installed locally. Please refer to the [setup guide](https://github.com/CleverCloud/clever-tools/blob/master/docs/setup-systems.md) if needed. In your terminal, run `clever addon create keycloak --org ` (`--org` is optional). You'll get URLs to manage your Keycloak instance and the temporary credentials:
+Make sure you have `clever-tools` installed locally. Please refer to the [setup guide](/developers/doc/cli/install/) if needed. In your terminal, run `clever addon create keycloak --org ` (`--org` is optional). You'll get URLs to manage your Keycloak instance and the temporary credentials:
```
$ clever addon create keycloak myKeycloak
diff --git a/content/doc/addons/materia-kv.md b/content/doc/addons/materia-kv.md
index 063f8d22c..a4e0efe12 100644
--- a/content/doc/addons/materia-kv.md
+++ b/content/doc/addons/materia-kv.md
@@ -116,7 +116,7 @@ By default, Materia KV uses TLS on the 6379 port. You can use non-TLS connection
We're exploring how [Clever Tools](https://github.com/CleverCloud/clever-tools/) can natively support Materia KV and helps you to manage such add-ons without any additional software or configuration. We've enabled the `clever kv` command in a testing branch available [here](https://github.com/CleverCloud/clever-tools/pull/725). You can download it as a binary and only need the `KV_TOKEN` environment variable to be set to use it, or target a specific add-on with the `--addon` option.
-* [Learn more about Clever KV](https://github.com/CleverCloud/clever-tools/blob/davlgd-embedded-kv-client/docs/kv.md)
+* [Learn more about Clever KV](/developers/doc/cli/kv-stores/)
### Demos and examples
diff --git a/content/doc/addons/matomo.md b/content/doc/addons/matomo.md
index 0473652f5..0acae5166 100644
--- a/content/doc/addons/matomo.md
+++ b/content/doc/addons/matomo.md
@@ -50,7 +50,7 @@ We've already integrated the Clever Cloud SSO, so you can login directly into yo
### Using the CLI
-Make sure you have `clever-tools` installed locally. Please refer to the [setup guide](https://github.com/CleverCloud/clever-tools/blob/master/docs/setup-systems.md) if needed. In your terminal, `clever addon create addon-matomo --region --org ` (`--org` and `--region` are optional). You'll get URLs to manage your Matomo instance:
+Make sure you have `clever-tools` installed locally. Please refer to the [setup guide](/developers/doc/cli/install/) if needed. In your terminal, `clever addon create addon-matomo --region --org ` (`--org` and `--region` are optional). You'll get URLs to manage your Matomo instance:
```
$ clever addon create addon-matomo myMatomo
@@ -67,7 +67,7 @@ Your Matomo is starting:
/!\ The addon-matomo provider is in beta testing phase
```
-Refer to the [Clever Tools documentation](https://github.com/CleverCloud/clever-tools/blob/master/docs/addons-backups.md) for more details on add-on management.
+Refer to the [Clever Tools documentation](/developers/doc/cli/addons/) for more details on add-on management.
## Accessing the Matomo interface
diff --git a/content/doc/addons/metabase.md b/content/doc/addons/metabase.md
index 897fc3eca..83f34380b 100644
--- a/content/doc/addons/metabase.md
+++ b/content/doc/addons/metabase.md
@@ -44,7 +44,7 @@ You can also save questions and **organize** them in _collections_. When opening
### Using the CLI
-Make sure you have `clever-tools` installed locally. Please refer to the [setup guide](https://github.com/CleverCloud/clever-tools/blob/master/docs/setup-systems.md) if needed. In your terminal, run `clever addon create metabase --org ` (`--org` is optional). You'll get URLs to manage your Metabase instance and the temporary credentials:
+Make sure you have `clever-tools` installed locally. Please refer to the [setup guide](/developers/doc/cli/install/) if needed. In your terminal, run `clever addon create metabase --org ` (`--org` is optional). You'll get URLs to manage your Metabase instance and the temporary credentials:
```
$ clever addon create metabase myMetabase
@@ -60,7 +60,7 @@ Your Metabase is starting:
/!\ The metabase provider is in beta testing phase
```
-Refer to the [Clever Tools documentation](https://github.com/CleverCloud/clever-tools/blob/master/docs/addons-backups.md) for more details on add-on management.
+Refer to the [Clever Tools documentation](/developers/doc/cli/addons/) for more details on add-on management.
## Accessing the Metabase interface
@@ -95,7 +95,7 @@ This variable can be modified to specify which version of Metabase you want. Thi
- `CC_METABASE_VERSION=0.50.3`: use the `0.50.3` version (_same as `=0.50.3`_)
- `CC_METABASE_VERSION=0.50`: use the latest available version starting with `0.50` (_same as `^0.50.0`, `~0.50.0`_)
-To update Metabase manually, you **should** restart the Java application without the build cache, using the `re-build and restart` button in the [Console](https://console.clever-cloud.com/) or the `clever restart --without-cache` command of [Clever Tools](https://github.com/CleverCloud/clever-tools/blob/master/docs/applications-deployment-lifecycle.md#restart).
+To update Metabase manually, you **should** restart the Java application without the build cache, using the `re-build and restart` button in the [Console](https://console.clever-cloud.com/) or the `clever restart --without-cache` command of [Clever Tools](/developers/doc/cli/applications/deployment-lifecycle/#restart).
The Metabase JAR is stored in the build cache so that no time is wasted re-downloading it every time you restart the application (or it is restarting as part of a scaling event). This also makes the service more resilient: should the download be temporarily failing for any reason, this would not prevent restarting/scaling your add-on.
{{< callout type="warning" >}}
diff --git a/content/doc/addons/otoroshi.md b/content/doc/addons/otoroshi.md
index b2a926a7f..da7e9ba9f 100644
--- a/content/doc/addons/otoroshi.md
+++ b/content/doc/addons/otoroshi.md
@@ -33,7 +33,7 @@ On Clever Cloud, it comes with pre-configured with features included such as [Co
### Using the CLI
-Make sure you have `clever-tools` installed locally. Please refer to the [setup guide](https://github.com/CleverCloud/clever-tools/blob/master/docs/setup-systems.md) if needed. In your terminal, run `clever addon create otoroshi --org ` (`--org` is optional). You'll get URLs to manage your Otoroshi with LLM instance and the temporary credentials:
+Make sure you have `clever-tools` installed locally. Please refer to the [setup guide](/developers/doc/cli/install/) if needed. In your terminal, run `clever addon create otoroshi --org ` (`--org` is optional). You'll get URLs to manage your Otoroshi with LLM instance and the temporary credentials:
```
$ clever addon create otoroshi myOtoroshi
@@ -54,7 +54,7 @@ An initial account has been created, change the password at first login (Securit
Learn more about Otoroshi with LLM on Clever Cloud: https://developers.clever-cloud.com/doc/addons/otoroshi/
```
-Refer to the [Clever Tools documentation](https://github.com/CleverCloud/clever-tools/blob/master/docs/addons-backups.md) for more details on add-on management.
+Refer to the [Clever Tools documentation](/developers/doc/cli/addons/) for more details on add-on management.
## Accessing the Otoroshi with LLM interface
diff --git a/content/doc/cli/addons/_index.md b/content/doc/cli/addons/_index.md
new file mode 100644
index 000000000..3351b417f
--- /dev/null
+++ b/content/doc/cli/addons/_index.md
@@ -0,0 +1,105 @@
+---
+type: "docs"
+weight: 2
+title: Add-ons, Backups
+description: Create and manage Clever Cloud add-ons, backups with Clever Tools
+---
+
+Add-ons on Clever Cloud are databases, storage services, tools or third party services you can enable through `clever addon provider`. For each of the following commands, you can target a specific user/organization:
+
+```
+[--org, -o, --owner] Organisation ID (or name, if unambiguous)
+```
+
+## providers
+
+To use add-ons, you need to identify the corresponding provider. To get information about them (plans, regions, versions), use:
+
+```
+clever addon providers
+clever addon providers show PROVIDER_NAME
+```
+
+## create | rename | delete
+
+To create an add-on, select a provider and choose a name:
+
+```
+clever addon create PROVIDER ADDON_NAME
+```
+
+You can set `plan`, `region`, `version`, `option` and directly `link` an add-on to an application through these parameters:
+
+```
+[--link, -l] ALIAS Link the created add-on to the app with the specified alias
+[--yes, -y] Skip confirmation even if the add-on is not free (default: false)
+[--plan, -p] PLAN Add-on plan, depends on the provider
+[--region, -r] REGION Region to provision the add-on in, depends on the provider (default: par)
+[--addon-version] ADDON-VERSION The version to use for the add-on
+[--option] OPTION Option to enable for the add-on. Multiple --option argument can be passed to enable multiple options
+[--format, -F] FORMAT Output format (human, json) (default: human)
+```
+
+> [!NOTE]
+> If no plan is set, we use the cheapest by default
+
+To rename an add-on, use:
+
+```
+clever addon rename ADDON_ID_OR_NAME ADDON_NEW_NAME
+```
+
+To delete an add-on, use:
+
+```
+clever addon delete [--yes, -y] ADDON_ID_OR_NAME
+```
+
+## env
+
+Each add-on comes with environment variables. To get them, use:
+
+```
+clever addon env [--format, -F] FORMAT ADDON_ID
+```
+
+> [!NOTE]
+> Available formats are: `human` (default), `json` and `shell`
+
+For some add-ons, an interface URL, default credentials or other instructions can be displayed after creation.
+
+If you're testing [Materia KV](/developers/doc/addons/materia-kv/), our next generation of serverless distributed database, synchronously-replicated, compatible with Redis® protocol, you can create an add-on and immediately use it:
+
+```
+clever addon create kv ADDON_NAME
+source <(clever addon env ADDON_ID --format shell)
+redis-cli -h $KV_HOST -p $KV_PORT --tls
+```
+
+> [!TIP]
+> If you use the Fish shell, you can use the following command to set the environment variables:
+> ```
+> clever addon env ADDON_ID --format shell | source
+> ```
+
+## database backups
+
+Databases are backup every day, with last 7 days of backups available to download. You can list them, available formats are: `human` (default) or `json`:
+
+```
+clever database backups DATABASE-ID [--format, -F] FORMAT
+```
+
+To download one of them, use:
+
+```
+clever database backups download [--output, --out] OUTPUT_FILE DATABASE_ID BACKUP_ID
+```
+
+This command is still under development and will evolve over time. To get information about backups and download them, you can use our API and `clever curl`. For example:
+
+```
+clever curl -X GET https://api.clever-cloud.com/v2/backups//
+```
+
+This will list available backups for the database, with creation and delete time. The answer will also contain a direct HTTPS `download_url`.
diff --git a/content/doc/cli/applications/_index.md b/content/doc/cli/applications/_index.md
new file mode 100644
index 000000000..6b4607bac
--- /dev/null
+++ b/content/doc/cli/applications/_index.md
@@ -0,0 +1,130 @@
+---
+type: docs
+weight: 3
+title: Applications
+description: Create and manage Clever Cloud applications with Clever Tools
+aliases:
+- /doc/administrate/clever-tools/create
+- /developers/doc/cli/create
+---
+
+## create
+
+You can create a new application on Clever Cloud, linked to your local folder. Only its `type` is required, it should be one of: `docker`, `elixir`, `go`, `gradle`, `haskell`, `jar`,`maven`, `meteor`, `node`, `php`, `play1`, `play2`, `python`, `ruby`, `rust`, `sbt`, `static-apache` or `war`. Result can be printed in `human` or `json` format.
+
+```
+clever create -t TYPE APP_NAME
+clever create -t TYPE --format json
+```
+
+> [!NOTE]
+> Application name is optional. The current directory name is used if not specified.
+
+You can also use one of the following optional parameters:
+
+#### Tasks
+
+```
+[--task, -T] COMMAND
+```
+
+You can declare a new application as a Clever Task. Once deployed, a Task executes its command and then stops. This value can be set by an (optional) parameter or later through `clever env set CC_RUN_COMMAND command`.
+
+You can execute a Task whenever needed through a `clever restart` or modify it and `clever deploy` a new revision. You'll only be billed for the build/execution time, per second.
+
+> [!NOTE]
+> Except its lifecycle, a Clever Task is identical to an application and accepts the same environment variables.
+
+#### GitHub repositories
+
+```
+--github owner/repo
+```
+
+If your Clever Cloud account is linked to a GitHub account, you can deploy any of your GitHub repositories as an application thanks to this parameter.
+
+#### Other optional parameters
+
+You can ask to deploy your application in a specific organisation/user account, region, with an alias different from its name:
+
+```
+[--org, -o, --owner] ID/NAME
+[--alias, -a] ALIAS
+[--region, -r] ZONE
+[--format, -F] FORMAT
+```
+
+Default region is our Paris datacenters (`par`), but it can be:
+
+- `par` (Paris, [Clever Cloud](https://www.clever-cloud.com/infrastructure/))
+- `grahds` (Gravelines, HDS servers, OVHcloud)
+- `rbx` (Roubaix, OVHcloud)
+- `rbxhds` (Roubaix, HDS servers, OVHcloud)
+- `scw` (Paris, [Scaleway DC5](https://www.clever-cloud.com/blog/press/2023/01/17/clever-cloud-and-scaleway-join-forces-to-unveil-a-sovereign-european-paas-offering/))
+- `mtl` (Montreal, OVHcloud)
+- `sgp` (Singapore, OVHcloud)
+- `syd` (Sydney, OVHcloud)
+- `wsw` (Warsaw, OVHcloud)
+
+After the application creation, you can ask for a `json` formatted report instead of an `human` sentence:
+
+```
+[--format, -F] FORMAT
+```
+
+## (un)link and make-default
+
+If an application already exists in your Clever Cloud account, you can link it to any local directory to control it easily. You can even link several applications to a single folder, each one with a different name and/or alias. This is done through the `.clever.json` file.
+
+```
+clever link APP_ID_OR_NAME [--alias, -a] ALIAS [--org, -o, --owner] ORG_ID_OR_NAME
+```
+
+If multiple applications are linked, you can define one as default with it alias:
+
+```
+clever make-default ALIAS
+```
+
+To unlink an application:
+
+```
+clever unlink ALIAS
+```
+
+## applications
+
+You can list linked applications of a folder, you'll get : ID, alias and deployment URL.
+
+```
+clever applications
+```
+
+If you only need to get aliases or the result in the JSON format:
+
+```
+[--only-aliases] List only application aliases (default: false)
+[--json, -j] Show result in JSON format (default: false)
+```
+
+## list
+
+To list all applications across all organisations you have access to, you can use:
+
+```
+clever applications list -F json
+clever applications list --org ORG_ID_OR_NAME
+```
+
+## delete
+
+To delete an application and unlink it from the current folder you only need to:
+
+```
+clever delete
+clever delete --alias ALIAS
+clever delete --app APP_ID_OR_NAME
+```
+
+> [!TIP]
+> You can skip confirmation adding the `--yes` or `-y` parameter.
diff --git a/content/doc/cli/applications/configuration.md b/content/doc/cli/applications/configuration.md
new file mode 100644
index 000000000..9c49f59a5
--- /dev/null
+++ b/content/doc/cli/applications/configuration.md
@@ -0,0 +1,161 @@
+---
+type: docs
+title: Configuration
+description: Configure Clever Cloud applications with Clever Tools
+aliases:
+- /doc/administrate/clever-tools/configure
+- /developers/doc/cli/configure
+---
+
+A Clever Cloud application can easily be configured once created, through following commands. Each can target a specific application, adding `--app APP_ID_OR_NAME` or a local alias (`--alias`, `-a`).
+
+## config
+
+Each application have options you can get/set: `name`, `description`, `zero-downtime`, `sticky-sessions`, `cancel-on-push`, `force-https`.
+
+```
+clever config get parameter
+clever config set parameter value
+```
+
+To update multiple configuration parameters at a time, use:
+
+```
+clever config update --option1 value1 --option2 value2 --option3 value3
+```
+
+Available parameters are :
+
+```
+[--name] Set name
+[--description] Set description
+[--enable-zero-downtime] Enable zero-downtime (default: false)
+[--disable-zero-downtime] Disable zero-downtime (default: false)
+[--enable-sticky-sessions] Enable sticky-sessions (default: false)
+[--disable-sticky-sessions] Disable sticky-sessions (default: false)
+[--enable-cancel-on-push] Enable cancel-on-push (default: false)
+[--disable-cancel-on-push] Disable cancel-on-push (default: false)
+[--enable-force-https] Enable force-https (default: false)
+[--disable-force-https] Disable force-https (default: false)
+```
+
+## env
+
+Environment variables of Clever Cloud applications can easily be modified:
+
+```
+clever env set VARIABLE VALUE
+clever env rm VARIABLE
+```
+
+You can import local environment variables (comma separated) or from a file through `stdin`. If it's a JSON file, each object should be composed of a `name` and a `value`.
+
+```
+clever env import-vars VAR_NAME1,VAR_NAME2
+clever env import < .env
+cat .env.json | clever env import --json
+```
+
+To show or export environment variables of an application, use:
+
+```
+clever env
+clever env > .env
+```
+
+You can also export environment variable in a sourceable format (`export ENV_NAME="VALUE";`):
+
+```
+clever env --add-export
+```
+
+## domain
+
+By default, a Clever Cloud application gets `app_id.cleverapps.io` as fully qualified domain name ([FQDN](https://fr.wikipedia.org/wiki/Fully_qualified_domain_name)). To see it, use:
+
+```
+clever domain
+```
+
+To get an overview of domains linked to any of your applications and organizations, use:
+
+```
+clever domain overview
+clever domain overview --filter domain.tld
+clever domain overview --filter .tld --format json
+```
+
+> [!TIP]
+> The JSON output of this command plays nicely with tools such as [jless](https://jless.io/) to navigate through your domains.
+
+To add/remove a domain to an application, use:
+
+```
+add Add a domain name to a Clever Cloud application
+rm Remove a domain name from a Clever Cloud application
+```
+
+> [!TIP]
+> You can set the same domain with multiple apps thanks to [prefix routing](/developers/doc/administrate/domain-names/#prefix-routing). For example, you can add `mydomain.com/app1` domain to an application and `mydomain.com/app2` to another.
+
+To (un)set the favourite domain, use:
+
+```
+clever domain favourite set FQDN
+clever domain favourite unset FQDN
+```
+
+To check if the domains of an application are properly configured, use:
+
+```
+clever domain diag
+clever domain diag --format json
+clever domain diag --app APP_ID_OR_NAME
+```
+
+You can only diagnose some domains of the application using a text filter:
+
+```
+clever domain diag --filter .tld
+clever domain diag --filter mydomain.tld
+```
+
+> [!NOTE]
+> Domain diagnosis is not made for applications using a 3rd party CDN or a dedicated load balancer.
+
+## scale and dedicated build
+
+You can easily change the number of instances and `flavor` for an application. It can have a different `flavor` used for build phase, to get it done faster. We also provide horizontal and vertical scaling: you can set a minimal/maximal `flavor` and number of instance, then we autoscale depending on incoming load. To change this, use `clever scale` with the following options:
+
+```
+[--flavor] FLAVOR The scale of your application
+[--min-flavor] MINFLAVOR The minimum scale for your application
+[--max-flavor] MAXFLAVOR The maximum scale for your application
+[--instances] INSTANCES The number of parallels instances
+[--min-instances] MININSTANCES The minimum number of parallels instances
+[--max-instances] MAXINSTANCES The maximum number of parallels instances
+[--build-flavor] BUILDFLAVOR The size of the build instance, or `disabled`
+```
+
+> [!NOTE]
+> Available instances flavors are: `pico`, `nano`, `XS`, `S`, `M`, `L`, `XL`, `2XL`, `3XL`
+>
+> Due to its low memory (256 MiB) `pico` is not always available. When selected, a dedicated `S` instance is used for build by default.
+
+## tcp-redirs
+
+A Clever Cloud application activate TCP redirections in `default` or `cleverapps` namespace:
+
+```
+clever tcp-redirs add --namespace NAMESPACE
+clever tcp-redirs remove --namespace NAMESPACE PORT
+```
+
+To list enabled TCP redirection, use:
+
+```
+clever tcp-redirs
+clever tcp-redirs --format json
+```
+
+- [Learn more about TCP redirections](/developers/doc/administrate/tcp-redirections/)
diff --git a/content/doc/cli/applications/deployment-lifecycle.md b/content/doc/cli/applications/deployment-lifecycle.md
new file mode 100644
index 000000000..3e0b6fea3
--- /dev/null
+++ b/content/doc/cli/applications/deployment-lifecycle.md
@@ -0,0 +1,113 @@
+---
+type: docs
+title: Deploy, Lifecycle
+description: Manage your application using the Clever Cloud CLI tool
+aliases:
+- /developers/doc/cli/ssh-access
+- /developers/doc/cli/lifecycle
+- /developers/doc/cli/manage
+- /doc/administrate/clever-tools/lifecycle
+- /doc/administrate/clever-tools/manage
+- /doc/administrate/clever-tools/ssh-access
+- /doc/clever-tools/lifecycle
+---
+
+A Clever Cloud application can easily be deployed and accessed once created, through following commands. Most can target a specific application, adding `--app APP_ID_OR_NAME` or a local alias (`--alias`, `-a`).
+
+## deploy
+
+Once changes are committed in your local git repository, you can deploy it:
+
+```
+clever deploy
+```
+
+It will `git push` your code on the remote repository of your application on Clever Cloud automatically. You can, of course, use option to `force push` or use specific local branch for example:
+
+```
+[--branch, -b] BRANCH Branch to push (current branch by default) (default: )
+[--tag, -t] TAG Tag to push (none by default) (default: )
+[--quiet, -q] Don't show logs during deployment (default: false)
+[--force, -f] Force deploy even if it's not fast-forwardable (default: false)
+[--follow] Continue to follow logs after deployment has ended (default: false)
+[--same-commit-policy, -p] POLICY What to do when local and remote commit are identical (error, ignore, restart, rebuild) (default: error)
+[--exit-on, -e] STEP Step at which the logs streaming is ended, steps are: deploy-start, deploy-end, never (default: deploy-end)
+```
+
+> [!TIP]
+> You can cancel a deployment with `clever cancel-deploy` command. You can also [configure an application](applications-config#config) so that a new deployment cancels the current one.
+
+## console | open
+
+Once deployed, you can open the application on your default browser or [Clever Cloud Console](https://console.clever-cloud.com):
+
+```
+clever open
+clever console
+```
+
+## status
+
+To get application state, options or running/scaling status, use:
+
+```
+clever status
+clever status --format json
+```
+
+## restart
+
+Once deployed, an application can be restarted:
+
+```
+clever restart
+```
+
+By default, it will use its build cache when available. But you can override it or use other available options:
+
+```
+[--commit] COMMIT ID Restart the application with a specific commit ID
+[--without-cache] Restart the application without using cache (default: false)
+[--quiet, -q] Don't show logs during deployment (default: false)
+[--follow] Continue to follow logs after deployment has ended (default: false)
+[--exit-on, -e] STEP Step at which the logs streaming is ended, steps are: deploy-start, deploy-end, never (default: deploy-end)
+```
+
+## stop | cancel-deploy
+
+To stop an application or cancel any ongoing deployment, use:
+
+```
+clever stop
+clever cancel-deploy
+```
+
+## ssh
+
+A Clever Cloud application is a running virtual machine you can ssh to, as a user (`bas`). By default, it will use `OpenSSH` configuration, but you can target a specific identity file:
+
+```
+clever ssh [--identity-file, -i] IDENTITY-FILE
+```
+
+To ssh a specific application, use:
+
+```
+clever ssh --app APP_ID_OR_NAME
+```
+
+## activity
+
+To get deployment activity, use:
+
+```
+clever activity
+```
+
+By default, it will show you last 10 deployments. You can show all or listen to a stream of incoming deployments through options:
+
+```
+[--follow, -f] Track new deployments in activity list (default: false)
+[--show-all] Show all activity (default: false)
+[--format, -F] FORMAT Output format (human, json, json-stream)
+```
diff --git a/content/doc/cli/install/_index.md b/content/doc/cli/install/_index.md
new file mode 100644
index 000000000..090b37fcf
--- /dev/null
+++ b/content/doc/cli/install/_index.md
@@ -0,0 +1,184 @@
+---
+type: docs
+weight: 1
+title: Install Clever Tools
+description: Getting started with Clever Cloud CLI
+---
+
+Clever Cloud CLI is based on Node.js. We thought it to be easily available on any platform. Thus, you can download Clever Tools as [a npm package](https://www.npmjs.com/package/clever-tools), but also through package managers or as a binary on many systems:
+
+- [GNU/Linux](#gnulinux)
+ - [Arch Linux (AUR)](#arch-linux-aur)
+ - [CentOS/Fedora (.rpm)](#centosfedora-rpm)
+ - [Debian/Ubuntu (.deb)](#debianubuntu-deb)
+ - [Exherbo](#exherbo)
+ - [Other distributions (.tar.gz)](#other-distributions-targz)
+- [macOS](#macos)
+ - [Homebrew](#homebrew)
+ - [Binary (.tar.gz)](#binary-targz)
+- [Windows](#windows)
+ - [Winget](#winget)
+ - [Chocolatey](#chocolatey)
+ - [Binary (.zip)](#binary-zip)
+- [Docker](#docker)
+ - [Dockerfile](#dockerfile)
+- [Nix package manager](#nix-package-manager)
+- [Enabling autocompletion](#enabling-autocompletion)
+
+## GNU/Linux
+
+### Arch Linux (AUR)
+
+If you use Arch Linux, install packages [from AUR](https://aur.archlinux.org/packages/clever-tools-bin/). If you don't know how to use this, run:
+
+```
+git clone https://aur.archlinux.org/clever-tools-bin.git clever-tools
+cd clever-tools
+makepkg -si
+```
+
+### CentOS/Fedora (.rpm)
+
+If you use a GNU/Linux distribution that uses `.rpm` packages like CentOS or Fedora, run:
+
+```
+curl -s https://clever-tools.clever-cloud.com/repos/cc-nexus-rpm.repo > /etc/yum.repos.d/cc-nexus-rpm.repo
+yum update
+yum install clever-tools
+```
+
+> [!TIP]
+> The `.rpm` packages are hosted on Clever Cloud's public Nexus instance available at [https://nexus.clever-cloud.com](https://nexus.clever-cloud.com)
+
+### Debian/Ubuntu (.deb)
+
+If you use a GNU/Linux distribution that uses `.deb` packages like Debian or Ubuntu, run:
+
+```
+curl -fsSL https://clever-tools.clever-cloud.com/gpg/cc-nexus-deb.public.gpg.key | gpg --dearmor -o /usr/share/keyrings/cc-nexus-deb.gpg
+echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/cc-nexus-deb.gpg] https://nexus.clever-cloud.com/repository/deb stable main" | tee -a /etc/apt/sources.list
+apt update
+apt install clever-tools
+```
+
+> [!TIP]
+> The `.deb` packages are hosted on Clever Cloud's public Nexus instance available at [https://nexus.clever-cloud.com](https://nexus.clever-cloud.com). \
+> Our PGP key is required to trust the repository
+
+### Exherbo
+
+If you are using Exherbo, run:
+
+```
+cave resolve repository/CleverCloud -zx1
+cave resolve clever-tools-bin -zx
+```
+
+### Other distributions (.tar.gz)
+
+If you use another GNU/Linux distribution, download the `.tar.gz` archive and extract the binary in your `PATH`:
+
+```
+curl -O https://clever-tools.clever-cloud.com/releases/latest/clever-tools-latest_linux.tar.gz
+tar xvzf clever-tools-latest_linux.tar.gz
+cp clever-tools-latest_linux/clever ~/.local/bin/
+```
+
+> [!TIP]
+> The packages are available on Clever Cloud's Cellar bucket: [clever-tools-latest_linux.tar.gz](https://clever-tools.clever-cloud.com/releases/latest/clever-tools-latest_linux.tar.gz). \
+> Retrieve any release by replacing `latest` (path and filename) with the version number you need.
+
+## macOS
+
+### Homebrew
+
+If you use macOS and you have [Homebrew](https://brew.sh) installed, run:
+
+```
+brew install CleverCloud/homebrew-tap/clever-tools
+```
+
+### Binary (.tar.gz)
+
+If you use macOS, but you don't have [Homebrew](https://brew.sh) installed, download the `.tar.gz` archive and extract the binary in your `PATH`:
+
+```
+curl -O https://clever-tools.clever-cloud.com/releases/latest/clever-tools-latest_macos.tar.gz
+tar xvzf clever-tools-latest_macos.tar.gz
+cp clever-tools-latest_macos/clever ~/.local/bin/
+```
+
+> [!TIP]
+> The packages are available on Clever Cloud's Cellar bucket: [clever-tools-latest_macos.tar.gz](https://clever-tools.clever-cloud.com/releases/latest/clever-tools-latest_macos.tar.gz). \
+> Retrieve any release by replacing `latest` (path and filename) with the version number you need.
+
+## Windows
+
+### Winget
+
+If you use Windows run in a terminal:
+
+```
+winget install CleverTools
+```
+
+### Chocolatey
+
+If you prefer to use [Chocolatey](https://chocolatey.org), run:
+
+```
+choco sources add -n=clevercloud -s='https://nexus.clever-cloud.com/repository/nupkg/'
+choco feature disable --name='usePackageRepositoryOptimizations'
+choco install clever-tools
+```
+
+We need to disable `usePackageRepositoryOptimizations` feature because of [an incompatibility](https://github.com/chocolatey/choco/issues/3506) between Chocolatey and Nexus.
+
+### Binary (.zip)
+
+You can also download the `.zip` archive and extract the binary in your `PATH`:
+
+```PowerShell
+Invoke-WebRequest https://clever-tools.clever-cloud.com/releases/latest/clever-tools-latest_win.zip -OutFile clever-tools-latest_win.zip
+Expand-Archive .\clever-tools-latest_win.zip -DestinationPath .
+$env:PATH += ";$(Resolve-Path .\clever-tools-latest_win\)"
+```
+
+> [!TIP]
+> The packages are available on Clever Cloud's Cellar bucket: [clever-tools-latest_win.zip](https://clever-tools.clever-cloud.com/releases/latest/clever-tools-latest_win.zip). \
+> Retrieve any release by replacing `latest` (path and filename) with the version number you need.
+
+## Docker
+
+If you are using docker, use the image provided [here](https://hub.docker.com/r/clevercloud/clever-tools/).
+
+```
+docker pull clevercloud/clever-tools
+docker run --rm clever-tools
+```
+
+### Dockerfile
+
+In your `Dockerfile` copy `clever-tools` from the image itself with a simple one liner:
+
+```Dockerfile
+COPY --from=clevercloud/clever-tools /bin/clever /usr/local/bin/clever
+```
+
+## Nix package manager
+
+If you are using Nix on NixOS or any other compatible system, the package is available in both `stable` and `unstable` channels. Follow [these instructions](https://search.nixos.org/packages?channel=unstable&show=clever-tools&from=0&size=50&sort=relevance&type=packages&query=clever-tools).
+
+## Enabling autocompletion
+
+The clever-tools CLI comes with a comprehensive auto-completion system. Some installation methods through package managers will try to enable it automatically. If not, use this for bash:
+
+```bash
+clever --bash-autocomplete-script $(which clever) | sudo tee /usr/share/bash-completion/completions/clever
+```
+
+or that for zsh:
+
+```bash
+clever --zsh-autocomplete-script $(which clever) | sudo tee /usr/share/zsh/site-functions
+```
diff --git a/content/doc/cli/install/nexus-config.md b/content/doc/cli/install/nexus-config.md
new file mode 100644
index 000000000..6a2a480cc
--- /dev/null
+++ b/content/doc/cli/install/nexus-config.md
@@ -0,0 +1,57 @@
+---
+type: docs
+title: Nexus repository
+description: Configure Clever Cloud Nexus repository for you distribution
+---
+
+We use a self hosted Nexus repository to distribute `.deb`, `.nupkg` and `.rpm`. It's available at [https://nexus.clever-cloud.com/](https://nexus.clever-cloud.com/).
+
+## Repositories
+
+### `.deb` repository
+
+We have a repository for `.deb` packages, available [here](https://nexus.clever-cloud.com/#browse/browse:deb).
+
+* stable: [deb](https://nexus.clever-cloud.com/#browse/browse:deb)
+
+The repository is signed with the PGP key `Clever Cloud Nexus (deb)`. The public key is published on the Cellar at [https://clever-tools.clever-cloud.com/gpg/cc-nexus-deb.public.gpg.key](https://clever-tools.clever-cloud.com/gpg/cc-nexus-deb.public.gpg.key). The private key, public key and passphrase are stored in our vault.
+
+### `.nupkg` repository
+
+We have a repository for `.nupkg` packages, available [here](https://nexus.clever-cloud.com/#browse/browse:nupkg)
+
+* Link to Nexus [nuget-repositories docs](https://help.sonatype.com/repomanager3/formats/nuget-repositories)
+
+### `.rpm` repository
+
+We have a repository for `.rpm` packages, available [here](https://nexus.clever-cloud.com/#browse/browse:rpm).
+
+* Link to Nexus [yum-repositories docs](https://help.sonatype.com/repomanager3/formats/yum-repositories)
+
+The repository is not signed, but the `.rpm` packages are.
+
+The repo description is maintained in this git repo at `templates/rpm/cc-nexus-rpm.repo`. It's published on the Cellar at [https://clever-tools.clever-cloud.com/repos/cc-nexus-rpm.repo](https://clever-tools.clever-cloud.com/repos/cc-nexus-rpm.repo). The public key is published on the Cellar at [https://clever-tools.clever-cloud.com/gpg/cc-nexus-rpm.public.gpg.key](https://clever-tools.clever-cloud.com/gpg/cc-nexus-rpm.public.gpg.key). The private key, public key and passphrase are stored in our vault.
+
+### GnuPG Keys
+
+Steps to follow to generate a new pair of GnuPG keys:
+
+* Prepare a random string for the passphrase (30+ chars is good)
+* Run `gpg --gen-key`
+* Name: `Clever Cloud Nexus (deb)`
+* Email: ci@clever-cloud.com
+* Get the ID of the new generated key with `gpg --list-keys`
+* Export the public key in a file
+ * `gpg --armor --output cc-nexus-deb.public.gpg.key --export `
+* Publish the public key on the Cellar
+ * `s3cmd -c .s3cfg put --acl-public cc-nexus-deb.public.gpg.key s3://clever-tools.clever-cloud.com/gpg/`
+* Export the private key in a file
+ * `gpg --armor --output cc-nexus-deb.private.gpg.key --export-secret-key `
+* Update the private key where it's needed
+ * The `deb` private key and passphrase need to be set in both `deb` and `deb-stable` repo in Nexus.
+ * The `rpm` private key and passphrase need to be set in Jenkins.
+* Combine both keys into one file
+ * `cat cc-nexus-deb.*.gpg.key cc-nexus-deb.combined.gpg.key`
+* Add the combined key to the vault along with the random passphrase.
+
+This is an example for `deb` but the same goes for `rpm`.
diff --git a/content/doc/cli/kv-stores.md b/content/doc/cli/kv-stores.md
new file mode 100644
index 000000000..a122f90f6
--- /dev/null
+++ b/content/doc/cli/kv-stores.md
@@ -0,0 +1,52 @@
+---
+type: docs
+title: KV stores
+description: Use Materia KV and Redis directly from Clever Tools
+---
+
+If you're using [Materia KV](/developers/doc/addons/materia-kv/), our next generation of key-value databases, serverless, distributed, synchronously-replicated, compatible with the Redis® protocol (and later DynamoDB, GraphQL), you can easily create an add-on with Clever Tools:
+
+```
+clever addon create kv ADDON_NAME
+```
+
+And immediately use it with `clever kv` command:
+
+```bash
+clever features enable kv # KV command is in testing stage
+clever kv ADDON_NAME_OR_ID PING # It will answer PONG
+clever kv ADDON_NAME_OR_ID PING Hello # It will answer Hello
+```
+
+It helps you to inspect and interact with your Materia KV. Each is provided with environment variables about its host, port, and [Biscuit-based](https://biscuitsec.org) tokens, in multiple forms (to ensure compatibility with tools such those made for Redis®).
+
+> [!Tip]
+> Clever KV command is also compatible with Redis® on Clever Cloud add-ons.
+
+## Commands
+
+You can use `clever kv` to send any command supported by your add-on. Here are some examples:
+
+```bash
+clever kv ADDON_NAME_OR_ID INCR myCounter # It will respond (integer) the incremented value
+clever kv ADDON_NAME_OR_ID SET myKey myValue # It will respond OK
+clever kv ADDON_NAME_OR_ID GET myKey # It will respond myValue
+clever kv ADDON_NAME_OR_ID SET myKey myValue EX 120 # It will respond OK
+clever kv ADDON_NAME_OR_ID TTL myKey # It will respond (integer) the remaining time to live of the key in seconds
+```
+
+> [!Tip]
+> You can get a list of all supported commands with `clever kv ADDON_NAME_OR_ID COMMANDS`
+
+You can pass the result of JSON stringified values to tools like `jq` to query them, for example:
+
+```bash
+clever kv ADDON_NAME_OR_ID SET myJsonFormatedKey '{"key": "value"}'
+clever kv ADDON_NAME_OR_ID GET myJsonFormatedKey | jq .key
+```
+
+You can also use the `-F/--format` option to print a result in JSON format and query it with `jq`:
+
+```bash
+clever kv ADDON_NAME_OR_ID scan 0 -F json | jq '.[1][0]'
+```
diff --git a/content/doc/cli/logs-drains.md b/content/doc/cli/logs-drains.md
new file mode 100644
index 000000000..842b7a7c3
--- /dev/null
+++ b/content/doc/cli/logs-drains.md
@@ -0,0 +1,120 @@
+---
+type: docs
+title: Logs, Drains
+description: Use Clever Tools to get logs, access logs and manage logs drains
+---
+
+## logs
+
+When you deploy an application on Clever Cloud, we collect its logs, hosted in our internal Pulsar stack, all included.
+
+To listen the stream, use:
+
+```
+clever logs
+```
+
+You can also get logs from a specific timeline, deployment or add-on through options:
+
+```
+[--before, --until] BEFORE Fetch logs before this date/time (ISO8601 date, positive number in seconds or duration, e.g.: 1h)
+[--after, --since] AFTER Fetch logs after this date/time (ISO8601 date, positive number in seconds or duration, e.g.: 1h)
+[--search] SEARCH Fetch logs matching this pattern
+[--deployment-id] DEPLOYMENT_ID Fetch logs for a given deployment
+[--addon] ADDON_ID Add-on ID
+[--format, -F] FORMAT Output format (human, json, json-stream) (default: human)
+```
+
+## access logs
+
+When you deploy an application on Clever Cloud, we collect its access logs, hosted in our internal Pulsar stack, all included.
+
+To listen the stream, use:
+
+```
+clever accesslogs
+```
+
+> [!TIP]
+> This now uses our v4 API, it's available as Alpha feature for now.
+
+You can also get access logs from a specific timeline or add-on through options, in multiple formats:
+
+```
+[--before, --until] BEFORE Fetch logs before this date/time (ISO8601 date, positive number in seconds or duration, e.g.: 1h)
+[--after, --since] AFTER Fetch logs after this date/time (ISO8601 date, positive number in seconds or duration, e.g.: 1h)
+[--format, -F] FORMAT Output format (human, json, json-stream) (default: human)
+```
+
+You can for example get access logs in JSON stream format for the last hour with:
+
+```
+clever accesslogs --format json-stream --since 1h
+```
+
+or JSON with `jq` to filter the output:
+
+```
+clever accesslogs --app APP_NAME --since 2024-06-21T13:37:42 --until 1d -F json | jq '[.[] | {date, countryCode: .source.countryCode, ip: .source.ip, port: .source.port}]'
+clever accesslogs --app APP_NAME --since 2024-06-21T13:37:42 --until 1d -F json | jq '.[] | [.date, .source.countryCode, .source.ip, .source.port] | @sh'
+```
+
+> [!TIP]
+> `jq` offers multiple table formatting options, like `@csv`, `@tsv`, `@json`, `@html`, `@uri`, `@base64`, etc.
+
+## drain
+
+You can use Clever Tools to control logs drains, through following commands. Each can target a specific add-on with `--addon ADDON_ID ` or application, adding `--app APP_ID_OR_NAME` or a local alias (`--alias`, `-a`):
+
+```
+clever drain
+clever drain --format json
+clever drain create
+clever drain remove
+clever drain enable
+clever drain disable
+```
+
+Where `DRAIN-TYPE` is one of:
+
+- `DatadogHTTP`: for Datadog endpoint (note that this endpoint needs your Datadog API Key)
+- `ElasticSearch`: for ElasticSearch endpoint (note that this endpoint requires username/password parameters as HTTP Basic Authentication)
+- `HTTP`: for TCP syslog endpoint (note that this endpoint has optional username/password parameters as HTTP Basic Authentication)
+- `NewRelicHTTP`: for NewRelic endpoint (note that this endpoint needs your NewRelic API Key)
+- `TCPSyslog`: for TCP syslog endpoint
+- `UDPSyslog`: for UDP syslog endpoint
+
+Drain creation supports the following options:
+
+```
+[--username, -u] USERNAME (HTTP drains) basic auth username
+[--password, -p] PASSWORD (HTTP drains) basic auth password
+[--api-key, -k] API_KEY (NewRelic drains) API key
+[--index-prefix, -i] INDEX_PREFIX (ElasticSearch drains) Index prefix (default: logstash-)
+[--sd-params, -s] SD_PARAMS (TCP and UDP drains) sd-params string (e.g.: `X-OVH-TOKEN=\"REDACTED\"`)
+```
+
+### ElasticSearch logs drains
+
+ElasticSearch drains use the Elastic bulk API. To match this endpoint, specify `/_bulk` at the end of your ElasticSearch endpoint.
+
+### Datadog logs drains
+
+Datadog has two zones, EU and COM. An account on one zone is not available on the other, make sure to target the good EU or COM intake endpoint. To create a [Datadog](https://docs.datadoghq.com/api/?lang=python#send-logs-over-http) drain, you just need to use one of the following command depending on your zone:
+
+```
+# EU
+clever drain create DatadogHTTP "https://http-intake.logs.datadoghq.eu/v1/input/?ddsource=clevercloud&service=&host="
+# US
+clever drain create DatadogHTTP "https://http-intake.logs.datadoghq.com/v1/input/?ddsource=clevercloud&service=&host="
+```
+
+The `host` query parameter is not mandatory: in the Datadog pipeline configuration, you can map `@source_host` which is the host provided by Clever Cloud in logs as `host` property.
+
+### NewRelic logs drains
+
+NewRelic has two zones, EU and US. An account on one zone is not available on the other, make sure to target the good EU or US intake endpoint. To create a [NewRelic](https://docs.newrelic.comlogs/log-api/introduction-log-api/) drain, you just need to use:
+
+```
+clever drain create NewRelicHTTP "https://log-api.eu.newrelic.com/log/v1" --api-key
+```
diff --git a/content/doc/cli/network-groups.md b/content/doc/cli/network-groups.md
new file mode 100644
index 000000000..ead2abd0e
--- /dev/null
+++ b/content/doc/cli/network-groups.md
@@ -0,0 +1,136 @@
+---
+type: docs
+title: Network Groups
+description: Use Network Groups directly from Clever Tools
+---
+
+[Network Groups](/developers/doc/develop/network-groups/) (NG) are a way to create a private secure network between resources inside Clever Cloud infrastructure, using [Wireguard](https://www.wireguard.com/). It's also possible to connect external resources to a Network Group. There are three components to this feature:
+
+* Network Group: a group of resources that can communicate with each through an encrypted tunnel
+* Member: a resource that can be part of a Network Group (`application`, `addon` or `external`)
+* Peer: Instance of a resource connected to a Network Group (can be `external`)
+
+A Network Group is defined by an ID (`ngId`) and a `label`. It can be completed by a `description` and `tags`.
+
+> [!NOTE]
+> During beta testing phase, you can add add-ons and external peers to a Network Group, but these features are not yet fully supported.
+
+Tell us what you think of Network Groups and what features you need from it in [the dedicated section of our GitHub Community](https://github.com/CleverCloud/Community/discussions/categories/network-groups).
+
+- [Learn more about Network Groups](/developers/doc/develop/network-groups/)
+
+## How it works
+
+When you create a Network Group, a Wireguard configuration is generated with a corresponding [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). Then, you can, for example, add a Clever Cloud application and an associated add-on to the same Network Group. These are members, defined by an `id`, a `label`, a `kind` and a `domain name`.
+
+When an application connects to a Network Group, you can reach it on any port inside a NG through its domain name. Any instance of this application is a peer, you can reach independently through an IP (from the attributed CIDR). It works the same way for add-ons and external resources. During alpha testing phase, only applications are supported.
+
+> [!TIP]
+> A Network Group member domain name is composed this way: `.m.cc-ng.cloud`
+
+## Prerequisites
+
+Activate `ng` feature flag to manage Network Groups:
+
+```
+clever features enable ng
+```
+
+Then, check it works with the following command:
+
+```
+clever ng
+```
+
+In all the following examples, you can target a specific organization with the `--org` or `-o` option.
+
+## Create a Network Group
+
+A Network Group is simple to create:
+
+```
+clever ng create myNG
+```
+
+You can create it declaring its members:
+
+```
+clever ng create myNG --link app_xxx,addon_xxx
+```
+
+You can add a description and tags:
+
+```
+clever ng create myNG --description "My first NG" --tags test,ng
+```
+
+## Delete Network Groups
+
+You can delete a Network Group through its ID or label:
+
+```
+clever ng delete ngId
+clever ng delete ngLabel
+```
+
+## List Network Groups
+
+Once created, you can list your Network Groups:
+
+```
+clever ng
+
+┌─────────┬───────-┬─────────-─┬───────────────┬─────────┬───────┐
+| (index) │ ID │ Label │ Network CIDR │ Members │ Peers │
+├─────────┼────────┼───────────┼───────────────┼─────────┼───────┤
+│ 0 │ 'ngId' │ 'ngLabel' │ '10.x.y.z/16' │ X │ Y │
+└─────────┴────────┴──────────-┴───────────────┴─────────┴───────┘
+```
+
+A `json` formatted output is available with the `--format/-F json` option.
+
+## (Un)Link a resource to a Network Group
+
+To (un)link an application, add-on or external peer to a Network Group:
+
+```
+clever ng link app_xxx ngIdOrLabel
+clever ng unlink addon_xxx ngIdorLabel
+```
+
+After an unlink, you may need to restart the application to apply the changes.
+
+## Get information of a Network Group, a member or a peer
+
+To get information about a network group or a resource (a `json` formatted output is available):
+
+```
+clever ng get ngIdOrLabel -F json
+clever ng get resourceIdOrName
+```
+
+You can also search for network groups, members or peers:
+
+```
+clever ng search text_to_search -F json
+```
+
+> [!NOTE]
+> The search command is case-insensitive and will return all resources containing the search string
+> The get command look for an exact match and will return an error if multiple resources are found
+
+## Get the Wireguard configuration of a Peer
+
+To get the Wireguard configuration of a peer (a `json` formatted output is available):
+
+```
+clever ng get-config peerIdOrLabel myNG
+```
+
+## Demos & examples
+
+You can find ready to deploy projects using Network Groups in the following repositories:
+
+- https://github.com/CleverCloud/network-groups-example
+
+Create your own and [let us know](https://github.com/CleverCloud/Community/discussions/categories/network-groups)!
diff --git a/content/doc/cli/notifications-webhooks.md b/content/doc/cli/notifications-webhooks.md
new file mode 100644
index 000000000..8eeeb28aa
--- /dev/null
+++ b/content/doc/cli/notifications-webhooks.md
@@ -0,0 +1,72 @@
+---
+type: docs
+title: Notifications, WebHooks
+description: Configure Clever Cloud Nexus repository for you distribution
+aliases:
+- /doc/administrate/clever-tools/notifications
+- /developers/doc/cli/notifications
+---
+
+When events happen on Clever Cloud, during add-ons or applications lifecycle for example, you can send email notifications or trigger webhooks. For each of the following command, you can list all items and/or target a specific user/organization through these parameters:
+
+```
+[--org, -o, --owner] Organisation ID (or name, if unambiguous)
+[--list-all] List all notifications for your user or for an organisation with the `--org` option (default: false)
+```
+
+## notify-email
+
+You can send email notifications when an event occurs. To list them, use:
+
+```
+clever notify-email
+clever notify-email --format json
+```
+
+To add a notification process to an application, use:
+
+```
+clever notify-email add --notify ||"ORGANISATION" NAME
+```
+
+Available options are:
+
+```
+[--event] TYPE Restrict notifications to specific event types
+[--service] SERVICE_ID Restrict notifications to specific applications and add-ons
+--notify ||"ORGANISATION" Notify a user, a specific email address or the whole organisation (multiple values allowed, comma separated)
+```
+
+To delete a notification process, use:
+
+```
+clever notify-email remove NOTIFICATION-ID
+```
+
+## webhooks
+
+You can trigger Webhooks when an event occurs. To list them, use:
+
+```
+clever webhooks -F json
+```
+
+To add a webhook to an application, use:
+
+```
+clever webhooks add NAME URL
+```
+
+You can set the format, restrict to a service or event types through these parameters:
+
+```
+[--format] FORMAT Format of the body sent to the webhook ('raw', 'slack', 'gitter', or 'flowdock') (default: raw)
+[--event] TYPE Restrict notifications to specific event types
+[--service] SERVICE_ID Restrict notifications to specific applications and add-ons
+```
+
+To delete a webhook, use:
+
+```
+clever webhooks remove NOTIFICATION-ID
+```
diff --git a/content/doc/cli/services-depedencies.md b/content/doc/cli/services-depedencies.md
new file mode 100644
index 000000000..2b5719710
--- /dev/null
+++ b/content/doc/cli/services-depedencies.md
@@ -0,0 +1,64 @@
+---
+type: docs
+title: Services Dependencies
+description: Use Clever Tools to manage services dependencies
+---
+
+On Clever Cloud, applications can expose configuration to share environment variables with other services within the same account/organization. Add-ons are preconfigured with an exposed configuration. Thus, when they're linked to an application, they automatically share credentials or important variables needed to configure and use them. Following commands help you with that.
+
+Each can target a specific application, adding `--app APP_ID_OR_NAME` or a local alias (`--alias`, `-a`).
+
+## published-config
+
+To list exposed configuration, use:
+
+```
+clever published-config
+clever published-config --F json
+clever published-config --format shell
+```
+
+To configure exposed configuration, use:
+
+```
+clever published-config COMMAND
+```
+
+Available commands are `set`, `rm` (remove) or `import`. The latter reads data from `stdin` so use it as is:
+
+```
+clever published-config import < file.config
+```
+
+## service
+
+To list services dependencies, use:
+
+```
+clever service
+clever service --format json
+```
+
+You can filter results through these options.
+
+```
+[--only-apps] Only show app dependencies (default: false)
+[--only-addons] Only show add-on dependencies (default: false)
+[--show-all] Show all available add-ons and applications (default: false)
+```
+
+To create or delete services dependencies, use:
+
+```
+clever service COMMAND ADDON_OR_APP_ID
+clever service COMMAND ADDON_OR_APP_NAME
+```
+
+Available commands are:
+
+```
+link-app Add an existing app as a dependency
+unlink-app Remove an app from the dependencies
+link-addon Link an existing add-on to this application
+unlink-addon Unlink an add-on from this application
+```
diff --git a/content/doc/develop/network-groups.md b/content/doc/develop/network-groups.md
index 370b91550..bc84eff71 100644
--- a/content/doc/develop/network-groups.md
+++ b/content/doc/develop/network-groups.md
@@ -1,7 +1,7 @@
---
type: docs
title: Network Groups
-Description: Link resources over a private secure network based on WireGuard
+description: Link resources over a private secure network based on WireGuard
tags:
- network
- groups
@@ -14,7 +14,6 @@ keywords:
- wireguard
- members
- peers
--
---
Network Groups (NG) are a way to create a private secure network between resources inside Clever Cloud infrastructure, using [WireGuard](https://www.wireguard.com/). It's also possible to connect external resources to a Network Group. There are three components to this feature:
@@ -34,9 +33,8 @@ A Network Group member domain name is composed this way: `.m.cc-
When a resource is linked to a Network Group, you can reach it on any port inside this private network with its domain name. An application instance is a peer, you can reach through an IP (from the attributed CIDR). It works the same way for add-ons and external resources.
-
- [Network Groups demo application](https://github.com/CleverCloud/network-groups-example)
-- [How to use Network Groups from Clever Tools](https://github.com/CleverCloud/clever-tools/blob/master/docs/ng.md#clever-cloud-network-groups)
+- [How to use Network Groups from Clever Tools](/developers/doc/cli/network-groups/)
- [Keycloak and Otoroshi native support for Network Groups](/developers/api/v4/#network-groups)
- [Tell us what you think of Network Groups and what features you need from it in](https://github.com/CleverCloud/Community/discussions/categories/network-groups).
diff --git a/content/doc/develop/tasks.md b/content/doc/develop/tasks.md
index 7328a8435..2bffe18b2 100644
--- a/content/doc/develop/tasks.md
+++ b/content/doc/develop/tasks.md
@@ -23,7 +23,7 @@ This will guide you in the process of creating a Clever Task: an application tha
### With the Clever Tools CLI
-Make sure you have [Clever Tools installed](https://github.com/CleverCloud/clever-tools/blob/master/docs/setup-systems.md#how-to-install-clever-tools) and in your project folder, run `clever create --type --task `. You can also add options such as ` --region --org ` where:
+Make sure you have [Clever Tools installed](/developers/doc/cli/) and in your project folder, run `clever create --type --task `. You can also add options such as ` --region --org ` where:
1. `app-name` the name you want for your application,
2. `zone` deployment zone (`par` for Paris or `mtl` for Montreal for example)
3. `org` the organization ID the application will be created under
diff --git a/content/doc/find-help/faq.md b/content/doc/find-help/faq.md
index c402d42a0..bb5b620a7 100644
--- a/content/doc/find-help/faq.md
+++ b/content/doc/find-help/faq.md
@@ -78,7 +78,7 @@ Have a look at [installing TLS certificates](/doc/administrate/ssl), and feel fr
As this information can change over time with security updates, here's the nmap command to look up SSL/TLS ciphers on a Clever Cloud configured domain:
-```shell
+```shell
nmap --script ssl-enum-ciphers -p 443 example.com
```
@@ -214,23 +214,23 @@ If a VACUUM operation needs more disk that there is remaining, migrating to the
Clever Cloud stores all backups on [Cellar](https://www.clever-cloud.com/product/cellar-object-storage/), a replicated object storage service with three copies distributed across datacenters in the PAR region to ensure durability. Even if one datacenter fails, your backups remain safe.
-For custom configurations (for example, multiple retention policies), contact Support. To locate backups not visible in the Console, use [Clever Tools](https://github.com/CleverCloud/clever-tools) with: `clever database backups DATABASE-ID [--format, -F] FORMAT`. Find more documentation on restoring backups with the CLI [here](https://github.com/CleverCloud/clever-tools/blob/master/docs/addons-backups.md#database-backups).
+For custom configurations (for example, multiple retention policies), contact Support. To locate backups not visible in the Console, use [Clever Tools](https://github.com/CleverCloud/clever-tools) with: `clever database backups DATABASE-ID [--format, -F] FORMAT`. Find more documentation on restoring backups with the CLI [here](/developers/doc/cli/addons/#database-backups).
## I can't create my add-on
-To create add-ons, you need to complete your account information, including your city and ZIP code.
+To create add-ons, you need to complete your account information, including your city and ZIP code.
For instance, you cannot create a Matomo add-on until you provide these details.
-## I get unknown regular requests, is there a problem ?
+## I get unknown regular requests, is there a problem ?
The platform performs routine health checks to applications every 2 minutes. You may notice these periodic HTTP requests in your logs, with `X-Clevercloud-Monitoring` header. They're part of Clever Cloud's standard monitoring process.
-## What is a DEV plan ?
+## What is a DEV plan ?
DEV plan is a free-tier plan available for some databases, designed to let customers explore and test these products. They operate on shared clusters, which may result in variable performance; they also have no SLA guarantees.
-Some features such as simultaneous connections numbers, functions… might be reduced or unavailable.
+Some features such as simultaneous connections numbers, functions… might be reduced or unavailable.
Support is not able to provide help in case of DEV plan.
diff --git a/content/doc/CLI/notifications.md b/content/doc/zz_old_cli/notifications.md
similarity index 98%
rename from content/doc/CLI/notifications.md
rename to content/doc/zz_old_cli/notifications.md
index cbb9a7141..c91ec4bd3 100644
--- a/content/doc/CLI/notifications.md
+++ b/content/doc/zz_old_cli/notifications.md
@@ -15,7 +15,8 @@ keywords:
- flowdock
aliases:
- /doc/administrate/clever-tools/notifications
-
+- /developers/doc/cli/notifications/
+draft: true
---
The *Notifications* service allows you to choose the events of interest to you
diff --git a/content/doc/CLI/ssh-access.md b/content/doc/zz_old_cli/ssh-access.md
similarity index 99%
rename from content/doc/CLI/ssh-access.md
rename to content/doc/zz_old_cli/ssh-access.md
index fa7075e61..8e28c30dc 100644
--- a/content/doc/CLI/ssh-access.md
+++ b/content/doc/zz_old_cli/ssh-access.md
@@ -12,7 +12,7 @@ keywords:
- console
aliases:
- /doc/administrate/clever-tools/ssh-access
-
+draft: true
---
While direct SSH access to instances is not recommended in an [immutable infrastructure](https://boxfuse.com/blog/no-ssh.html) setup, it can be useful for debugging purposes. Clever Cloud allows you to connect to running instances via SSH.
diff --git a/layouts/shortcodes/card.html b/layouts/shortcodes/card.html
deleted file mode 100644
index c5f026b67..000000000
--- a/layouts/shortcodes/card.html
+++ /dev/null
@@ -1,56 +0,0 @@
-{{- $context := . -}}
-{{- $link := .Get "link" -}}
-{{- $title := .Get "title" -}}
-{{- $icon := .Get "icon" -}}
-{{- $subtitle := .Get "subtitle" -}}
-{{- $image := .Get "image" -}}
-{{- $width := 0 -}}
-{{- $height := 0 -}}
-{{- $imageStyle := .Get "imageStyle" -}}
-{{- $tag := .Get "tag" -}}
-{{- $tagColor := .Get "tagColor" -}}
-
-{{/* Image processing options */}}
-{{- $method := .Get "method" | default "Resize" | humanize -}}
-{{- $options := .Get "options" | default "800x webp q80" -}}
-
-{{- if and $image (not (urls.Parse $image).Scheme) -}}
- {{/* Process images in assets */}}
- {{- with resources.Get $image -}}
- {{- $processed := "" -}}
- {{- if eq $method "Resize" -}}
- {{- $processed = (.Resize $options) -}}
- {{- else if eq $method "Fit" -}}
- {{- $processed = (.Fit $options) -}}
- {{- else if eq $method "Fill" -}}
- {{- $processed = (.Fill $options) -}}
- {{- else if eq $method "Crop" -}}
- {{- $processed = (.Crop $options) -}}
- {{- else -}}
- {{- errorf "Invalid image processing command: Must be one of Crop, Fit, Fill or Resize." -}}
- {{- end -}}
- {{- $width = $processed.Width -}}
- {{- $height = $processed.Height -}}
- {{- $image = $processed.RelPermalink -}}
- {{- else -}}
- {{/* Otherwise, use relative link of the image */}}
- {{- if hasPrefix $image "/" -}}
- {{- $image = relURL (strings.TrimPrefix "/" $image) -}}
- {{- end -}}
- {{- end -}}
-{{- end -}}
-
-{{- partial "shortcodes/card" (dict
- "page" .Page
- "link" $link
- "title" $title
- "icon" $icon
- "subtitle" $subtitle
- "image" $image
- "width" $width
- "height" $height
- "imageStyle" $imageStyle
- "tag" $tag
- "tagColor" $tagColor
- )
--}}
\ No newline at end of file