# HG changeset patch # User Nicolas Chauvat <nicolas.chauvat@logilab.fr> # Date 1712917777 -7200 # Fri Apr 12 12:29:37 2024 +0200 # Node ID 4ae10c14846ba5c43a47c35beeffb5b185f24125 # Parent 0c974881202dda1cb5cda940d4a2c6c4bd56b911 docs: improve README and docker-compose.yml diff --git a/README.rst b/README.rst --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ rodolf -============================================================= +====== RDF data production monitoring (RODOLF) @@ -53,26 +53,27 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The docker-compose.yaml contains the following containers : -- rodolf : the cubicweb instance -- frontend: nextjs front +- rodolf-backend: the cubicweb instance +- rodolf-frontend: the nextjs front +- virtuoso: the rdf repository and sparql endpoint - minio: object storage server - postgresql: sql database server - redis: key value database for session and rq tasks -Environement initialisation : -+++++++++++++++++++++++++++++ - -When starting for the first time tou must run following commands: +When starting for the first time you must run following commands: .. code-block:: # install node modules in your volumes docker compose run --rm --entrypoint npm rodolf-frontend ci + # set the localinstall egg in your volume docker compose run --rm --entrypoint pip rodolf install -e /src + # create the instance docker compose run --entrypoint docker-cubicweb-helper rodolf create-instance - #init the db + + # init the db docker compose run --rm --entrypoint cubicweb-ctl rodolf db-init instance -a Then to start the services do: @@ -81,6 +82,19 @@ docker compose up --build -d +and point your browser to:: + + # virtuoso + http://localhost:8890/ + + # rodolf frontend + http://localhost:3000/ + + # rodolf backend + http://localhost:8080/ + + # minio + http://localhost:9001/ Learn More ---------- diff --git a/docker-compose.yaml b/docker-compose.yaml --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,5 +1,38 @@ +networks: + backend: + driver: bridge + frontend: + services: - rodolf: + # sparql service + + virtuoso: + image: openlink/virtuoso-opensource-7 + ports: + - "8890:8890" + - "127.0.0.1:1111:1111" + environment: + DBA_PASSWORD: virtuoso # admin user is 'dba' + VIRTUOSO_DATABASE_DIR: ./docker-data/virtuoso + volumes: + - ./docker-data/virtuoso:/opt/virtuoso-opensource/database + networks: + - frontend + - backend + + # rodolf application + + rodolf-frontend: + build: ./frontend + ports: + - "3000:3000" + networks: + - frontend + command: dev + volumes: + - ./frontend:/app/ + + rodolf-backend: user: root build: . ports: @@ -14,6 +47,10 @@ REDIS_SESSIONS_SECRET: loutre DEBUG: 1 CW_INTERFACE: 0.0.0.0 + AWS_S3_ENDPOINT_URL: http://minio:9000/ + AWS_ACCESS_KEY_ID: test + AWS_SECRET_ACCESS_KEY: test1234 + RODOLF_S3_BUCKET: rodolf depends_on: redis: condition: service_started @@ -28,15 +65,39 @@ - ./docker-data/config/:/etc/cubicweb.d/instance/ - .:/src/ - rodolf-frontend: - build: ./frontend - ports: - - "3000:3000" + rodolf-worker: + user: root + build: . + command: ["cubicweb-ctl", "rq-worker", "instance"] + environment: + CW_DB_HOST: db + CW_DB_PORT: 5432 + CW_DB_NAME: rodolf + CW_DB_USER: rodolf + CW_DB_PASSWORD: rodolf + REDIS_SESSIONS_URL: redis://redis:6379 + REDIS_SESSIONS_SECRET: loutre + DEBUG: 1 + CW_INTERFACE: 0.0.0.0 + AWS_S3_ENDPOINT_URL: http://minio:9000/ + AWS_ACCESS_KEY_ID: test + AWS_SECRET_ACCESS_KEY: test1234 + RODOLF_S3_BUCKET: rodolf + depends_on: + redis: + condition: service_started + db: + condition: service_healthy + minio: + condition: service_started networks: - - frontend - command: dev + - backend volumes: - - ./frontend:/app/ + - ./docker-data/config/:/etc/cubicweb.d/instance/ + - .:/src/ + + + # storage services used by rodolf-backend minio: image: minio/minio @@ -74,16 +135,3 @@ networks: - backend - virtuoso: - image: openlink/virtuoso-opensource-7 - ports: ["8890:8890", "127.0.0.1:1111:1111"] - environment: - DBA_PASSWORD: virtuoso # admin user is 'dba' - VIRTUOSO_DATABASE_DIR: ./docker-data/virtuoso - volumes: - - ./docker-data/virtuoso:/opt/virtuoso-opensource/database - -networks: - backend: - driver: bridge - frontend: