From c79c23b4ab3dccc9048327102214146abd7f984d Mon Sep 17 00:00:00 2001 From: Alessio Caiazza Date: Wed, 16 Apr 2025 17:08:01 +0200 Subject: [PATCH] nixos/cloudlog: fix QSL image serving and assets management This change enables Cloudlog to properly manage additional media and asset files by making these directories writable, persistent, and available from the web server. --- nixos/modules/services/web-apps/cloudlog.nix | 38 ++++++++++++-------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/nixos/modules/services/web-apps/cloudlog.nix b/nixos/modules/services/web-apps/cloudlog.nix index bec59aa779e1..c4cc12dbc611 100644 --- a/nixos/modules/services/web-apps/cloudlog.nix +++ b/nixos/modules/services/web-apps/cloudlog.nix @@ -62,17 +62,14 @@ let ln -s ${configFile} $out/application/config/config.php ln -s ${dbFile} $out/application/config/database.php + # make a copy of the original assets/json to prime the datadir + cp -a "$out/assets/json/" "$out/assets/json.original/" + # link writable directories - for directory in updates uploads backup logbook; do + for directory in updates uploads backup logbook assets/qslcard images/eqsl_card_images assets/sstvimages assets/json; do rm -rf $out/$directory ln -s ${cfg.dataDir}/$directory $out/$directory done - - # link writable asset files - for asset in dok sota wwff; do - rm -rf $out/assets/json/$asset.txt - ln -s ${cfg.dataDir}/assets/json/$asset.txt $out/assets/json/$asset.txt - done ''; }; in @@ -503,13 +500,26 @@ in group = config.services.nginx.group; in [ - "d ${cfg.dataDir} 0750 ${cfg.user} ${group} - -" - "d ${cfg.dataDir}/updates 0750 ${cfg.user} ${group} - -" - "d ${cfg.dataDir}/uploads 0750 ${cfg.user} ${group} - -" - "d ${cfg.dataDir}/backup 0750 ${cfg.user} ${group} - -" - "d ${cfg.dataDir}/logbook 0750 ${cfg.user} ${group} - -" - "d ${cfg.dataDir}/assets/json 0750 ${cfg.user} ${group} - -" - "d ${cfg.dataDir}/assets/qslcard 0750 ${cfg.user} ${group} - -" + "d ${cfg.dataDir} 0750 ${cfg.user} ${group} - -" + "d ${cfg.dataDir}/updates 0750 ${cfg.user} ${group} - -" + "d ${cfg.dataDir}/uploads 0750 ${cfg.user} ${group} - -" + "d ${cfg.dataDir}/backup 0750 ${cfg.user} ${group} - -" + "d ${cfg.dataDir}/logbook 0750 ${cfg.user} ${group} - -" + "d ${cfg.dataDir}/assets 0750 ${cfg.user} ${group} - -" + "d ${cfg.dataDir}/assets/json 0750 ${cfg.user} ${group} - -" + "d ${cfg.dataDir}/assets/qslcard 0750 ${cfg.user} ${group} - -" + "d ${cfg.dataDir}/assets/sstvimages 0750 ${cfg.user} ${group} - -" + "d ${cfg.dataDir}/images 0750 ${cfg.user} ${group} - -" + "d ${cfg.dataDir}/images/eqsl_card_images 0750 ${cfg.user} ${group} - -" + "C ${cfg.dataDir}/assets/json/dok.txt 0640 ${cfg.user} ${group} - ${package}/assets/json.original/dok.txt" + "C ${cfg.dataDir}/assets/json/pota.txt 0640 ${cfg.user} ${group} - ${package}/assets/json.original/pota.txt" + "C ${cfg.dataDir}/assets/json/satellite_data.json 0640 ${cfg.user} ${group} - ${package}/assets/json.original/satellite_data.json" + "C ${cfg.dataDir}/assets/json/sota.txt 0640 ${cfg.user} ${group} - ${package}/assets/json.original/sota.txt" + "C ${cfg.dataDir}/assets/json/US_counties.csv 0640 ${cfg.user} ${group} - ${package}/assets/json.original/US_counties.csv" + "C ${cfg.dataDir}/assets/json/us_national_parksontheair.csv 0640 ${cfg.user} ${group} - ${package}/assets/json.original/us_national_parksontheair.csv" + "C ${cfg.dataDir}/assets/json/WABSquares.geojson 0640 ${cfg.user} ${group} - ${package}/assets/json.original/WABSquares.geojson" + "C ${cfg.dataDir}/assets/json/wwff.txt 0640 ${cfg.user} ${group} - ${package}/assets/json.original/wwff.txt" + "C+ ${cfg.dataDir}/assets/json/datatables_languages 0750 ${cfg.user} ${group} - ${package}/assets/json.original/datatables_languages" ]; };