Skip to content

Transfering the config to/from the database

Every command should be ran as the akkoma user from it's home directory. For example if you are superuser, you would have to wrap the command in su akkoma -s $SHELL -lc "$COMMAND".

From source note about MIX_ENV

The mix command should be prefixed with the name of environment your Akkoma server is running in, usually it's MIX_ENV=prod

Transfer config from file to DB.

Note

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

config :pleroma, configurable_from_database: true
./bin/pleroma_ctl config migrate_to_db
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:

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/akkoma. For installation from source - config directory in the akkoma folder.
  • <env> - environment, for which is migrated config. By default is prod.
  • To delete transferred settings from database optional flag -d can be used
 ./bin/pleroma_ctl config migrate_from_db [--env=<env>] [-d] [--path=<path>]
mix pleroma.config migrate_from_db [--env=<env>] [-d] [--path=<path>]

Dump all of the config settings defined in the database

 ./bin/pleroma_ctl config dump
mix pleroma.config dump

List individual configuration groups in the database

 ./bin/pleroma_ctl config groups
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

./bin/pleroma_ctl config dump pleroma
mix pleroma.config dump pleroma

To get values under a specific key:

e.g., this shows all the settings under config :pleroma, :instance

./bin/pleroma_ctl config dump pleroma instance
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

./bin/pleroma_ctl config delete [--force] tesla
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

./bin/pleroma_ctl config delete [--force] phoenix stacktrace_depth
mix pleroma.config delete [--force] phoenix stacktrace_depth

Remove all settings from the database

This forcibly removes all saved values in the database.

./bin/pleroma_ctl config [--force] reset
mix pleroma.config [--force] reset

Dumping specific configuration values to JSON

If you want to bulk-modify configuration values (for example, for MRF modifications), it may be easier to dump the values to JSON and then modify them in a text editor.

./bin/pleroma_ctl config dump_to_file group key path
# For example, to dump the MRF simple configuration:
./bin/pleroma_ctl config dump_to_file pleroma mrf_simple /tmp/mrf_simple.json
mix pleroma.config dump_to_file group key path 
# For example, to dump the MRF simple configuration:
mix pleroma.config dump_to_file pleroma mrf_simple /tmp/mrf_simple.json

Loading specific configuration values from JSON

Note: This will overwrite any existing value in the database, and can cause crashes if you do not have exactly the correct formatting.

Once you have modified the JSON file, you can load it back into the database.

./bin/pleroma_ctl config load_from_file path
# For example, to load the MRF simple configuration:
./bin/pleroma_ctl config load_from_file /tmp/mrf_simple.json
mix pleroma.config load_from_file path
# For example, to load the MRF simple configuration:
mix pleroma.config load_from_file /tmp/mrf_simple.json

NOTE an instance reboot is needed for many changes to take effect, you may want to visit /api/v1/pleroma/admin/restart on your instance to soft-restart the instance.