From af6d1d9a4c61e7e74b506756fa1c66d69e343ecb Mon Sep 17 00:00:00 2001 From: Frederico Gomes Date: Thu, 26 Feb 2026 17:41:35 +0000 Subject: [PATCH] miniflux: Get credentials from dbconfig-common directly Fixes: #2562 Newer miniflux package does not create a separate file called /etc/miniflux/database. Instead it write the database URL directly into /etc/miniflux/miniflux.conf. It is easier to create the database settings from dbconfig-common that to read them from miniflux.conf. Signed-off-by: Frederico Gomes Reviewed-by: Sunil Mohan Adapa --- plinth/modules/miniflux/privileged.py | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/plinth/modules/miniflux/privileged.py b/plinth/modules/miniflux/privileged.py index 4490a5946..4a0b5f4c3 100644 --- a/plinth/modules/miniflux/privileged.py +++ b/plinth/modules/miniflux/privileged.py @@ -5,13 +5,12 @@ import json import os import pathlib from typing import Tuple -from urllib.parse import urlparse import pexpect from plinth import action_utils from plinth.actions import privileged, secret_str -from plinth.db import postgres +from plinth.db import postgres, dbconfig from plinth.utils import is_non_empty_file STATIC_SETTINGS = { @@ -21,7 +20,7 @@ STATIC_SETTINGS = { } ENV_VARS_FILE = '/etc/miniflux/freedombox.conf' -DATABASE_FILE = '/etc/miniflux/database' +DBCONFIG_PATH = '/etc/dbconfig-common/miniflux.conf' DB_BACKUP_FILE = '/var/lib/plinth/backups-data/miniflux-database.sql' @@ -117,28 +116,16 @@ def uninstall(): ]) -def _get_database_config(): - """Retrieve database credentials.""" - db_connection_string = pathlib.Path(DATABASE_FILE).read_text().strip() - parsed_url = urlparse(db_connection_string) - return { - 'user': parsed_url.username, - 'password': parsed_url.password, - 'database': parsed_url.path.lstrip('/'), - 'host': parsed_url.hostname, - } - - @privileged def dump_database(): """Dump database to file.""" - config = _get_database_config() + config = dbconfig.get_credentials(DBCONFIG_PATH) postgres.dump_database(DB_BACKUP_FILE, config['database']) @privileged def restore_database(): """Restore database from file.""" - config = _get_database_config() + config = dbconfig.get_credentials(DBCONFIG_PATH) postgres.restore_database(DB_BACKUP_FILE, config['database'], config['user'], config['password'])