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'