Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -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
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:
Expand All @@ -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
Expand Down
6 changes: 3 additions & 3 deletions src/geonode_project/br/backup.sh
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -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
Expand All @@ -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||')
Expand Down
30 changes: 24 additions & 6 deletions src/geonode_project/br/restore.sh
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -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
Expand Down Expand Up @@ -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|.*<id>\(.*\)</id>.*|\1|p' "$XML_FILE")
find /geoserver_data/data/workspaces/geonode/styles -type f -name "*.xml" -exec sed -i "s|<name>geonode</name>|<id>$ID_VALUE</id>|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 "-----------------------------------------------------"
Expand Down
4 changes: 2 additions & 2 deletions src/geonode_project/br/settings_docker.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion src/uwsgi.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
Loading