Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upgrade demo project #30

Merged
merged 1 commit into from
Oct 25, 2023
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
33 changes: 22 additions & 11 deletions .env.sample
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
COMPOSE_PROJECT_NAME=geonode_master
COMPOSE_PROJECT_NAME=geonode_demo
# See https://github.com/containers/podman/issues/13889
# DOCKER_BUILDKIT=0
DOCKER_ENV=production
Expand All @@ -7,33 +7,40 @@ DOCKER_ENV=production
DOCKER_API_VERSION="1.24"
BACKUPS_VOLUME_DRIVER=local

GEONODE_BASE_IMAGE_VERSION=latest
NGINX_BASE_IMAGE_VERSION=latest
LETSENCRYPT_BASE_IMAGE_VERSION=latest
GEOSERVER_BASE_IMAGE_VERSION=latest
GEOSERVER_DATA_BASE_IMAGE_VERSION=latest
POSTGRES_BASE_IMAGE_VERSION=latest

C_FORCE_ROOT=1
FORCE_REINIT=false
INVOKE_LOG_STDOUT=true

# LANGUAGE_CODE=it-it
# LANGUAGES=(('en-us','English'),('it-it','Italiano'))

DJANGO_SETTINGS_MODULE=geonode_master.settings
DJANGO_SETTINGS_MODULE=geonode_demo.settings
GEONODE_INSTANCE_NAME=geonode

# #################
# backend
# #################
POSTGRES_USER=postgres
POSTGRES_PASSWORD={pgpwd}
GEONODE_DATABASE=geonode_master
GEONODE_DATABASE_USER=geonode_master
GEONODE_DATABASE=geonode_demo
GEONODE_DATABASE_USER=geonode_demo
GEONODE_DATABASE_PASSWORD={dbpwd}
GEONODE_GEODATABASE=geonode_master_data
GEONODE_GEODATABASE_USER=geonode_master_data
GEONODE_GEODATABASE=geonode_demo_data
GEONODE_GEODATABASE_USER=geonode_demo_data
GEONODE_GEODATABASE_PASSWORD={geodbpwd}
GEONODE_DATABASE_SCHEMA=public
GEONODE_GEODATABASE_SCHEMA=public
DATABASE_HOST=db
DATABASE_PORT=5432
DATABASE_URL=postgis://geonode_master:{dbpwd}@db:5432/geonode_master
GEODATABASE_URL=postgis://geonode_master_data:{geodbpwd}@db:5432/geonode_master_data
DATABASE_URL=postgis://geonode_demo:{dbpwd}@db:5432/geonode_demo
GEODATABASE_URL=postgis://geonode_demo_data:{geodbpwd}@db:5432/geonode_demo_data
GEONODE_DB_CONN_MAX_AGE=0
GEONODE_DB_CONN_TOUT=5
DEFAULT_BACKEND_DATASTORE=datastore
Expand Down Expand Up @@ -177,9 +184,13 @@ CACHE_BUSTING_STATIC_ENABLED=False

MEMCACHED_ENABLED=False
MEMCACHED_BACKEND=django.core.cache.backends.memcached.MemcachedCache
MEMCACHED_LOCATION=127.0.0.1:11211
MEMCACHED_LOCATION=memcached:11211
MEMCACHED_LOCK_EXPIRE=3600
MEMCACHED_LOCK_TIMEOUT=10
#
# Options for memcached binary, e.g. -vvv to log all requests and cache hits
#
MEMCACHED_OPTIONS=

MAX_DOCUMENT_SIZE=200
CLIENT_RESULTS_LIMIT=5
Expand Down Expand Up @@ -226,9 +237,9 @@ LDAP_GROUP_PROFILE_MEMBER_ATTR=uniqueMember

# expressed in KB
# CELERY__MAX_MEMORY_PER_CHILD="200000"
# ##
# ##
# Note right autoscale value must coincide with worker concurrency value
# CELERY__AUTOSCALE_VALUES="15,10"
# CELERY__AUTOSCALE_VALUES="15,10"
# CELERY__WORKER_CONCURRENCY="10"
# ##
# CELERY__OPTS="--without-gossip --without-mingle -Ofair -B -E"
Expand Down
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,6 @@ local_settings.py

.idea/
.vscode/

.env
.vagrant/
Vagrantfile
/.env
23 changes: 15 additions & 8 deletions .override_dev_env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ export SITEURL=http://localhost:8000/
export ALLOWED_HOSTS="['localhost',]"

