Merge remote-tracking branch 'pleroma/develop' into cycles-streaming
[akkoma] / docs / administration / CLI_tasks / config.md
index e9d44b9a426f0d55e157a36f1ba48a8b70a7c5b6..fc9f3cbd5e1c1e9fd5f359605b9fc7c7c3f1d553 100644 (file)
 # Transfering the config to/from the database
 
-!!! danger
-    This is a Work In Progress, not usable just yet.
-
 {! backend/administration/CLI_tasks/general_cli_task_info.include !}
 
 ## Transfer config from file to DB.
 
-```sh tab="OTP"
- ./bin/pleroma_ctl config migrate_to_db
-```
+!!! note
+    You need to add the following to your config before executing this command:
+
+    ```elixir
+    config :pleroma, configurable_from_database: true
+    ```
+
+=== "OTP"
 
-```sh tab="From Source"
-mix pleroma.config migrate_to_db
-```
+    ```sh
+    ./bin/pleroma_ctl config migrate_to_db
+    ```
 
+=== "From Source"
+
+    ```sh
+    mix pleroma.config migrate_to_db
+    ```
 
 ## Transfer config from DB to `config/env.exported_from_db.secret.exs`
 
-```sh tab="OTP"
- ./bin/pleroma_ctl config migrate_from_db <env>
-```
+!!! note
+    In-Database configuration will still be applied after executing this command unless you set the following in your config:
+
+    ```elixir
+    config :pleroma, configurable_from_database: false
+    ```
+
+Options:
+
+- `<path>` - where to save migrated config. E.g. `--path=/tmp`. If file saved into non standart folder, you must manually copy file into directory where Pleroma can read it. For OTP install path will be `PLEROMA_CONFIG_PATH` or `/etc/pleroma`. For installation from source - `config` directory in the pleroma folder.
+- `<env>` - environment, for which is migrated config. By default is `prod`.
+- To delete transferred settings from database optional flag `-d` can be used
+
+=== "OTP"
+    ```sh
+     ./bin/pleroma_ctl config migrate_from_db [--env=<env>] [-d] [--path=<path>]
+    ```
+
+=== "From Source"
+    ```sh
+    mix pleroma.config migrate_from_db [--env=<env>] [-d] [--path=<path>]
+    ```
+
+## Dump all of the config settings defined in the database
+
+=== "OTP"
+
+    ```sh
+     ./bin/pleroma_ctl config dump
+    ```
+
+=== "From Source"
+
+    ```sh
+    mix pleroma.config dump
+    ```
+
+## List individual configuration groups in the database
+
+=== "OTP"
+
+    ```sh
+     ./bin/pleroma_ctl config groups
+    ```
+
+=== "From Source"
+
+    ```sh
+    mix pleroma.config groups
+    ```
+
+## Dump the saved configuration values for a specific group or key
+
+e.g., this shows all the settings under `config :pleroma`
+
+=== "OTP"
+
+    ```sh
+    ./bin/pleroma_ctl config dump pleroma
+    ```
+
+=== "From Source"
+
+    ```sh
+    mix pleroma.config dump pleroma
+    ```
+
+To get values under a specific key:
+
+e.g., this shows all the settings under `config :pleroma, :instance`
+
+=== "OTP"
+
+    ```sh
+    ./bin/pleroma_ctl config dump pleroma instance
+    ```
+
+=== "From Source"
+
+    ```sh
+    mix pleroma.config dump pleroma instance
+    ```
+
+## Delete the saved configuration values for a specific group or key
+
+e.g., this deletes all the settings under `config :tesla`
+
+=== "OTP"
+
+    ```sh
+    ./bin/pleroma_ctl config delete [--force] tesla
+    ```
+
+=== "From Source"
+
+    ```sh
+    mix pleroma.config delete [--force] tesla
+    ```
+
+To delete values under a specific key:
+
+e.g., this deletes all the settings under `config :phoenix, :stacktrace_depth`
+
+=== "OTP"
+
+    ```sh
+    ./bin/pleroma_ctl config delete [--force] phoenix stacktrace_depth
+    ```
+
+=== "From Source"
+
+    ```sh
+    mix pleroma.config delete [--force] phoenix stacktrace_depth
+    ```
+
+## Remove all settings from the database
+
+This forcibly removes all saved values in the database.
+
+=== "OTP"
+
+    ```sh
+    ./bin/pleroma_ctl config [--force] reset
+    ```
 
-```sh tab="From Source"
-mix pleroma.config migrate_from_db <env>
-```
+=== "From Source"
 
+    ```sh
+    mix pleroma.config [--force] reset
+    ```