pleroma/docs/administration/CLI_tasks/config.md
Alexander Strizhakov 36bd97ba87
pleroma installer and config versioning
- added DynamicSupervisor, which starts Pleroma deps and restarts config dependent deps
- added pleroma installer, where user can configure database credentials
and pleroma config. Settings are saved into file and in database
- added versioning for in database config. New version is created from
changes which are passed to config update/delete endpoint. Every version
contains backup with all changes added through update. Versioning
supports rollbacks with N steps. With a rollback, all versions that
come after the version on which the rollback was made are deleted.
2021-03-17 08:40:42 +03:00

3.2 KiB

Transfering the config to/from the database

{! backend/administration/CLI_tasks/general_cli_task_info.include !}

Transfer config from file 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
./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

!!! 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
```

To delete transferred settings from database optional flag -d can be used. <env> is prod by default.

=== "OTP" sh ./bin/pleroma_ctl config migrate_from_db [--env=<env>] [-d]

=== "From Source" sh mix pleroma.config migrate_from_db [--env=<env>] [-d]

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
```

=== "From Source"

```sh
mix pleroma.config [--force] reset

Rollback config version

!!! note You need to add the following to your config before executing this command:

```elixir
config :pleroma, configurable_from_database: true
```

Rollback will restore last backup by default. If you want to restore older version use -s parameter.

=== "OTP" sh ./bin/pleroma_ctl config rollback [-s 2]

=== "From Source" sh mix pleroma.config rollback [-s 2]