export GEONODE_INSTANCE_NAME=geonode
export DJANGO_SETTINGS_MODULE=geonode_master.settings
export GEONODE_DATABASE=geonode_master
export DJANGO_SETTINGS_MODULE=geonode_demo.settings
export GEONODE_DATABASE=geonode_demo
export GEONODE_DATABASE_PASSWORD=geonode
export GEONODE_GEODATABASE=geonode_master_data
export GEONODE_GEODATABASE=geonode_demo_data
export GEONODE_GEODATABASE_PASSWORD=geonode

export DATABASE_URL=postgis://geonode_master:geonode@localhost:5432/geonode_master
export GEODATABASE_URL=postgis://geonode_master_data:geonode@localhost:5432/geonode_master_data
export DATABASE_URL=postgis://geonode_demo:geonode@localhost:5432/geonode_demo
export GEODATABASE_URL=postgis://geonode_demo_data:geonode@localhost:5432/geonode_demo_data
export DEFAULT_BACKEND_DATASTORE=datastore

export GEOSERVER_WEB_UI_LOCATION=http://localhost:8080/geoserver/
Expand Down Expand Up @@ -46,12 +46,17 @@ export DJANGO_EMAIL_USE_SSL=False
export DEFAULT_FROM_EMAIL="GeoNode <[email protected]>"

export LOCKDOWN_GEONODE=False
export CORS_ORIGIN_ALLOW_ALL=True
export X_FRAME_OPTIONS=SAMEORIGIN
export SESSION_EXPIRED_CONTROL_ENABLED=True
export DEFAULT_ANONYMOUS_VIEW_PERMISSION=True
export DEFAULT_ANONYMOUS_DOWNLOAD_PERMISSION=True

export CORS_ALLOW_ALL_ORIGINS=True
export GEOSERVER_CORS_ENABLED=True
export GEOSERVER_CORS_ALLOWED_ORIGINS=*
export GEOSERVER_CORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,HEAD,OPTIONS
export GEOSERVER_CORS_ALLOWED_HEADERS=*

export ACCOUNT_OPEN_SIGNUP=True
export ACCOUNT_EMAIL_REQUIRED=True
export ACCOUNT_APPROVAL_REQUIRED=False
Expand All @@ -69,7 +74,6 @@ export API_LOCKDOWN=False
export TASTYPIE_APIKEY=

export CACHE_BUSTING_STATIC_ENABLED=False
export CACHE_BUSTING_MEDIA_ENABLED=False

export MAX_DOCUMENT_SIZE=2
export CLIENT_RESULTS_LIMIT=5
Expand All @@ -80,7 +84,7 @@ export MAPBOX_ACCESS_TOKEN=
export BING_API_KEY=
export GOOGLE_API_KEY=

export MONITORING_ENABLED=True
export MONITORING_ENABLED=False
export MONITORING_DATA_TTL=365
export USER_ANALYTICS_ENABLED=True
export USER_ANALYTICS_GZIP=True
Expand All @@ -94,3 +98,6 @@ export AVATAR_PROVIDERS='avatar.providers.PrimaryAvatarProvider','avatar.provide
export EXIF_ENABLED=True
export CREATE_LAYER=True
export FAVORITE_ENABLED=True

export DEFAULT_MAX_UPLOAD_SIZE=5368709120
export DEFAULT_MAX_PARALLEL_UPLOADS_PER_USER=5
23 changes: 15 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
FROM geonode/geonode-base:latest-ubuntu-22.04
LABEL GeoNode development team

RUN mkdir -p /usr/src/geonode_master
RUN mkdir -p /usr/src/geonode_demo

RUN apt-get update -y && apt-get install curl wget unzip gnupg2 locales -y

RUN sed -i -e 's/# C.UTF-8 UTF-8/C.UTF-8 UTF-8/' /etc/locale.gen && \
locale-gen
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8

# add bower and grunt command
COPY src /usr/src/geonode_master/
WORKDIR /usr/src/geonode_master
COPY src /usr/src/geonode_demo/
WORKDIR /usr/src/geonode_demo

#COPY src/monitoring-cron /etc/cron.d/monitoring-cron
#RUN chmod 0644 /etc/cron.d/monitoring-cron
Expand All @@ -15,18 +22,18 @@ WORKDIR /usr/src/geonode_master

