diff --git a/mongodb/docker-compose.yml b/mongodb/docker-compose.yml index 1a9524966c44b1c9336420d6340ef076ea50ef3a..1509bbfd16249af2b691169e16c720425c5bdf0c 100644 --- a/mongodb/docker-compose.yml +++ b/mongodb/docker-compose.yml @@ -2,6 +2,7 @@ version: '3.7' services: mongodb_container: image: mongo:6 + restart: unless-stopped environment: MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORT} diff --git a/moodle/.env.sample b/moodle/.env.sample new file mode 100644 index 0000000000000000000000000000000000000000..4a9dfbabfe4a49eff866e61144c135ab5ffcaf06 --- /dev/null +++ b/moodle/.env.sample @@ -0,0 +1,12 @@ +MOODLE_DB_NAME=moodle +MOODLE_DB_USER=moodle +MOODLE_MYSQL_USER=moodle +MOODLE_DB_PASSWORD=4T6F9FWsBzILLA5SY83t +MOODLE_URL=polaris-moodle.educacloud.de +MOODLE_ADMIN_USER=admin +MOODLE_ADMIN_PASSWORD=mBDL5S260gQEF3fAZQJ7 +MOODLE_ADMIN_EMAIL=support@digitallearning.gmbh +MOODLE_SITE_NAME=Moodle +MOODLE_DATABASE_PASSWORD=4T6F9FWsBzILLA5SY83t +WEBSITE= +MOODLE_MAIL_HOST= \ No newline at end of file diff --git a/moodle/docker-compose.yml b/moodle/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..0109ed7922a123098964395ad6e62b8182b12662 --- /dev/null +++ b/moodle/docker-compose.yml @@ -0,0 +1,60 @@ +version: '3' +services: + mariadb: + image: mariadb:10.6 + environment: + - TZ=Europe/Berlin + - MARIADB_ROOT_PASSWORD=${MOODLE_DB_PASSWORD} + - MARIADB_USER=moodle + - MARIADB_PASSWORD=${MOODLE_DB_PASSWORD} + - MARIADB_DATABASE=moodle + - MARIADB_CHARACTER_SET=utf8mb4 + - MARIADB_COLLATE=utf8mb4_unicode_ci + volumes: + - './mariadb_data:/var/lib/mysql' + networks: + - internal + + moodle: + image: bitnami/moodle:latest + environment: + - TZ=Europe/Berlin + - MOODLE_DATABASE_HOST=mariadb + - MOODLE_DATABASE_PORT_NUMBER=3306 + - MOODLE_DATABASE_USER=moodle + - MOODLE_DATABASE_NAME=moodle + - MOODLE_DATABASE_PASSWORD=${MOODLE_DB_PASSWORD} + - MOODLE_HOST=${MOODLE_URL} + - MOODLE_LANG=de + - MOODLE_SITE_NAME=${MOODLE_SITE_NAME} + - MOODLE_USERNAME=${MOODLE_ADMIN_USER} + - MOODLE_PASSWORD=${MOODLE_ADMIN_PASSWORD} + - MOODLE_EMAIL=${MOODLE_ADMIN_EMAIL} + - PHP_ENABLE_OPCACHE=yes + - PHP_UPLOAD_MAX_FILESIZE=1024M + - PHP_POST_MAX_SIZE=1024M + - PHP_MAX_EXECUTION_TIME=600 + - PHP_DATE_TIMEZONE=Europe/Berlin + - MOODLE_SMTP_HOST=${MOODLE_MAIL_HOST} + - MOODLE_SMTP_PORT=587 + - MOODLE_SMTP_PROTOCOL=tls + volumes: + - './moodle_code:/bitnami/moodle' + - './moodle_data:/bitnami/moodledata' + networks: + - web + - internal + labels: + - traefik.enable=true + - traefik.http.routers.${WEBSITE}.rule=Host(`${URL}`) + - traefik.http.routers.${WEBSITE}.tls=true + - traefik.http.routers.${WEBSITE}.tls.certresolver=lets-encrypt + - traefik.http.routers.${WEBSITE}.middlewares=security-headers@file + depends_on: + - mariadb + +networks: + web: + external: true + internal: + external: false diff --git a/rights-engine/.env.sample b/rights-engine/.env.sample index 44d0785f8645a2e395f9fb3efcc7c07f6732691b..af67df1bbaf6dae1fac14b57ab01800685c9b112 100644 --- a/rights-engine/.env.sample +++ b/rights-engine/.env.sample @@ -24,3 +24,6 @@ JWT_PRIVATE_KEY_PATH=backend/id_rsa IDP_SERVER=https://aai-test-v3.ruhr-uni-bochum.de IDP_ENABLED=false SP_HOST=polaris.digitallearning.gmbh +PROVIDER_CONTEXTS_PULL_ENABLED=False +PROVIDER_CONTEXTS_PULL_URL=https://example.com +PROVIDER_CONTEXTS_PULL_TOKEN=CHANGE_ME diff --git a/single-compose-with-moodle/.env.sample b/single-compose-with-moodle/.env.sample new file mode 100644 index 0000000000000000000000000000000000000000..b1966ccdbe1d2e3a10a70728233a9642b925ad23 --- /dev/null +++ b/single-compose-with-moodle/.env.sample @@ -0,0 +1,49 @@ +URL=localhost +DB_PASSWORD=CHANGE_ME +DJANGO_DEVELOPMENT=false +DATABASE_NAME=polaris +DATABASE_USER=root +DATABASE_PASSWORD=CHANGE_ME +DATABASE_HOST=database +DEBUG=False +LRS_HOST=http://learninglocker.digitallearning.gmbh:8080 +LRS_TOKEN=CHANGE_ME +MONGO_USER=root +MONGO_PASSWORT=CHANGE_ME +LRS_CONNECTION_STRING=mongodb://root:CHANGE_ME@mongodb_container:27017 +LRS_MONGO_DB_NAME=lrs +DATA_DISCLOSURE_EXPIRATION=30 +DATA_DISCLOSURE_LOCATION=/usr/src/app/backend/data_disclosure_zips +EMAIL_HOST= +EMAIL_PORT= +EMAIL_HOST_USER= +EMAIL_HOST_PASSWORD= +REDIS_PASSWORD=CHANGE_ME +CELERY_BROKER_URL=redis://:CHANGE_ME@redis:6379/0 +JWT_PUBLIC_KEY_PATH=backend/id_rsa.pub +JWT_PRIVATE_KEY_PATH=backend/id_rsa +IDP_SERVER=https://aai-test-v3.ruhr-uni-bochum.de +IDP_ENABLED=false +DYNACONF_SQLALCHEMY_DATABASE_URI=postgresql://postgres:CHANGE_ME@database_analytics/analytics-engine +DYNACONF_CELERY_BROKER_URL=redis://:CHANGE_ME@redis_db_anayltics:6379/0 +DYNACONF_CELERY_RESULT_BACKEND=redis://:CHANGE_ME@redis_db_anayltics:6379/1 +DYNACONF_ANALYTICS_BACKEND_URL=http://scheduler:5000 +DYNACONF_RIGHTS_ENGINE_BACKEND_URL=http://rights-engine:80 +POSTGRES_USER=postgres +POSTGRES_DATABASE=analytics-engine +POSTGRES_PASSWORD=CHANGE_ME +SP_HOST=polaris.ruhr-uni-bochum.de +PROVIDER_CONTEXTS_PULL_ENABLED=False +PROVIDER_CONTEXTS_PULL_URL=https://example.com +PROVIDER_CONTEXTS_PULL_TOKEN=CHANGE_ME +MOODLE_DB_NAME=moodle +MOODLE_DB_USER=moodle +MOODLE_MYSQL_USER=moodle +MOODLE_DB_PASSWORD=4T6F9FWsBzILLA5SY83t +MOODLE_URL=polaris-moodle.educacloud.de +MOODLE_ADMIN_USER=admin +MOODLE_ADMIN_PASSWORD=mBDL5S260gQEF3fAZQJ7 +MOODLE_ADMIN_EMAIL=support@digitallearning.gmbh +MOODLE_SITE_NAME=Moodle +MOODLE_DATABASE_PASSWORD=4T6F9FWsBzILLA5SY83t +MOODLE_MAIL_HOST= diff --git a/single-compose-with-moodle/configuration/h5p_engines.yml b/single-compose-with-moodle/configuration/h5p_engines.yml new file mode 100644 index 0000000000000000000000000000000000000000..85eb85b823685a08abbd56663259fd87035b7365 --- /dev/null +++ b/single-compose-with-moodle/configuration/h5p_engines.yml @@ -0,0 +1,4 @@ +h5p_statements_count_engine: + crontab: "*/1 * * * *" + repo: "https://scheduler:glpat-MsDsrHMH-k3-DzEfNRgk@gitlab.digitallearning.gmbh/polaris/engines/dummy-engine.git" + analytics_token: "b6a4ec069ef9f688e781161d46c2a85c14a761a4eaf0074099656c7de44a65d9" diff --git a/single-compose-with-moodle/configuration/moodle_engines.yml b/single-compose-with-moodle/configuration/moodle_engines.yml new file mode 100644 index 0000000000000000000000000000000000000000..485137ff3c35af36b697f9c6af0c1584fcae0b5d --- /dev/null +++ b/single-compose-with-moodle/configuration/moodle_engines.yml @@ -0,0 +1,5 @@ +moodle_statements_count_engine: + crontab: "*/1 * * * *" + repo: "https://scheduler:glpat-MsDsrHMH-k3-DzEfNRgk@gitlab.digitallearning.gmbh/polaris/engines/dummy-engine.git" + analytics_token: "0482a0f3259c966dfddb38de867573a95995ee5e10898bb71f9ae0e99efe54ef" + diff --git a/single-compose-with-moodle/docker-compose.yml b/single-compose-with-moodle/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..20f3dd7270ef53c335fb980f504aa97e67652d90 --- /dev/null +++ b/single-compose-with-moodle/docker-compose.yml @@ -0,0 +1,188 @@ +services: + # MONGO DB + mongodb_container: + image: mongo:6 + restart: always + environment: + MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORT} + ports: + - 27017:27017 + volumes: + - ./mongodb_data:/data/db + + # RIGHTS ENGINE + database: + image: mariadb:10.6 + restart: always + environment: + MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} + MYSQL_DATABASE: polaris + volumes: + - ./db:/var/lib/mysql + + redis_db: + image: redis:7-alpine + restart: always + command: redis-server --requirepass ${REDIS_PASSWORD} + + rights-engine: + image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest + restart: always + ports: + - 8004:80 + environment: + - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db:6379 + depends_on: + - database + - redis_db + - mongodb_container + volumes: + - ".env:/usr/src/app/backend/.env" + - "./id_rsa.pub:/usr/src/app/backend/id_rsa.pub" + - "./id_rsa:/usr/src/app/backend/id_rsa" + - "./data_disclosure_zips/:/usr/src/app/backend/data_disclosure_zips" + + beat: + image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest + restart: always + entrypoint: celery + command: -A backend beat -l info + environment: + - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db:6379 + depends_on: + - database + - redis_db + - mongodb_container + volumes: + - ".env:/usr/src/app/backend/.env" + - "./id_rsa.pub:/usr/src/app/backend/id_rsa.pub" + - "./id_rsa:/usr/src/app/backend/id_rsa" + + worker: + image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest + restart: always + entrypoint: celery + command: -A backend worker --loglevel=debug + environment: + - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db:6379 + depends_on: + - database + - redis_db + - beat + - mongodb_container + volumes: + - ".env:/usr/src/app/backend/.env" + - "./id_rsa.pub:/usr/src/app/backend/id_rsa.pub" + - "./id_rsa:/usr/src/app/backend/id_rsa" + - "./data_disclosure_zips/:/usr/src/app/backend/data_disclosure_zips" + + # Analytics Engine + database_analytics: + image: postgres:15.1-alpine + restart: always + environment: + - POSTGRES_DB=${POSTGRES_DATABASE} + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + volumes: + - ./database_analytics/production:/var/lib/postgresql/data + + redis_db_anayltics: + image: redis:7-alpine + restart: always + command: redis-server --requirepass ${REDIS_PASSWORD} + + scheduler: + image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest + restart: always + ports: + - 8000:8000 + environment: + - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db_anayltics:6379 + depends_on: + - database + - redis_db_anayltics + volumes: + - ".env:/app/.env" + - "./configuration:/app/configuration" + + beat_analytics: + image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest + restart: always + entrypoint: celery + command: -A scheduler.worker beat -l info --scheduler celery_sqlalchemy_scheduler.schedulers:DatabaseScheduler + environment: + - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db_anayltics:6379 + depends_on: + - database_analytics + - redis_db_anayltics + volumes: + - ".env:/app/.env" + - "./configuration:/app/configuration" + + worker_analytics: + image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest + restart: always + entrypoint: celery + command: -A scheduler.worker worker -l info + environment: + - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db_anayltics:6379 + depends_on: + - database_analytics + - redis_db_anayltics + - beat_analytics + volumes: + - ".env:/app/.env" + - "./configuration:/app/configuration" + + dashboard: + image: registry.digitallearning.gmbh/polaris/dashboard-example/dashboard-example:latest + restart: always + ports: + - 8005:80 + + moodle_mariadb: + image: mariadb:10.6 + environment: + - TZ=Europe/Berlin + - MARIADB_ROOT_PASSWORD=fdslfasfleqwdsdfasdwae2wtsdfsdffh35qwsfsd + - MARIADB_USER=moodle + - MARIADB_PASSWORD=${MOODLE_DB_PASSWORD} + - MARIADB_DATABASE=moodle + - MARIADB_CHARACTER_SET=utf8mb4 + - MARIADB_COLLATE=utf8mb4_unicode_ci + volumes: + - './mariadb_data:/var/lib/mysql' + + + moodle: + image: bitnami/moodle:latest + environment: + - TZ=Europe/Berlin + - MOODLE_DATABASE_HOST=mariadb + - MOODLE_DATABASE_PORT_NUMBER=3306 + - MOODLE_DATABASE_USER=moodle + - MOODLE_DATABASE_NAME=moodle + - MOODLE_DATABASE_PASSWORD=${MOODLE_DB_PASSWORD} + - MOODLE_HOST=${MOODLE_URL} + - MOODLE_LANG=de + - MOODLE_SITE_NAME=${MOODLE_SITE_NAME} + - MOODLE_USERNAME=${MOODLE_ADMIN_USER} + - MOODLE_PASSWORD=${MOODLE_ADMIN_PASSWORD} + - MOODLE_EMAIL=${MOODLE_ADMIN_EMAIL} + - PHP_ENABLE_OPCACHE=yes + - PHP_UPLOAD_MAX_FILESIZE=1024M + - PHP_POST_MAX_SIZE=1024M + - PHP_MAX_EXECUTION_TIME=600 + - PHP_DATE_TIMEZONE=Europe/Berlin + - MOODLE_SMTP_HOST=${MOODLE_MAIL_HOST} + - MOODLE_SMTP_PORT=587 + - MOODLE_SMTP_PROTOCOL=tls + ports: + - 80:9000 + volumes: + - './moodle_code:/bitnami/moodle' + - './moodle_data:/bitnami/moodledata' + depends_on: + - moodle_mariadb diff --git a/single-compose/.env.sample b/single-compose/.env.sample index 9ad1aeba57ecf342d032226af8699cdfb808a777..7537613085232c1522a1f58c4760755a67a35013 100644 --- a/single-compose/.env.sample +++ b/single-compose/.env.sample @@ -33,3 +33,6 @@ POSTGRES_USER=postgres POSTGRES_DATABASE=analytics-engine POSTGRES_PASSWORD=CHANGE_ME SP_HOST=polaris.ruhr-uni-bochum.de +PROVIDER_CONTEXTS_PULL_ENABLED=False +PROVIDER_CONTEXTS_PULL_URL=https://example.com +PROVIDER_CONTEXTS_PULL_TOKEN=CHANGE_ME diff --git a/single-compose/docker-compose.yml b/single-compose/docker-compose.yml index 2362f0190405fe8609a91469fea9b8dc62481441..db2ae149759c0c9b905cb8b460a478acde4ee8c5 100644 --- a/single-compose/docker-compose.yml +++ b/single-compose/docker-compose.yml @@ -27,7 +27,7 @@ services: command: redis-server --requirepass ${REDIS_PASSWORD} rights-engine: - image: registry.digitallearning.gmbh/polaris/rights-engine/rights-engine:latest + image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest restart: always ports: - 8004:80 @@ -44,7 +44,7 @@ services: - "./data_disclosure_zips/:/usr/src/app/backend/data_disclosure_zips" beat: - image: registry.digitallearning.gmbh/polaris/rights-engine/rights-engine:latest + image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest restart: always entrypoint: celery command: -A backend beat -l info @@ -60,7 +60,7 @@ services: - "./id_rsa:/usr/src/app/backend/id_rsa" worker: - image: registry.digitallearning.gmbh/polaris/rights-engine/rights-engine:latest + image: registry.git.rwth-aachen.de/polaris/entwicklung/rights-engine/rights-engine:latest restart: always entrypoint: celery command: -A backend worker --loglevel=debug @@ -94,7 +94,7 @@ services: command: redis-server --requirepass ${REDIS_PASSWORD} scheduler: - image: registry.digitallearning.gmbh/polaris/analytics-engine/scheduler:latest + image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest restart: always ports: - 8000:8000 @@ -108,7 +108,7 @@ services: - "./configuration:/app/configuration" beat_analytics: - image: registry.digitallearning.gmbh/polaris/analytics-engine/scheduler:latest + image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest restart: always entrypoint: celery command: -A scheduler.worker beat -l info --scheduler celery_sqlalchemy_scheduler.schedulers:DatabaseScheduler @@ -122,7 +122,7 @@ services: - "./configuration:/app/configuration" worker_analytics: - image: registry.digitallearning.gmbh/polaris/analytics-engine/scheduler:latest + image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest restart: always entrypoint: celery command: -A scheduler.worker worker -l info