diff --git a/Dockerfile b/Dockerfile index d68b6564..e1612013 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM geonode/geonode-base:latest-ubuntu-24.04 RUN mkdir -p /usr/src/project -RUN apt-get update -y && apt-get install curl wget unzip gnupg2 locales -y +RUN apt-get update -y && apt-get install curl wget unzip gnupg2 locales netcat-openbsd -y RUN sed -i -e 's/# C.UTF-8 UTF-8/C.UTF-8 UTF-8/' /etc/locale.gen && \ locale-gen diff --git a/README.md b/README.md index 04b4ace7..67c99f49 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ docker system prune -a ### Run a Backup ```bash -SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./project/br/backup.sh $BKP_FOLDER_NAME +SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_project/br/backup.sh $BKP_FOLDER_NAME ``` - BKP_FOLDER_NAME: @@ -159,13 +159,13 @@ SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./project/br/backup.sh $BKP_FOLDER e.g.: ```bash -docker exec -it django4project sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./project/br/backup.sh $BKP_FOLDER_NAME' +docker exec -it django4geonode_project sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_project/br/backup.sh $BKP_FOLDER_NAME' ``` ### Run a Restore ```bash -SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./project/br/restore.sh $BKP_FOLDER_NAME +SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_project/br/restore.sh $BKP_FOLDER_NAME ``` - BKP_FOLDER_NAME: @@ -182,7 +182,7 @@ SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./project/br/restore.sh $BKP_FOLDE e.g.: ```bash -docker exec -it django4project sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./project/br/restore.sh $BKP_FOLDER_NAME' +docker exec -it django4geonode_project sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_project/br/restore.sh $BKP_FOLDER_NAME' ``` ## Recommended: Track your changes diff --git a/src/geonode_project/br/backup.sh b/src/geonode_project/br/backup.sh index 9554bbf9..2552ce5b 100755 --- a/src/geonode_project/br/backup.sh +++ b/src/geonode_project/br/backup.sh @@ -1,7 +1,7 @@ #!/bin/sh # ########################################################## # Run a backup -# SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./project/br/backup.sh $BKP_FOLDER_NAME +# SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_project/br/backup.sh $BKP_FOLDER_NAME # - BKP_FOLDER_NAME: # Default value = backup_restore # Shared Backup Folder name. @@ -14,7 +14,7 @@ # Target Server URL, the one which must be synched. # # e.g.: -# docker exec -it django4project sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./project/br/backup.sh $BKP_FOLDER_NAME' +# docker exec -it django4geonode_project sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_project/br/backup.sh $BKP_FOLDER_NAME' # ########################################################## # Exit script in case of error @@ -32,7 +32,7 @@ fi cd /usr/src/project/ -./manage.sh backup -i -f -c $PWD/geonode_project/br/settings_docker.ini --backup-dir /$BKP_FOLDER_NAME/ +django-admin backup -i -f -c $PWD/geonode_project/br/settings_docker.ini --backup-dir /$BKP_FOLDER_NAME/ BKP_FILE_LATEST=$(find /$BKP_FOLDER_NAME/*.zip -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==1 {print $2}') BKP_FILE_NAME=$(echo $BKP_FILE_LATEST | tail -n 1 | grep -oP -m 1 "\/$BKP_FOLDER_NAME\/\K.*" | sed 's|.zip||') diff --git a/src/geonode_project/br/restore.sh b/src/geonode_project/br/restore.sh index c4d27bc7..0f8fccea 100755 --- a/src/geonode_project/br/restore.sh +++ b/src/geonode_project/br/restore.sh @@ -1,7 +1,7 @@ #!/bin/sh # ########################################################## # Run a restore -# SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./project/br/restore.sh $BKP_FOLDER_NAME +# SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_project/br/restore.sh $BKP_FOLDER_NAME # - BKP_FOLDER_NAME: # Default value = backup_restore # Shared Backup Folder name. @@ -14,7 +14,7 @@ # Target Server URL, the one which must be synched. # # e.g.: -# docker exec -it django4project sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./project/br/restore.sh $BKP_FOLDER_NAME' +# docker exec -it django4geonode_project sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_project/br/restore.sh $BKP_FOLDER_NAME' # ########################################################## # Exit script in case of error @@ -71,10 +71,28 @@ if md5sum -c /$BKP_FOLDER_NAME/$NEW_UUID/$BKP_FILE_NAME.md5; then if md5sum -c /$BKP_FOLDER_NAME/$BKP_FILE_NAME.md5; then # The MD5 sum matched - ./manage.sh restore -l -n -f --backup-file /$BKP_FOLDER_NAME/$BKP_FILE_NAME.zip --recovery-file /$BKP_FOLDER_NAME/$NEW_UUID/$RECOVERY_FILE_NAME.zip - ./manage.sh migrate_baseurl -f --source-address=$SOURCE_URL --target-address=$TARGET_URL - ./manage.sh create_tile_layers -f - ./manage.sh set_all_datasets_metadata -d -i + django-admin restore -l -n -f --backup-file /$BKP_FOLDER_NAME/$BKP_FILE_NAME.zip --recovery-file /$BKP_FOLDER_NAME/$NEW_UUID/$RECOVERY_FILE_NAME.zip + django-admin migrate_baseurl -f --source-address=$SOURCE_URL --target-address=$TARGET_URL + django-admin create_tile_layers -f + django-admin set_all_datasets_metadata -d -i + echo "-----------------------------------------------------" + echo " Fixup GeoServer styles" + echo "-----------------------------------------------------" + XML_FILE="/geoserver_data/data/workspaces/geonode/workspace.xml" + ID_VALUE=$(sed -n 's|.*\(.*\).*|\1|p' "$XML_FILE") + find /geoserver_data/data/workspaces/geonode/styles -type f -name "*.xml" -exec sed -i "s|geonode|$ID_VALUE|g" {} + + echo " GeoServer reloading catalog" + curl -w "%{http_code}\n" -u $GEOSERVER_ADMIN_USER:$GEOSERVER_ADMIN_PASSWORD -X POST "http://geoserver:8080/geoserver/rest/reload" + echo "-----------------------------------------------------" + echo " Geoserver Styles fixup completed" + echo "-----------------------------------------------------" + echo "-----------------------------------------------------" + echo " Cleanup memcached" + echo "-----------------------------------------------------" + echo "flush_all" | nc -q 1 memcached 11211 + echo "-----------------------------------------------------" + echo "Cache cleanup done" + echo "-----------------------------------------------------" else # The MD5 sum didn't match echo "-----------------------------------------------------" diff --git a/src/geonode_project/br/settings_docker.ini b/src/geonode_project/br/settings_docker.ini index ebceb298..7e0685de 100644 --- a/src/geonode_project/br/settings_docker.ini +++ b/src/geonode_project/br/settings_docker.ini @@ -13,5 +13,5 @@ dumprasterdata = yes # data_layername_exclude_filter = {comma separated list of layernames, optionally with glob syntax} e.g.: tuscany_*,italy [fixtures] -apps = contenttypes,auth,people,groups,account,guardian,admin,actstream,announcements,avatar,assets,base,documents,geoserver,invitations,pinax_notifications,harvesting,services,layers,maps,metadata,oauth2_provider,sites,socialaccount,taggit,tastypie,upload,geonode_themes,geoapps,favorite,geonode_client -dumps = contenttypes,auth,people,groups,account,guardian,admin,actstream,announcements,avatar,assets,base,documents,geoserver,invitations,pinax_notifications,harvesting,services,layers,maps,metadata,oauth2_provider,sites,socialaccount,taggit,tastypie,upload,geonode_themes,geoapps,favorite,geonode_client +apps = contenttypes,auth,people,groups,account,guardian,admin,actstream,announcements,avatar,assets,base,documents,geoserver,invitations,pinax_notifications,harvesting,services,layers,maps,metadata,oauth2_provider,sites,socialaccount,taggit,tastypie,resource,upload,geonode_themes,geoapps,favorite,geonode_client +dumps = contenttypes,auth,people,groups,account,guardian,admin,actstream,announcements,avatar,assets,base,documents,geoserver,invitations,pinax_notifications,harvesting,services,layers,maps,metadata,oauth2_provider,sites,socialaccount,taggit,tastypie,resource,upload,geonode_themes,geoapps,favorite,geonode_client diff --git a/src/uwsgi.ini b/src/uwsgi.ini index 9f59fd02..78d5c5da 100644 --- a/src/uwsgi.ini +++ b/src/uwsgi.ini @@ -40,7 +40,7 @@ cheaper-busyness-max = 70 ; Above this threshold, spawn new workers cheaper-busyness-backlog-alert = 16 ; Spawn emergency workers if more than this many requests are waiting in the queue cheaper-busyness-backlog-step = 2 ; How many emergency workers to create if there are too many requests in the queue -# cron = -1 -1 -1 -1 -1 sh -c '/usr/src/project/manage.sh collect_metrics -n -t xml'; +# cron = -1 -1 -1 -1 -1 sh -c 'django-admin collect_metrics -n -t xml'; # cron = 0 0 -1 -1 -1 sh -c 'find /backup_restore/ -type f -mtime +30 -exec rm -f {} \;' # Remove backup files older than 30 days except the most recent 3 files (a backup is composed by 3 files) cron = 0 0 -1 -1 -1 sh -c 'find /backup_restore/ -maxdepth 1 -type f -mtime +30 -printf "%T@ %p\n" | sort -n | head -n -3 | awk "{ print $2 }" | xargs -r rm'