COPY src/wait-for-databases.sh /usr/bin/wait-for-databases
RUN chmod +x /usr/bin/wait-for-databases
RUN chmod +x /usr/src/geonode_master/tasks.py \
&& chmod +x /usr/src/geonode_master/entrypoint.sh
RUN chmod +x /usr/src/geonode_demo/tasks.py \
&& chmod +x /usr/src/geonode_demo/entrypoint.sh

COPY src/celery.sh /usr/bin/celery-commands
RUN chmod +x /usr/bin/celery-commands

COPY src/celery-cmd /usr/bin/celery-cmd
RUN chmod +x /usr/bin/celery-cmd

# # Install "geonode-contribs" apps
# Install "geonode-contribs" apps
# RUN cd /usr/src; git clone https://github.com/GeoNode/geonode-contribs.git -b master
# # Install logstash and centralized dashboard dependencies
# Install logstash and centralized dashboard dependencies
# RUN cd /usr/src/geonode-contribs/geonode-logstash; pip install --upgrade -e . \
# cd /usr/src/geonode-contribs/ldap; pip install --upgrade -e .

Expand All @@ -42,4 +49,4 @@ RUN apt-get autoremove --purge &&\
EXPOSE 8000

# We provide no command or entrypoint as this image can be used to serve the django project or run celery tasks
# ENTRYPOINT /usr/src/geonode_master/entrypoint.sh
# ENTRYPOINT /usr/src/geonode_demo/entrypoint.sh
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Geonode_Master
# Geonode_Demo

GeoNode template project. Generates a django project with GeoNode support.

Expand All @@ -19,7 +19,7 @@ GeoNode template project. Generates a django project with GeoNode support.

```bash
python3.10 -m venv ~/.venvs/project_name
source ~/.venvs/geonode_master/bin/activate
source ~/.venvs/geonode_demo/bin/activate

pip install Django==3.2.*

Expand Down Expand Up @@ -67,7 +67,7 @@ Available at

## Create a custom project

**NOTE**: *You can call your geonode project whatever you like **except 'geonode'**. Follow the naming conventions for python packages (generally lower case with underscores (``_``). In the examples below, replace ``geonode_master`` with whatever you would like to name your project.*
**NOTE**: *You can call your geonode project whatever you like **except 'geonode'**. Follow the naming conventions for python packages (generally lower case with underscores (``_``). In the examples below, replace ``geonode_demo`` with whatever you would like to name your project.*

To setup your project follow these instructions:

Expand All @@ -76,12 +76,12 @@ To setup your project follow these instructions:
```bash
git clone https://github.com/GeoNode/geonode-project.git -b <your_branch>
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
mkvirtualenv --python=/usr/bin/python3 geonode_master
mkvirtualenv --python=/usr/bin/python3 geonode_demo
pip install Django==3.2.16

django-admin startproject --template=./geonode-project -e py,sh,md,rst,json,yml,ini,env,sample,properties -n monitoring-cron -n Dockerfile geonode_master
django-admin startproject --template=./geonode-project -e py,sh,md,rst,json,yml,ini,env,sample,properties -n monitoring-cron -n Dockerfile geonode_demo

