diff --git a/.gitignore b/.gitignore index f208467a..f4867d4a 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,9 @@ dev_run_migration.sh development.json userimages* + +# exclude everything +dumps/* + +# exception to the rule +!dumps/.gitkeep diff --git a/images/mongodb/osem_admin.sh b/.scripts/mongodb/osem_admin.sh similarity index 100% rename from images/mongodb/osem_admin.sh rename to .scripts/mongodb/osem_admin.sh diff --git a/.scripts/mongodb/osem_seed_boxes.sh b/.scripts/mongodb/osem_seed_boxes.sh new file mode 100644 index 00000000..e29265f6 --- /dev/null +++ b/.scripts/mongodb/osem_seed_boxes.sh @@ -0,0 +1,10 @@ + +#!/bin/bash + +USER=${OSEM_dbuser:-"admin"} +DATABASE=OSeM-api +PASS=${OSEM_dbuserpass:-"admin"} + +echo "Going to restore openSenseMap boxes export" +mongorestore --db OSeM-api --username $USER --password $PASS --authenticationDatabase OSeM-api --gzip --archive=./exports/boxes +echo "Export was restored" \ No newline at end of file diff --git a/.scripts/mongodb/osem_seed_measurements.sh b/.scripts/mongodb/osem_seed_measurements.sh new file mode 100644 index 00000000..31c5d319 --- /dev/null +++ b/.scripts/mongodb/osem_seed_measurements.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +USER=${OSEM_dbuser:-"admin"} +DATABASE=OSeM-api +PASS=${OSEM_dbuserpass:-"admin"} + +echo "Going to restore openSenseMap measurements export" +mongorestore --db OSeM-api --username $USER --password $PASS --authenticationDatabase OSeM-api --gzip --archive=./exports/measurements +echo "Export was restored" \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e83988ff..19063e44 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,11 +27,10 @@ To install all dependencies, run ### Starting the project locally -Before starting the development database, create the following network +If you have some MongoDB dumps of `boxes` or `measurements` place them within the `dumps` folder and comment in the +volume mappings within the `docker-compose.yml`. The dumps will be seeded for you. - docker network create api-db-network - -Afterwards, start your development database +Start your development database docker-compose up -d diff --git a/docker-compose.yml b/docker-compose.yml index c0801065..fcba270a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,19 +1,18 @@ version: "3.9" +volumes: + mongo-data: + services: db: - build: - context: ./images/mongodb + image: mongo:5 container_name: osem-dev-mongo ports: - "27017:27017" volumes: - mongo-data:/data/db - networks: - - api-db-network - -volumes: - mongo-data: -networks: - api-db-network: - external: true + # - ./dumps/boxes:/exports/boxes + # - ./dumps/measurements:/exports/measurements + - ./.scripts/mongodb/osem_admin.sh:/docker-entrypoint-initdb.d/osem_admin.sh + # - ./.scripts/mongodb/osem_seed_boxes.sh:/docker-entrypoint-initdb.d/osem_seed_boxes.sh + # - ./.scripts/mongodb/osem_seed_measurements.sh:/docker-entrypoint-initdb.d/osem_seed_measurements.sh diff --git a/dumps/.gitkeep b/dumps/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/images/mongodb/Dockerfile b/images/mongodb/Dockerfile deleted file mode 100644 index 1a38d8a7..00000000 --- a/images/mongodb/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM mongo:5 - -LABEL org.opencontainers.image.source https://github.com/sensebox/openSenseMap-API/tree/master/images/mongodb -LABEL org.opencontainers.image.description "MongoDB development database for openSenseMap API" - -COPY ./osem_admin.sh /docker-entrypoint-initdb.d diff --git a/images/mongodb/README.md b/images/mongodb/README.md deleted file mode 100644 index a9ab59c7..00000000 --- a/images/mongodb/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# osem-dev-mongo - -MongoDB development database for openSenseMap API