cd geonode_master
cd geonode_demo
```

2. Create the .env file
Expand Down Expand Up @@ -249,7 +249,7 @@ docker system prune -a
### Run a Backup

```bash
SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_master/br/backup.sh $BKP_FOLDER_NAME
SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_demo/br/backup.sh $BKP_FOLDER_NAME
```

- BKP_FOLDER_NAME:
Expand All @@ -266,13 +266,13 @@ SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_master/br/backup.sh $BKP
e.g.:

```bash
docker exec -it django4geonode_master sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_master/br/backup.sh $BKP_FOLDER_NAME'
docker exec -it django4geonode_demo sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_demo/br/backup.sh $BKP_FOLDER_NAME'
```

### Run a Restore

```bash
SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_master/br/restore.sh $BKP_FOLDER_NAME
SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_demo/br/restore.sh $BKP_FOLDER_NAME
```

- BKP_FOLDER_NAME:
Expand All @@ -289,7 +289,7 @@ SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_master/br/restore.sh $BK
e.g.:

```bash
docker exec -it django4geonode_master sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_master/br/restore.sh $BKP_FOLDER_NAME'
docker exec -it django4geonode_demo sh -c 'SOURCE_URL=$SOURCE_URL TARGET_URL=$TARGET_URL ./geonode_demo/br/restore.sh $BKP_FOLDER_NAME'
```

## Recommended: Track your changes
Expand Down
2 changes: 1 addition & 1 deletion create-envfile.py
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ def _get_vals_to_replace(args):
prog="ENV file builder",
description="Tool for generate environment file automatically. The information can be passed or via CLI or via JSON file ( --file /path/env.json)",
usage="python create-envfile.py localhost -f /path/to/json/file.json",
allow_abbrev=False
allow_abbrev=False,
)
parser.add_argument(
"--noinput",
Expand Down
Empty file modified docker-build.sh
100755 → 100644
Empty file.
44 changes: 31 additions & 13 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ x-common-django:
env_file:
- .env
volumes:
# - './src:/usr/src/geonode_master'
# - './src:/usr/src/geonode_demo'
- statics:/mnt/volumes/statics
- geoserver-data-dir:/geoserver_data/data
- backup-restore:/backup_restore
Expand All @@ -35,8 +35,8 @@ services:
retries: 2
environment:
- IS_CELERY=False
entrypoint: ["/usr/src/geonode_master/entrypoint.sh"]
command: "uwsgi --ini /usr/src/geonode_master/uwsgi.ini"
entrypoint: ["/usr/src/geonode_demo/entrypoint.sh"]
command: "uwsgi --ini /usr/src/geonode_demo/uwsgi.ini"

# Celery worker that executes celery tasks created by Django.
celery:
Expand All @@ -48,13 +48,16 @@ services:
condition: service_healthy
environment:
- IS_CELERY=True
entrypoint: ["/usr/src/geonode_master/entrypoint.sh"]
entrypoint: ["/usr/src/geonode_demo/entrypoint.sh"]
command: "celery-cmd"

# Nginx is serving django static and media files and proxies to django and geonode
geonode:
image: geonode/nginx:1.25.2
build: ./docker/nginx/
build:
context: ./docker/nginx
dockerfile: Dockerfile
args:
- BASE_IMAGE_VERSION=${NGINX_BASE_IMAGE_VERSION}
container_name: nginx4${COMPOSE_PROJECT_NAME}
env_file:
- .env
Expand All @@ -69,6 +72,7 @@ services:
- statics:/mnt/volumes/statics
restart: unless-stopped

# memcached service
memcached:
image: memcached:alpine
container_name: memcached4${COMPOSE_PROJECT_NAME}
Expand All @@ -83,8 +87,11 @@ services:

# Gets and installs letsencrypt certificates
letsencrypt:
image: geonode/letsencrypt:latest
build: ./docker/letsencrypt/
build:
context: ./docker/letsencrypt
dockerfile: Dockerfile
args:
- BASE_IMAGE_VERSION=${LETSENCRYPT_BASE_IMAGE_VERSION}
container_name: letsencrypt4${COMPOSE_PROJECT_NAME}
env_file:
- .env
Expand All @@ -94,8 +101,11 @@ services:

# Geoserver backend
geoserver:
image: geonode/geoserver:2.23.0
build: ./docker/geoserver/
build:
context: ./docker/geoserver
dockerfile: Dockerfile
args:
- BASE_IMAGE_VERSION=${GEOSERVER_BASE_IMAGE_VERSION}
container_name: geoserver4${COMPOSE_PROJECT_NAME}
healthcheck:
test: "curl -m 10 --fail --silent --write-out 'HTTP CODE : %{http_code}\n' --output /dev/null http://geoserver:8080/geoserver/ows"
Expand All @@ -121,7 +131,11 @@ services:
condition: service_healthy

data-dir-conf:
image: geonode/geoserver_data:2.23.0
build:
context: ./docker/geoserver_data
dockerfile: Dockerfile
args:
- BASE_IMAGE_VERSION=${GEOSERVER_DATA_BASE_IMAGE_VERSION}
container_name: gsconf4${COMPOSE_PROJECT_NAME}
entrypoint: sleep infinity
volumes:
Expand All @@ -132,8 +146,12 @@ services:

# PostGIS database.
db:
# use geonode official postgis 13 image
image: geonode/postgis:15
# use geonode official postgis 15 image
build:
context: ./docker/postgresql
dockerfile: Dockerfile
args:
- BASE_IMAGE_VERSION=${POSTGRES_BASE_IMAGE_VERSION}
command: postgres -c "max_connections=${POSTGRESQL_MAX_CONNECTIONS}"
container_name: db4${COMPOSE_PROJECT_NAME}
env_file:
Expand Down
Empty file modified docker-purge.sh
100755 → 100644
Empty file.
Loading
Loading