chore: Remove decentralized devstack config.
We have decided not to pursue the decentralized devstack design right now and so we want to cleanup files and task that were built as a part of the process. Related Ticket: ARCHBOM-1685
This commit is contained in:
20
Dockerfile
20
Dockerfile
@@ -81,8 +81,6 @@ RUN npm set progress=false && npm install
|
||||
|
||||
ENV LMS_CFG /edx/etc/lms.yml
|
||||
ENV STUDIO_CFG /edx/etc/studio.yml
|
||||
COPY lms/devstack.yml /edx/etc/lms.yml
|
||||
COPY cms/devstack.yml /edx/etc/studio.yml
|
||||
|
||||
# Copy over remaining code.
|
||||
# We do this as late as possible so that small changes to the repo don't bust
|
||||
@@ -99,15 +97,6 @@ FROM lms as lms-newrelic
|
||||
RUN pip install newrelic
|
||||
CMD newrelic-admin run-program gunicorn -c /edx/app/edxapp/edx-platform/lms/docker_lms_gunicorn.py --name lms --bind=0.0.0.0:8000 --max-requests=1000 --access-logfile - lms.wsgi:application
|
||||
|
||||
FROM lms as lms-devstack
|
||||
# TODO: This compiles static assets.
|
||||
# However, it's a bit of a hack, it's slow, and it's inefficient because makes the final Docker cache layer very large.
|
||||
# We ought to be able to this higher up in the Dockerfile, and do it the same for Prod and Devstack.
|
||||
RUN mkdir -p test_root/log
|
||||
ENV DJANGO_SETTINGS_MODULE ""
|
||||
RUN NO_PREREQ_INSTALL=1 paver update_assets lms --settings devstack_decentralized
|
||||
ENV DJANGO_SETTINGS_MODULE lms.envs.devstack_decentralized
|
||||
|
||||
FROM base as studio
|
||||
ENV SERVICE_VARIANT cms
|
||||
ENV DJANGO_SETTINGS_MODULE cms.envs.production
|
||||
@@ -117,12 +106,3 @@ CMD gunicorn -c /edx/app/edxapp/edx-platform/cms/docker_cms_gunicorn.py --name c
|
||||
FROM studio as studio-newrelic
|
||||
RUN pip install newrelic
|
||||
CMD newrelic-admin run-program gunicorn -c /edx/app/edxapp/edx-platform/cms/docker_cms_gunicorn.py --name cms --bind=0.0.0.0:8010 --max-requests=1000 --access-logfile - cms.wsgi:application
|
||||
|
||||
FROM studio as studio-devstack
|
||||
# TODO: This compiles static assets.
|
||||
# However, it's a bit of a hack, it's slow, and it's inefficient because makes the final Docker cache layer very large.
|
||||
# We ought to be able to this higher up in the Dockerfile, and do it the same for Prod and Devstack.
|
||||
RUN mkdir -p test_root/log
|
||||
ENV DJANGO_SETTINGS_MODULE ""
|
||||
RUN NO_PREREQ_INSTALL=1 paver update_assets cms --settings devstack_decentralized
|
||||
ENV DJANGO_SETTINGS_MODULE cms.envs.devstack_decentralized
|
||||
|
||||
4
Makefile
4
Makefile
@@ -115,12 +115,10 @@ upgrade: pre-requirements ## update the pip requirements files to use the latest
|
||||
docker_build:
|
||||
docker build . -f Dockerfile --target lms -t openedx/edx-platform
|
||||
docker build . -f Dockerfile --target lms-newrelic -t openedx/edx-platform:latest-newrelic
|
||||
docker build . -f Dockerfile --target lms-devstack -t openedx/edx-platform:latest-devstack
|
||||
|
||||
docker_tag: docker_build
|
||||
docker tag openedx/edx-platform openedx/edx-platform:${GITHUB_SHA}
|
||||
docker tag openedx/edx-platform:latest-newrelic openedx/edx-platform:${GITHUB_SHA}-newrelic
|
||||
docker tag openedx/edx-platform:latest-devstack openedx/edx-platform:${GITHUB_SHA}-devstack
|
||||
|
||||
docker_auth:
|
||||
echo "$$DOCKERHUB_PASSWORD" | docker login -u "$$DOCKERHUB_USERNAME" --password-stdin
|
||||
@@ -130,5 +128,3 @@ docker_push: docker_tag docker_auth ## push to docker hub
|
||||
docker push "openedx/edx-platform:${GITHUB_SHA}"
|
||||
docker push 'openedx/edx-platform:latest-newrelic'
|
||||
docker push "openedx/edx-platform:${GITHUB_SHA}-newrelic"
|
||||
docker push 'openedx/edx-platform:latest-devstack'
|
||||
docker push "openedx/edx-platform:${GITHUB_SHA}-devstack"
|
||||
|
||||
492
cms/devstack.yml
492
cms/devstack.yml
@@ -1,492 +0,0 @@
|
||||
ACTIVATION_EMAIL_SUPPORT_LINK: ''
|
||||
AFFILIATE_COOKIE_NAME: dev_affiliate_id
|
||||
ALTERNATE_WORKER_QUEUES: lms
|
||||
ANALYTICS_DASHBOARD_NAME: Your Platform Name Here Insights
|
||||
ANALYTICS_DASHBOARD_URL: http://localhost:18110/courses
|
||||
AUTH_PASSWORD_VALIDATORS:
|
||||
- NAME: django.contrib.auth.password_validation.UserAttributeSimilarityValidator
|
||||
- NAME: common.djangoapps.util.password_policy_validators.MinimumLengthValidator
|
||||
OPTIONS:
|
||||
min_length: 2
|
||||
- NAME: common.djangoapps.util.password_policy_validators.MaximumLengthValidator
|
||||
OPTIONS:
|
||||
max_length: 75
|
||||
AWS_ACCESS_KEY_ID: null
|
||||
AWS_QUERYSTRING_AUTH: false
|
||||
AWS_S3_CUSTOM_DOMAIN: SET-ME-PLEASE (ex. bucket-name.s3.amazonaws.com)
|
||||
AWS_SECRET_ACCESS_KEY: null
|
||||
AWS_SES_REGION_ENDPOINT: email.us-east-1.amazonaws.com
|
||||
AWS_SES_REGION_NAME: us-east-1
|
||||
AWS_STORAGE_BUCKET_NAME: SET-ME-PLEASE (ex. bucket-name)
|
||||
BASE_COOKIE_DOMAIN: localhost
|
||||
BLOCKSTORE_API_URL: http://localhost:18250/api/v1
|
||||
BLOCKSTORE_PUBLIC_URL_ROOT: http://localhost:18250
|
||||
BLOCK_STRUCTURES_SETTINGS:
|
||||
COURSE_PUBLISH_TASK_DELAY: 30
|
||||
PRUNING_ACTIVE: false
|
||||
TASK_DEFAULT_RETRY_DELAY: 30
|
||||
TASK_MAX_RETRIES: 5
|
||||
BRANCH_IO_KEY: ''
|
||||
BUGS_EMAIL: bugs@example.com
|
||||
BULK_EMAIL_DEFAULT_FROM_EMAIL: no-reply@example.com
|
||||
BULK_EMAIL_EMAILS_PER_TASK: 500
|
||||
BULK_EMAIL_LOG_SENT_EMAILS: false
|
||||
CACHES:
|
||||
celery:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: celery
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
TIMEOUT: '7200'
|
||||
configuration:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: 1001c6274ca4
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
course_structure_cache:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: course_structure
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
TIMEOUT: '7200'
|
||||
default:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: default
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
VERSION: '1'
|
||||
general:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: general
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
mongo_metadata_inheritance:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: mongo_metadata_inheritance
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
TIMEOUT: 300
|
||||
staticfiles:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: 1001c6274ca4_general
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
CELERY_BROKER_HOSTNAME: localhost
|
||||
CELERY_BROKER_PASSWORD: celery
|
||||
CELERY_BROKER_TRANSPORT: amqp
|
||||
CELERY_BROKER_USER: celery
|
||||
CELERY_BROKER_USE_SSL: false
|
||||
CELERY_BROKER_VHOST: ''
|
||||
CELERY_EVENT_QUEUE_TTL: null
|
||||
CELERY_QUEUES:
|
||||
- edx.cms.core.default
|
||||
- edx.cms.core.high
|
||||
CELERY_TIMEZONE: UTC
|
||||
CERTIFICATE_TEMPLATE_LANGUAGES:
|
||||
en: English
|
||||
es: Español
|
||||
CERT_QUEUE: certificates
|
||||
CMS_BASE: edx.devstack.studio:8010
|
||||
CODE_JAIL:
|
||||
limits:
|
||||
CPU: 1
|
||||
FSIZE: 1048576
|
||||
PROXY: 0
|
||||
REALTIME: 3
|
||||
VMEM: 536870912
|
||||
python_bin: /edx/app/edxapp/venvs/edxapp-sandbox/bin/python
|
||||
user: sandbox
|
||||
COMMENTS_SERVICE_KEY: password
|
||||
COMMENTS_SERVICE_URL: http://localhost:18080
|
||||
COMPREHENSIVE_THEME_DIRS:
|
||||
- ''
|
||||
COMPREHENSIVE_THEME_LOCALE_PATHS: []
|
||||
CONTACT_EMAIL: info@example.com
|
||||
CONTENTSTORE:
|
||||
ADDITIONAL_OPTIONS: {}
|
||||
DOC_STORE_CONFIG:
|
||||
authsource: ''
|
||||
collection: modulestore
|
||||
connectTimeoutMS: 2000
|
||||
db: edxapp
|
||||
host:
|
||||
- edx.devstack.mongo
|
||||
password: password
|
||||
port: 27017
|
||||
read_preference: PRIMARY
|
||||
replicaSet: ''
|
||||
socketTimeoutMS: 3000
|
||||
ssl: false
|
||||
user: edxapp
|
||||
ENGINE: xmodule.contentstore.mongo.MongoContentStore
|
||||
OPTIONS:
|
||||
auth_source: ''
|
||||
db: edxapp
|
||||
host:
|
||||
- edx.devstack.mongo
|
||||
password: password
|
||||
port: 27017
|
||||
ssl: false
|
||||
user: edxapp
|
||||
CORS_ORIGIN_ALLOW_ALL: false
|
||||
CORS_ORIGIN_WHITELIST: []
|
||||
COURSES_WITH_UNSAFE_CODE: []
|
||||
COURSE_ABOUT_VISIBILITY_PERMISSION: see_exists
|
||||
COURSE_AUTHORING_MICROFRONTEND_URL: null
|
||||
COURSE_CATALOG_API_URL: http://localhost:8008/api/v1
|
||||
COURSE_CATALOG_URL_ROOT: http://localhost:8008
|
||||
COURSE_CATALOG_VISIBILITY_PERMISSION: see_exists
|
||||
COURSE_IMPORT_EXPORT_BUCKET: ''
|
||||
CREDENTIALS_INTERNAL_SERVICE_URL: http://localhost:8005
|
||||
CREDENTIALS_PUBLIC_SERVICE_URL: http://localhost:8005
|
||||
CREDIT_PROVIDER_SECRET_KEYS: {}
|
||||
CROSS_DOMAIN_CSRF_COOKIE_DOMAIN: ''
|
||||
CROSS_DOMAIN_CSRF_COOKIE_NAME: ''
|
||||
CSRF_COOKIE_SECURE: false
|
||||
CSRF_TRUSTED_ORIGINS: []
|
||||
DASHBOARD_COURSE_LIMIT: null
|
||||
DATABASES:
|
||||
default:
|
||||
ATOMIC_REQUESTS: true
|
||||
CONN_MAX_AGE: 0
|
||||
ENGINE: django.db.backends.mysql
|
||||
HOST: edx.devstack.mysql57
|
||||
NAME: edxapp
|
||||
OPTIONS: {}
|
||||
PASSWORD: password
|
||||
PORT: '3306'
|
||||
USER: edxapp001
|
||||
read_replica:
|
||||
CONN_MAX_AGE: 0
|
||||
ENGINE: django.db.backends.mysql
|
||||
HOST: edx.devstack.mysql57
|
||||
NAME: edxapp
|
||||
OPTIONS: {}
|
||||
PASSWORD: password
|
||||
PORT: '3306'
|
||||
USER: edxapp001
|
||||
student_module_history:
|
||||
CONN_MAX_AGE: 0
|
||||
ENGINE: django.db.backends.mysql
|
||||
HOST: edx.devstack.mysql57
|
||||
NAME: edxapp_csmh
|
||||
OPTIONS: {}
|
||||
PASSWORD: password
|
||||
PORT: '3306'
|
||||
USER: edxapp001
|
||||
DATA_DIR: /edx/var/edxapp
|
||||
DEFAULT_COURSE_VISIBILITY_IN_CATALOG: both
|
||||
DEFAULT_FEEDBACK_EMAIL: feedback@example.com
|
||||
DEFAULT_FILE_STORAGE: django.core.files.storage.FileSystemStorage
|
||||
DEFAULT_FROM_EMAIL: registration@example.com
|
||||
DEFAULT_JWT_ISSUER:
|
||||
AUDIENCE: lms-key
|
||||
ISSUER: http://edx.devstack.lms:8000/oauth2
|
||||
SECRET_KEY: lms-secret
|
||||
DEFAULT_MOBILE_AVAILABLE: false
|
||||
DEFAULT_SITE_THEME: ''
|
||||
DEPRECATED_ADVANCED_COMPONENT_TYPES: []
|
||||
DJFS:
|
||||
directory_root: /edx/var/edxapp/django-pyfs/static/django-pyfs
|
||||
type: osfs
|
||||
url_root: /static/django-pyfs
|
||||
DOC_STORE_CONFIG:
|
||||
authsource: ''
|
||||
collection: modulestore
|
||||
connectTimeoutMS: 2000
|
||||
db: edxapp
|
||||
host:
|
||||
- edx.devstack.mongo
|
||||
password: password
|
||||
port: 27017
|
||||
read_preference: PRIMARY
|
||||
replicaSet: ''
|
||||
socketTimeoutMS: 3000
|
||||
ssl: false
|
||||
user: edxapp
|
||||
ECOMMERCE_API_SIGNING_KEY: lms-secret
|
||||
ECOMMERCE_API_URL: http://localhost:8002/api/v2
|
||||
ECOMMERCE_PUBLIC_URL_ROOT: http://localhost:8002
|
||||
EDXMKTG_USER_INFO_COOKIE_NAME: edx-user-info
|
||||
EDX_PLATFORM_REVISION: master
|
||||
ELASTIC_SEARCH_CONFIG:
|
||||
- host: edx.devstack.elasticsearch
|
||||
port: 9200
|
||||
use_ssl: false
|
||||
EMAIL_BACKEND: django.core.mail.backends.smtp.EmailBackend
|
||||
EMAIL_HOST: localhost
|
||||
EMAIL_HOST_PASSWORD: ''
|
||||
EMAIL_HOST_USER: ''
|
||||
EMAIL_PORT: 25
|
||||
EMAIL_USE_TLS: false
|
||||
ENABLE_COMPREHENSIVE_THEMING: false
|
||||
ENTERPRISE_API_URL: http://edx.devstack.lms:8000/enterprise/api/v1
|
||||
ENTERPRISE_MARKETING_FOOTER_QUERY_PARAMS: {}
|
||||
ENTERPRISE_SERVICE_WORKER_USERNAME: enterprise_worker
|
||||
EVENT_TRACKING_SEGMENTIO_EMIT_WHITELIST: []
|
||||
EXTRA_MIDDLEWARE_CLASSES: []
|
||||
FACEBOOK_API_VERSION: v2.1
|
||||
FACEBOOK_APP_ID: FACEBOOK_APP_ID
|
||||
FACEBOOK_APP_SECRET: FACEBOOK_APP_SECRET
|
||||
FEATURES:
|
||||
AUTH_USE_OPENID_PROVIDER: true
|
||||
AUTOMATIC_AUTH_FOR_TESTING: false
|
||||
CUSTOM_COURSES_EDX: false
|
||||
ENABLE_COMBINED_LOGIN_REGISTRATION: true
|
||||
ENABLE_CORS_HEADERS: false
|
||||
ENABLE_COUNTRY_ACCESS: false
|
||||
ENABLE_CREDIT_API: false
|
||||
ENABLE_CREDIT_ELIGIBILITY: false
|
||||
ENABLE_CROSS_DOMAIN_CSRF_COOKIE: false
|
||||
ENABLE_CSMH_EXTENDED: true
|
||||
ENABLE_DISCUSSION_HOME_PANEL: true
|
||||
ENABLE_DISCUSSION_SERVICE: true
|
||||
ENABLE_EDXNOTES: true
|
||||
ENABLE_ENROLLMENT_RESET: false
|
||||
ENABLE_GRADE_DOWNLOADS: true
|
||||
ENABLE_INSTRUCTOR_ANALYTICS: false
|
||||
ENABLE_MKTG_SITE: false
|
||||
ENABLE_MOBILE_REST_API: false
|
||||
ENABLE_OAUTH2_PROVIDER: false
|
||||
ENABLE_PUBLISHER: false
|
||||
ENABLE_READING_FROM_MULTIPLE_HISTORY_TABLES: true
|
||||
ENABLE_SPECIAL_EXAMS: false
|
||||
ENABLE_THIRD_PARTY_AUTH: true
|
||||
ENABLE_VIDEO_UPLOAD_PIPELINE: false
|
||||
PREVIEW_LMS_BASE: preview.localhost:8000
|
||||
SHOW_FOOTER_LANGUAGE_SELECTOR: false
|
||||
SHOW_HEADER_LANGUAGE_SELECTOR: false
|
||||
FEEDBACK_SUBMISSION_EMAIL: ''
|
||||
FERNET_KEYS:
|
||||
- DUMMY KEY CHANGE BEFORE GOING TO PRODUCTION
|
||||
FILE_UPLOAD_STORAGE_BUCKET_NAME: SET-ME-PLEASE (ex. bucket-name)
|
||||
FILE_UPLOAD_STORAGE_PREFIX: submissions_attachments
|
||||
FINANCIAL_REPORTS:
|
||||
BUCKET: null
|
||||
ROOT_PATH: sandbox
|
||||
STORAGE_TYPE: localfs
|
||||
FOOTER_ORGANIZATION_IMAGE: images/logo.png
|
||||
GITHUB_REPO_ROOT: /edx/var/edxapp/data
|
||||
GIT_REPO_EXPORT_DIR: /edx/var/edxapp/export_course_repos
|
||||
GOOGLE_ANALYTICS_ACCOUNT: null
|
||||
GRADES_DOWNLOAD:
|
||||
BUCKET: ''
|
||||
ROOT_PATH: ''
|
||||
STORAGE_CLASS: django.core.files.storage.FileSystemStorage
|
||||
STORAGE_KWARGS:
|
||||
location: /tmp/edx-s3/grades
|
||||
STORAGE_TYPE: ''
|
||||
HELP_TOKENS_BOOKS:
|
||||
course_author: http://edx.readthedocs.io/projects/open-edx-building-and-running-a-course
|
||||
learner: http://edx.readthedocs.io/projects/open-edx-learner-guide
|
||||
ICP_LICENSE: null
|
||||
ICP_LICENSE_INFO: {}
|
||||
IDA_LOGOUT_URI_LIST: []
|
||||
ID_VERIFICATION_SUPPORT_LINK: ''
|
||||
JWT_AUTH:
|
||||
JWT_AUDIENCE: lms-key
|
||||
JWT_AUTH_COOKIE_HEADER_PAYLOAD: edx-jwt-cookie-header-payload
|
||||
JWT_AUTH_COOKIE_SIGNATURE: edx-jwt-cookie-signature
|
||||
JWT_AUTH_REFRESH_COOKIE: edx-jwt-refresh-cookie
|
||||
JWT_ISSUER: http://edx.devstack.lms:8000/oauth2
|
||||
JWT_ISSUERS:
|
||||
- AUDIENCE: lms-key
|
||||
ISSUER: http://edx.devstack.lms:8000/oauth2
|
||||
SECRET_KEY: lms-secret
|
||||
JWT_PRIVATE_SIGNING_JWK: None
|
||||
JWT_PUBLIC_SIGNING_JWK_SET: ''
|
||||
JWT_SECRET_KEY: lms-secret
|
||||
JWT_SIGNING_ALGORITHM: null
|
||||
JWT_EXPIRATION: 30
|
||||
JWT_ISSUER: http://edx.devstack.lms:8000/oauth2
|
||||
JWT_PRIVATE_SIGNING_KEY: null
|
||||
LANGUAGE_CODE: en
|
||||
LANGUAGE_COOKIE: openedx-language-preference
|
||||
LEARNER_PORTAL_URL_ROOT: https://learner-portal-edx.devstack.lms:8000
|
||||
LMS_BASE: edx.devstack.lms:8000
|
||||
LMS_INTERNAL_ROOT_URL: http://edx.devstack.lms:8000
|
||||
LMS_ROOT_URL: http://edx.devstack.lms:8000
|
||||
LOCAL_LOGLEVEL: INFO
|
||||
LOGGING_ENV: sandbox
|
||||
LOGIN_REDIRECT_WHITELIST: []
|
||||
LOG_DIR: /edx/var/log/edx
|
||||
MAINTENANCE_BANNER_TEXT: Sample banner message
|
||||
MEDIA_ROOT: /edx/var/edxapp/media/
|
||||
MEDIA_URL: /media/
|
||||
MICROSITE_CONFIGURATION: {}
|
||||
MICROSITE_ROOT_DIR: /edx/app/edxapp/edx-microsite
|
||||
MKTG_URLS: {}
|
||||
MKTG_URL_LINK_MAP: {}
|
||||
MOBILE_STORE_URLS: {}
|
||||
MODULESTORE:
|
||||
default:
|
||||
ENGINE: xmodule.modulestore.mixed.MixedModuleStore
|
||||
OPTIONS:
|
||||
mappings: {}
|
||||
stores:
|
||||
- DOC_STORE_CONFIG:
|
||||
authsource: ''
|
||||
collection: modulestore
|
||||
connectTimeoutMS: 2000
|
||||
db: edxapp
|
||||
host:
|
||||
- edx.devstack.mongo
|
||||
password: password
|
||||
port: 27017
|
||||
read_preference: PRIMARY
|
||||
replicaSet: ''
|
||||
socketTimeoutMS: 3000
|
||||
ssl: false
|
||||
user: edxapp
|
||||
ENGINE: xmodule.modulestore.split_mongo.split_draft.DraftVersioningModuleStore
|
||||
NAME: split
|
||||
OPTIONS:
|
||||
default_class: xmodule.hidden_module.HiddenDescriptor
|
||||
fs_root: /edx/var/edxapp/data
|
||||
render_template: common.djangoapps.edxmako.shortcuts.render_to_string
|
||||
- DOC_STORE_CONFIG:
|
||||
authsource: ''
|
||||
collection: modulestore
|
||||
connectTimeoutMS: 2000
|
||||
db: edxapp
|
||||
host:
|
||||
- edx.devstack.mongo
|
||||
password: password
|
||||
port: 27017
|
||||
read_preference: PRIMARY
|
||||
replicaSet: ''
|
||||
socketTimeoutMS: 3000
|
||||
ssl: false
|
||||
user: edxapp
|
||||
ENGINE: xmodule.modulestore.mongo.DraftMongoModuleStore
|
||||
NAME: draft
|
||||
OPTIONS:
|
||||
default_class: xmodule.hidden_module.HiddenDescriptor
|
||||
fs_root: /edx/var/edxapp/data
|
||||
render_template: common.djangoapps.edxmako.shortcuts.render_to_string
|
||||
ORA2_FILE_PREFIX: default_env-default_deployment/ora2
|
||||
PARSE_KEYS: {}
|
||||
PARTNER_SUPPORT_EMAIL: ''
|
||||
PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG:
|
||||
ENFORCE_COMPLIANCE_ON_LOGIN: false
|
||||
PASSWORD_RESET_SUPPORT_LINK: ''
|
||||
PAYMENT_SUPPORT_EMAIL: billing@example.com
|
||||
PLATFORM_DESCRIPTION: Your Platform Description Here
|
||||
PLATFORM_FACEBOOK_ACCOUNT: http://www.facebook.com/YourPlatformFacebookAccount
|
||||
PLATFORM_NAME: Your Platform Name Here
|
||||
PLATFORM_TWITTER_ACCOUNT: '@YourPlatformTwitterAccount'
|
||||
POLICY_CHANGE_GRADES_ROUTING_KEY: edx.lms.core.default
|
||||
PRESS_EMAIL: press@example.com
|
||||
PROCTORING_BACKENDS:
|
||||
DEFAULT: 'null'
|
||||
'null': {}
|
||||
PROCTORING_SETTINGS: {}
|
||||
REGISTRATION_EXTRA_FIELDS:
|
||||
city: hidden
|
||||
confirm_email: hidden
|
||||
country: required
|
||||
gender: optional
|
||||
goals: optional
|
||||
honor_code: required
|
||||
level_of_education: optional
|
||||
mailing_address: hidden
|
||||
terms_of_service: hidden
|
||||
year_of_birth: optional
|
||||
RETIRED_EMAIL_DOMAIN: retired.invalid
|
||||
RETIRED_EMAIL_PREFIX: retired__user_
|
||||
RETIRED_USERNAME_PREFIX: retired__user_
|
||||
RETIRED_USER_SALTS:
|
||||
- OVERRIDE ME WITH A RANDOM VALUE
|
||||
- ROTATE SALTS BY APPENDING NEW VALUES
|
||||
RETIREMENT_SERVICE_WORKER_USERNAME: retirement_worker
|
||||
RETIREMENT_STATES:
|
||||
- PENDING
|
||||
- ERRORED
|
||||
- ABORTED
|
||||
- COMPLETE
|
||||
SECRET_KEY: DUMMY KEY ONLY FOR TO DEVSTACK
|
||||
SEGMENT_KEY: null
|
||||
SERVER_EMAIL: devops@example.com
|
||||
SESSION_COOKIE_DOMAIN: ''
|
||||
SESSION_COOKIE_NAME: sessionid
|
||||
SESSION_COOKIE_SECURE: false
|
||||
SESSION_SAVE_EVERY_REQUEST: false
|
||||
SITE_NAME: localhost
|
||||
SOCIAL_AUTH_SAML_SP_PRIVATE_KEY: ''
|
||||
SOCIAL_AUTH_SAML_SP_PRIVATE_KEY_DICT: {}
|
||||
SOCIAL_AUTH_SAML_SP_PUBLIC_CERT: ''
|
||||
SOCIAL_AUTH_SAML_SP_PUBLIC_CERT_DICT: {}
|
||||
SOCIAL_MEDIA_FOOTER_URLS: {}
|
||||
SOCIAL_SHARING_SETTINGS:
|
||||
CERTIFICATE_FACEBOOK: false
|
||||
CERTIFICATE_TWITTER: false
|
||||
CUSTOM_COURSE_URLS: false
|
||||
DASHBOARD_FACEBOOK: false
|
||||
DASHBOARD_TWITTER: false
|
||||
STATIC_ROOT_BASE: /edx/var/edxapp/staticfiles
|
||||
STATIC_URL_BASE: /static/
|
||||
STUDIO_NAME: Studio
|
||||
STUDIO_SHORT_NAME: Studio
|
||||
SUPPORT_SITE_LINK: ''
|
||||
SWIFT_AUTH_URL: null
|
||||
SWIFT_AUTH_VERSION: null
|
||||
SWIFT_KEY: null
|
||||
SWIFT_REGION_NAME: null
|
||||
SWIFT_TEMP_URL_DURATION: 1800
|
||||
SWIFT_TEMP_URL_KEY: null
|
||||
SWIFT_TENANT_ID: null
|
||||
SWIFT_TENANT_NAME: null
|
||||
SWIFT_USERNAME: null
|
||||
SWIFT_USE_TEMP_URLS: false
|
||||
SYSLOG_SERVER: ''
|
||||
SYSTEM_WIDE_ROLE_CLASSES: []
|
||||
TECH_SUPPORT_EMAIL: technical@example.com
|
||||
TIME_ZONE: America/New_York
|
||||
UNIVERSITY_EMAIL: university@example.com
|
||||
USERNAME_REPLACEMENT_WORKER: OVERRIDE THIS WITH A VALID USERNAME
|
||||
VIDEO_IMAGE_MAX_AGE: 31536000
|
||||
VIDEO_IMAGE_SETTINGS:
|
||||
DIRECTORY_PREFIX: video-images/
|
||||
STORAGE_KWARGS:
|
||||
base_url: /media/
|
||||
location: edx/var/edxapp/media/
|
||||
VIDEO_IMAGE_MAX_BYTES: 2097152
|
||||
VIDEO_IMAGE_MIN_BYTES: 2048
|
||||
VIDEO_TRANSCRIPTS_MAX_AGE: 31536000
|
||||
VIDEO_TRANSCRIPTS_SETTINGS:
|
||||
DIRECTORY_PREFIX: video-transcripts/
|
||||
STORAGE_KWARGS:
|
||||
base_url: /media/
|
||||
location: edx/var/edxapp/media/
|
||||
VIDEO_TRANSCRIPTS_MAX_BYTES: 3145728
|
||||
VIDEO_UPLOAD_PIPELINE:
|
||||
BUCKET: ''
|
||||
ROOT_PATH: ''
|
||||
WIKI_ENABLED: true
|
||||
XBLOCK_FS_STORAGE_BUCKET: null
|
||||
XBLOCK_FS_STORAGE_PREFIX: null
|
||||
XBLOCK_SETTINGS: {}
|
||||
XQUEUE_INTERFACE:
|
||||
basic_auth:
|
||||
- edx
|
||||
- edx
|
||||
django_auth:
|
||||
password: password
|
||||
username: lms
|
||||
url: http://edx.devstack.xqueue:18040
|
||||
X_FRAME_OPTIONS: DENY
|
||||
YOUTUBE_API_KEY: PUT_YOUR_API_KEY_HERE
|
||||
ZENDESK_API_KEY: ''
|
||||
ZENDESK_CUSTOM_FIELDS: {}
|
||||
ZENDESK_GROUP_ID_MAPPING: {}
|
||||
ZENDESK_OAUTH_ACCESS_TOKEN: ''
|
||||
ZENDESK_URL: ''
|
||||
ZENDESK_USER: ''
|
||||
|
||||
@@ -1,185 +0,0 @@
|
||||
"""
|
||||
Settings file for decentralized devstack
|
||||
"""
|
||||
|
||||
import logging
|
||||
from os.path import abspath, dirname, join
|
||||
|
||||
from .production import * # pylint: disable=wildcard-import, unused-wildcard-import
|
||||
|
||||
# Don't use S3 in devstack, fall back to filesystem
|
||||
del DEFAULT_FILE_STORAGE
|
||||
COURSE_IMPORT_EXPORT_STORAGE = 'django.core.files.storage.FileSystemStorage'
|
||||
USER_TASKS_ARTIFACT_STORAGE = COURSE_IMPORT_EXPORT_STORAGE
|
||||
|
||||
DEBUG = True
|
||||
USE_I18N = True
|
||||
DEFAULT_TEMPLATE_ENGINE['OPTIONS']['debug'] = DEBUG
|
||||
SITE_NAME = 'localhost:8001'
|
||||
HTTPS = 'off'
|
||||
|
||||
CMS_BASE = 'localhost:8010'
|
||||
|
||||
################################ LOGGERS ######################################
|
||||
|
||||
|
||||
# Disable noisy loggers
|
||||
for pkg_name in ['common.djangoapps.track.contexts', 'common.djangoapps.track.middleware']:
|
||||
logging.getLogger(pkg_name).setLevel(logging.CRITICAL)
|
||||
|
||||
# Docker does not support the syslog socket at /dev/log. Rely on the console.
|
||||
LOGGING['handlers']['local'] = LOGGING['handlers']['tracking'] = {
|
||||
'class': 'logging.NullHandler',
|
||||
}
|
||||
|
||||
LOGGING['loggers']['tracking']['handlers'] = ['console']
|
||||
|
||||
################################ EMAIL ########################################
|
||||
|
||||
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
|
||||
EMAIL_FILE_PATH = '/edx/src/ace_messages/'
|
||||
|
||||
################################# LMS INTEGRATION #############################
|
||||
|
||||
LMS_BASE = 'localhost:8000'
|
||||
LMS_ROOT_URL = f'http://{LMS_BASE}'
|
||||
FEATURES['PREVIEW_LMS_BASE'] = "preview." + LMS_BASE
|
||||
|
||||
########################### PIPELINE #################################
|
||||
|
||||
# Skip packaging and optimization in development
|
||||
PIPELINE['PIPELINE_ENABLED'] = False
|
||||
STATICFILES_STORAGE = 'openedx.core.storage.DevelopmentStorage'
|
||||
|
||||
# Revert to the default set of finders as we don't want the production pipeline
|
||||
STATICFILES_FINDERS = [
|
||||
'openedx.core.djangoapps.theming.finders.ThemeFilesFinder',
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||
]
|
||||
|
||||
# Load development webpack donfiguration
|
||||
WEBPACK_CONFIG_PATH = 'webpack.dev.config.js'
|
||||
|
||||
############################ PYFS XBLOCKS SERVICE #############################
|
||||
# Set configuration for Django pyfilesystem
|
||||
|
||||
DJFS = {
|
||||
'type': 'osfs',
|
||||
'directory_root': 'cms/static/djpyfs',
|
||||
'url_root': '/static/djpyfs',
|
||||
}
|
||||
|
||||
################################# CELERY ######################################
|
||||
|
||||
# By default don't use a worker, execute tasks as if they were local functions
|
||||
CELERY_ALWAYS_EAGER = True
|
||||
|
||||
|
||||
def should_show_debug_toolbar(request):
|
||||
return False
|
||||
|
||||
|
||||
################################ MILESTONES ################################
|
||||
FEATURES['MILESTONES_APP'] = True
|
||||
|
||||
|
||||
################################ ENTRANCE EXAMS ################################
|
||||
FEATURES['ENTRANCE_EXAMS'] = True
|
||||
|
||||
################################ COURSE LICENSES ################################
|
||||
FEATURES['LICENSING'] = True
|
||||
# Needed to enable licensing on video modules
|
||||
XBLOCK_SETTINGS.update({'VideoBlock': {'licensing_enabled': True}})
|
||||
|
||||
################################ SEARCH INDEX ################################
|
||||
FEATURES['ENABLE_COURSEWARE_INDEX'] = False
|
||||
FEATURES['ENABLE_LIBRARY_INDEX'] = False
|
||||
SEARCH_ENGINE = "search.elastic.ElasticSearchEngine"
|
||||
|
||||
################################ COURSE DISCUSSIONS ###########################
|
||||
FEATURES['ENABLE_DISCUSSION_SERVICE'] = True
|
||||
|
||||
################################ CREDENTIALS ###########################
|
||||
CREDENTIALS_SERVICE_USERNAME = 'credentials_worker'
|
||||
|
||||
########################## Certificates Web/HTML View #######################
|
||||
FEATURES['CERTIFICATES_HTML_VIEW'] = True
|
||||
|
||||
########################## AUTHOR PERMISSION #######################
|
||||
FEATURES['ENABLE_CREATOR_GROUP'] = False
|
||||
|
||||
################### FRONTEND APPLICATION PUBLISHER URL ###################
|
||||
FEATURES['FRONTEND_APP_PUBLISHER_URL'] = 'http://localhost:18400'
|
||||
|
||||
################################# DJANGO-REQUIRE ###############################
|
||||
|
||||
# Whether to run django-require in debug mode.
|
||||
REQUIRE_DEBUG = DEBUG
|
||||
|
||||
########################### OAUTH2 #################################
|
||||
JWT_AUTH.update({
|
||||
'JWT_ISSUER': f'{LMS_ROOT_URL}/oauth2',
|
||||
'JWT_ISSUERS': [{
|
||||
'AUDIENCE': 'lms-key',
|
||||
'ISSUER': f'{LMS_ROOT_URL}/oauth2',
|
||||
'SECRET_KEY': 'lms-secret',
|
||||
}],
|
||||
'JWT_SECRET_KEY': 'lms-secret',
|
||||
'JWT_AUDIENCE': 'lms-key',
|
||||
'JWT_PUBLIC_SIGNING_JWK_SET': (
|
||||
'{"keys": [{"kid": "devstack_key", "e": "AQAB", "kty": "RSA", "n": "smKFSYowG6nNUAdeqH1jQQnH1PmIHphzBmwJ5vRf1vu'
|
||||
'48BUI5VcVtUWIPqzRK_LDSlZYh9D0YFL0ZTxIrlb6Tn3Xz7pYvpIAeYuQv3_H5p8tbz7Fb8r63c1828wXPITVTv8f7oxx5W3lFFgpFAyYMmROC'
|
||||
'4Ee9qG5T38LFe8_oAuFCEntimWxN9F3P-FJQy43TL7wG54WodgiM0EgzkeLr5K6cDnyckWjTuZbWI-4ffcTgTZsL_Kq1owa_J2ngEfxMCObnzG'
|
||||
'y5ZLcTUomo4rZLjghVpq6KZxfS6I1Vz79ZsMVUWEdXOYePCKKsrQG20ogQEkmTf9FT_SouC6jPcHLXw"}]}'
|
||||
),
|
||||
|
||||
# TODO Remove this once CMS redirects to LMS for Login
|
||||
'JWT_PRIVATE_SIGNING_JWK': (
|
||||
'{"e": "AQAB", "d": "RQ6k4NpRU3RB2lhwCbQ452W86bMMQiPsa7EJiFJUg-qBJthN0FMNQVbArtrCQ0xA1BdnQHThFiUnHcXfsTZUwmwvTu'
|
||||
'iqEGR_MI6aI7h5D8vRj_5x-pxOz-0MCB8TY8dcuK9FkljmgtYvV9flVzCk_uUb3ZJIBVyIW8En7n7nV7JXpS9zey1yVLld2AbRG6W5--Pgqr9J'
|
||||
'CI5-bLdc2otCLuen2sKyuUDHO5NIj30qGTaKUL-OW_PgVmxrwKwccF3w5uGNEvMQ-IcicosCOvzBwdIm1uhdm9rnHU1-fXz8VLRHNhGVv7z6mo'
|
||||
'ghjNI0_u4smhUkEsYeshPv7RQEWTdkOQ", "n": "smKFSYowG6nNUAdeqH1jQQnH1PmIHphzBmwJ5vRf1vu48BUI5VcVtUWIPqzRK_LDSlZYh'
|
||||
'9D0YFL0ZTxIrlb6Tn3Xz7pYvpIAeYuQv3_H5p8tbz7Fb8r63c1828wXPITVTv8f7oxx5W3lFFgpFAyYMmROC4Ee9qG5T38LFe8_oAuFCEntimW'
|
||||
'xN9F3P-FJQy43TL7wG54WodgiM0EgzkeLr5K6cDnyckWjTuZbWI-4ffcTgTZsL_Kq1owa_J2ngEfxMCObnzGy5ZLcTUomo4rZLjghVpq6KZxfS'
|
||||
'6I1Vz79ZsMVUWEdXOYePCKKsrQG20ogQEkmTf9FT_SouC6jPcHLXw", "q": "7KWj7l-ZkfCElyfvwsl7kiosvi-ppOO7Imsv90cribf88Dex'
|
||||
'cO67xdMPesjM9Nh5X209IT-TzbsOtVTXSQyEsy42NY72WETnd1_nAGLAmfxGdo8VV4ZDnRsA8N8POnWjRDwYlVBUEEeuT_MtMWzwIKU94bzkWV'
|
||||
'nHCY5vbhBYLeM", "p": "wPkfnjavNV1Hqb5Qqj2crBS9HQS6GDQIZ7WF9hlBb2ofDNe2K2dunddFqCOdvLXr7ydRcK51ZwSeHjcjgD1aJkHA'
|
||||
'9i1zqyboxgd0uAbxVDo6ohnlVqYLtap2tXXcavKm4C9MTpob_rk6FBfEuq4uSsuxFvCER4yG3CYBBa4gZVU", "kid": "devstack_key", "'
|
||||
'kty": "RSA"}'
|
||||
),
|
||||
})
|
||||
|
||||
# pylint: enable=unicode-format-string # lint-amnesty, pylint: disable=bad-option-value
|
||||
|
||||
IDA_LOGOUT_URI_LIST = [
|
||||
'http://localhost:18130/logout/', # ecommerce
|
||||
'http://localhost:18150/logout/', # credentials
|
||||
]
|
||||
|
||||
############################### BLOCKSTORE #####################################
|
||||
BLOCKSTORE_API_URL = "http://edx.devstack.blockstore:18250/api/v1/"
|
||||
|
||||
#####################################################################
|
||||
|
||||
# pylint: disable=wrong-import-order, wrong-import-position
|
||||
from openedx.core.djangoapps.plugins.constants import ProjectType, SettingsType
|
||||
# pylint: disable=wrong-import-order, wrong-import-position
|
||||
from edx_django_utils.plugins import add_plugins
|
||||
|
||||
add_plugins(__name__, ProjectType.CMS, SettingsType.DEVSTACK)
|
||||
|
||||
|
||||
OPENAPI_CACHE_TIMEOUT = 0
|
||||
|
||||
#####################################################################
|
||||
# Lastly, run any migrations, if needed.
|
||||
MODULESTORE = convert_module_store_setting_if_needed(MODULESTORE)
|
||||
|
||||
# Dummy secret key for dev
|
||||
SECRET_KEY = '85920908f28904ed733fe576320db18cabd7b6cd'
|
||||
|
||||
###############################################################################
|
||||
# See if the developer has any local overrides.
|
||||
if os.path.isfile(join(dirname(abspath(__file__)), 'private.py')):
|
||||
from .private import * # pylint: disable=import-error,wildcard-import
|
||||
584
lms/devstack.yml
584
lms/devstack.yml
@@ -1,584 +0,0 @@
|
||||
ACCOUNT_MICROFRONTEND_URL: null
|
||||
ACE_CHANNEL_DEFAULT_EMAIL: django_email
|
||||
ACE_CHANNEL_SAILTHRU_API_KEY: ''
|
||||
ACE_CHANNEL_SAILTHRU_API_SECRET: ''
|
||||
ACE_CHANNEL_SAILTHRU_DEBUG: true
|
||||
ACE_CHANNEL_SAILTHRU_TEMPLATE_NAME: null
|
||||
ACE_CHANNEL_TRANSACTIONAL_EMAIL: django_email
|
||||
ACE_ENABLED_CHANNELS:
|
||||
- django_email
|
||||
ACE_ENABLED_POLICIES:
|
||||
- bulk_email_optout
|
||||
ACE_ROUTING_KEY: edx.lms.core.default
|
||||
ACTIVATION_EMAIL_SUPPORT_LINK: ''
|
||||
AFFILIATE_COOKIE_NAME: dev_affiliate_id
|
||||
ALTERNATE_WORKER_QUEUES: cms
|
||||
ANALYTICS_API_KEY: ''
|
||||
ANALYTICS_API_URL: http://localhost:18100
|
||||
ANALYTICS_DASHBOARD_NAME: Your Platform Name Here Insights
|
||||
ANALYTICS_DASHBOARD_URL: http://localhost:18110/courses
|
||||
API_ACCESS_FROM_EMAIL: api-requests@example.com
|
||||
API_ACCESS_MANAGER_EMAIL: api-access@example.com
|
||||
API_DOCUMENTATION_URL: http://course-catalog-api-guide.readthedocs.io/en/latest/
|
||||
AUDIT_CERT_CUTOFF_DATE: null
|
||||
AUTH_DOCUMENTATION_URL: http://course-catalog-api-guide.readthedocs.io/en/latest/authentication/index.html
|
||||
AUTH_PASSWORD_VALIDATORS:
|
||||
- NAME: django.contrib.auth.password_validation.UserAttributeSimilarityValidator
|
||||
- NAME: common.djangoapps.util.password_policy_validators.MinimumLengthValidator
|
||||
OPTIONS:
|
||||
min_length: 2
|
||||
- NAME: common.djangoapps.util.password_policy_validators.MaximumLengthValidator
|
||||
OPTIONS:
|
||||
max_length: 75
|
||||
AWS_ACCESS_KEY_ID: null
|
||||
AWS_QUERYSTRING_AUTH: false
|
||||
AWS_S3_CUSTOM_DOMAIN: SET-ME-PLEASE (ex. bucket-name.s3.amazonaws.com)
|
||||
AWS_SECRET_ACCESS_KEY: null
|
||||
AWS_SES_REGION_ENDPOINT: email.us-east-1.amazonaws.com
|
||||
AWS_SES_REGION_NAME: us-east-1
|
||||
AWS_STORAGE_BUCKET_NAME: SET-ME-PLEASE (ex. bucket-name)
|
||||
BASE_COOKIE_DOMAIN: localhost
|
||||
BLOCKSTORE_API_URL: http://localhost:18250/api/v1
|
||||
BLOCKSTORE_PUBLIC_URL_ROOT: http://localhost:18250
|
||||
BLOCK_STRUCTURES_SETTINGS:
|
||||
COURSE_PUBLISH_TASK_DELAY: 30
|
||||
PRUNING_ACTIVE: false
|
||||
TASK_DEFAULT_RETRY_DELAY: 30
|
||||
TASK_MAX_RETRIES: 5
|
||||
BRANCH_IO_KEY: ''
|
||||
BUGS_EMAIL: bugs@example.com
|
||||
BULK_EMAIL_DEFAULT_FROM_EMAIL: no-reply@example.com
|
||||
BULK_EMAIL_EMAILS_PER_TASK: 500
|
||||
BULK_EMAIL_LOG_SENT_EMAILS: false
|
||||
BULK_EMAIL_ROUTING_KEY_SMALL_JOBS: edx.lms.core.default
|
||||
CACHES:
|
||||
celery:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: celery
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
TIMEOUT: '7200'
|
||||
configuration:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: 1001c6274ca4
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
course_structure_cache:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: course_structure
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
TIMEOUT: '7200'
|
||||
default:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: default
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
VERSION: '1'
|
||||
general:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: general
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
mongo_metadata_inheritance:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: mongo_metadata_inheritance
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
TIMEOUT: 300
|
||||
staticfiles:
|
||||
BACKEND: django.core.cache.backends.memcached.MemcachedCache
|
||||
KEY_FUNCTION: common.djangoapps.util.memcache.safe_key
|
||||
KEY_PREFIX: 1001c6274ca4_general
|
||||
LOCATION:
|
||||
- edx.devstack.memcached:11211
|
||||
CELERY_BROKER_HOSTNAME: localhost
|
||||
CELERY_BROKER_PASSWORD: celery
|
||||
CELERY_BROKER_TRANSPORT: amqp
|
||||
CELERY_BROKER_USER: celery
|
||||
CELERY_BROKER_USE_SSL: false
|
||||
CELERY_BROKER_VHOST: ''
|
||||
CELERY_EVENT_QUEUE_TTL: null
|
||||
CELERY_QUEUES:
|
||||
- edx.lms.core.default
|
||||
- edx.lms.core.high
|
||||
- edx.lms.core.high_mem
|
||||
CELERY_TIMEZONE: UTC
|
||||
CERTIFICATE_TEMPLATE_LANGUAGES:
|
||||
en: English
|
||||
es: Español
|
||||
CERT_QUEUE: certificates
|
||||
CMS_BASE: edx.devstack.studio:18010
|
||||
CODE_JAIL:
|
||||
limits:
|
||||
CPU: 1
|
||||
FSIZE: 1048576
|
||||
PROXY: 0
|
||||
REALTIME: 3
|
||||
VMEM: 536870912
|
||||
python_bin: /edx/app/edxapp/venvs/edxapp-sandbox/bin/python
|
||||
user: sandbox
|
||||
COMMENTS_SERVICE_KEY: password
|
||||
COMMENTS_SERVICE_URL: http://localhost:18080
|
||||
COMPREHENSIVE_THEME_DIRS:
|
||||
- ''
|
||||
COMPREHENSIVE_THEME_LOCALE_PATHS: []
|
||||
CONTACT_EMAIL: info@example.com
|
||||
CONTACT_MAILING_ADDRESS: SET-ME-PLEASE
|
||||
CONTENTSTORE:
|
||||
ADDITIONAL_OPTIONS: {}
|
||||
DOC_STORE_CONFIG:
|
||||
authsource: ''
|
||||
collection: modulestore
|
||||
connectTimeoutMS: 2000
|
||||
db: edxapp
|
||||
host:
|
||||
- edx.devstack.mongo
|
||||
password: password
|
||||
port: 27017
|
||||
read_preference: SECONDARY_PREFERRED
|
||||
replicaSet: ''
|
||||
socketTimeoutMS: 3000
|
||||
ssl: false
|
||||
user: edxapp
|
||||
ENGINE: xmodule.contentstore.mongo.MongoContentStore
|
||||
OPTIONS:
|
||||
auth_source: ''
|
||||
db: edxapp
|
||||
host:
|
||||
- edx.devstack.mongo
|
||||
password: password
|
||||
port: 27017
|
||||
ssl: false
|
||||
user: edxapp
|
||||
CORS_ORIGIN_ALLOW_ALL: false
|
||||
CORS_ORIGIN_WHITELIST: []
|
||||
COURSES_WITH_UNSAFE_CODE: []
|
||||
COURSE_ABOUT_VISIBILITY_PERMISSION: see_exists
|
||||
COURSE_CATALOG_API_URL: http://localhost:8008/api/v1
|
||||
COURSE_CATALOG_URL_ROOT: http://localhost:8008
|
||||
COURSE_CATALOG_VISIBILITY_PERMISSION: see_exists
|
||||
CREDENTIALS_INTERNAL_SERVICE_URL: http://localhost:8005
|
||||
CREDENTIALS_PUBLIC_SERVICE_URL: http://localhost:8005
|
||||
CREDIT_HELP_LINK_URL: ''
|
||||
CREDIT_PROVIDER_SECRET_KEYS: {}
|
||||
CROSS_DOMAIN_CSRF_COOKIE_DOMAIN: ''
|
||||
CROSS_DOMAIN_CSRF_COOKIE_NAME: ''
|
||||
CSRF_COOKIE_SECURE: false
|
||||
CSRF_TRUSTED_ORIGINS: []
|
||||
DASHBOARD_COURSE_LIMIT: null
|
||||
DATABASES:
|
||||
default:
|
||||
ATOMIC_REQUESTS: true
|
||||
CONN_MAX_AGE: 0
|
||||
ENGINE: django.db.backends.mysql
|
||||
HOST: edx.devstack.mysql57
|
||||
NAME: edxapp
|
||||
OPTIONS: {}
|
||||
PASSWORD: password
|
||||
PORT: '3306'
|
||||
USER: edxapp001
|
||||
read_replica:
|
||||
CONN_MAX_AGE: 0
|
||||
ENGINE: django.db.backends.mysql
|
||||
HOST: edx.devstack.mysql57
|
||||
NAME: edxapp
|
||||
OPTIONS: {}
|
||||
PASSWORD: password
|
||||
PORT: '3306'
|
||||
USER: edxapp001
|
||||
student_module_history:
|
||||
CONN_MAX_AGE: 0
|
||||
ENGINE: django.db.backends.mysql
|
||||
HOST: edx.devstack.mysql57
|
||||
NAME: edxapp_csmh
|
||||
OPTIONS: {}
|
||||
PASSWORD: password
|
||||
PORT: '3306'
|
||||
USER: edxapp001
|
||||
DATA_DIR: /edx/var/edxapp
|
||||
DEFAULT_COURSE_VISIBILITY_IN_CATALOG: both
|
||||
DEFAULT_FEEDBACK_EMAIL: feedback@example.com
|
||||
DEFAULT_FILE_STORAGE: django.core.files.storage.FileSystemStorage
|
||||
DEFAULT_FROM_EMAIL: registration@example.com
|
||||
DEFAULT_JWT_ISSUER:
|
||||
AUDIENCE: lms-key
|
||||
ISSUER: http://edx.devstack.lms:18000/oauth2
|
||||
SECRET_KEY: lms-secret
|
||||
DEFAULT_MOBILE_AVAILABLE: false
|
||||
DEFAULT_SITE_THEME: ''
|
||||
DEPRECATED_ADVANCED_COMPONENT_TYPES: []
|
||||
DJFS:
|
||||
directory_root: /edx/var/edxapp/django-pyfs/static/django-pyfs
|
||||
type: osfs
|
||||
url_root: /static/django-pyfs
|
||||
DOC_STORE_CONFIG:
|
||||
authsource: ''
|
||||
collection: modulestore
|
||||
connectTimeoutMS: 2000
|
||||
db: edxapp
|
||||
host:
|
||||
- edx.devstack.mongo
|
||||
password: password
|
||||
port: 27017
|
||||
read_preference: SECONDARY_PREFERRED
|
||||
replicaSet: ''
|
||||
socketTimeoutMS: 3000
|
||||
ssl: false
|
||||
user: edxapp
|
||||
ECOMMERCE_API_SIGNING_KEY: lms-secret
|
||||
ECOMMERCE_API_URL: http://localhost:8002/api/v2
|
||||
ECOMMERCE_PUBLIC_URL_ROOT: http://localhost:8002
|
||||
EDXMKTG_USER_INFO_COOKIE_NAME: edx-user-info
|
||||
EDXNOTES_INTERNAL_API: http://edx.devstack.edx_notes_api:18120/api/v1
|
||||
EDXNOTES_PUBLIC_API: http://localhost:18120/api/v1
|
||||
EDX_API_KEY: PUT_YOUR_API_KEY_HERE
|
||||
EDX_PLATFORM_REVISION: master
|
||||
ELASTIC_SEARCH_CONFIG:
|
||||
- host: edx.devstack.elasticsearch
|
||||
port: 9200
|
||||
use_ssl: false
|
||||
EMAIL_BACKEND: django.core.mail.backends.smtp.EmailBackend
|
||||
EMAIL_HOST: localhost
|
||||
EMAIL_HOST_PASSWORD: ''
|
||||
EMAIL_HOST_USER: ''
|
||||
EMAIL_PORT: 25
|
||||
EMAIL_USE_TLS: false
|
||||
ENABLE_COMPREHENSIVE_THEMING: false
|
||||
ENTERPRISE_API_URL: http://edx.devstack.lms:18000/enterprise/api/v1
|
||||
ENTERPRISE_COURSE_ENROLLMENT_AUDIT_MODES:
|
||||
- audit
|
||||
- honor
|
||||
ENTERPRISE_CUSTOMER_SUCCESS_EMAIL: customersuccess@edx.org
|
||||
ENTERPRISE_ENROLLMENT_API_URL: http://edx.devstack.lms:18000/api/enrollment/v1/
|
||||
ENTERPRISE_INTEGRATIONS_EMAIL: enterprise-integrations@edx.org
|
||||
ENTERPRISE_MARKETING_FOOTER_QUERY_PARAMS: {}
|
||||
ENTERPRISE_SERVICE_WORKER_USERNAME: enterprise_worker
|
||||
ENTERPRISE_SUPPORT_URL: ''
|
||||
ENTERPRISE_TAGLINE: ''
|
||||
EVENT_TRACKING_SEGMENTIO_EMIT_WHITELIST: []
|
||||
EXTRA_MIDDLEWARE_CLASSES: []
|
||||
FACEBOOK_API_VERSION: v2.1
|
||||
FACEBOOK_APP_ID: FACEBOOK_APP_ID
|
||||
FACEBOOK_APP_SECRET: FACEBOOK_APP_SECRET
|
||||
FEATURES:
|
||||
AUTH_USE_OPENID_PROVIDER: true
|
||||
AUTOMATIC_AUTH_FOR_TESTING: false
|
||||
CUSTOM_COURSES_EDX: false
|
||||
ENABLE_COMBINED_LOGIN_REGISTRATION: true
|
||||
ENABLE_CORS_HEADERS: false
|
||||
ENABLE_COUNTRY_ACCESS: false
|
||||
ENABLE_CREDIT_API: false
|
||||
ENABLE_CREDIT_ELIGIBILITY: false
|
||||
ENABLE_CROSS_DOMAIN_CSRF_COOKIE: false
|
||||
ENABLE_CSMH_EXTENDED: true
|
||||
ENABLE_DISCUSSION_HOME_PANEL: true
|
||||
ENABLE_DISCUSSION_SERVICE: true
|
||||
ENABLE_EDXNOTES: true
|
||||
ENABLE_ENROLLMENT_RESET: false
|
||||
ENABLE_GRADE_DOWNLOADS: true
|
||||
ENABLE_INSTRUCTOR_ANALYTICS: false
|
||||
ENABLE_MKTG_SITE: false
|
||||
ENABLE_MOBILE_REST_API: false
|
||||
ENABLE_OAUTH2_PROVIDER: false
|
||||
ENABLE_PUBLISHER: false
|
||||
ENABLE_READING_FROM_MULTIPLE_HISTORY_TABLES: true
|
||||
ENABLE_SPECIAL_EXAMS: false
|
||||
ENABLE_THIRD_PARTY_AUTH: true
|
||||
ENABLE_VIDEO_UPLOAD_PIPELINE: false
|
||||
PREVIEW_LMS_BASE: preview.localhost:18000
|
||||
SHOW_FOOTER_LANGUAGE_SELECTOR: false
|
||||
SHOW_HEADER_LANGUAGE_SELECTOR: false
|
||||
FEEDBACK_SUBMISSION_EMAIL: ''
|
||||
FERNET_KEYS:
|
||||
- DUMMY KEY CHANGE BEFORE GOING TO PRODUCTION
|
||||
FILE_UPLOAD_STORAGE_BUCKET_NAME: SET-ME-PLEASE (ex. bucket-name)
|
||||
FILE_UPLOAD_STORAGE_PREFIX: submissions_attachments
|
||||
FINANCIAL_REPORTS:
|
||||
BUCKET: null
|
||||
ROOT_PATH: sandbox
|
||||
STORAGE_TYPE: localfs
|
||||
FOOTER_ORGANIZATION_IMAGE: images/logo.png
|
||||
GITHUB_REPO_ROOT: /edx/var/edxapp/data
|
||||
GOOGLE_ANALYTICS_ACCOUNT: null
|
||||
GOOGLE_ANALYTICS_LINKEDIN: ''
|
||||
GOOGLE_ANALYTICS_TRACKING_ID: ''
|
||||
GOOGLE_SITE_VERIFICATION_ID: ''
|
||||
GRADES_DOWNLOAD:
|
||||
BUCKET: ''
|
||||
ROOT_PATH: ''
|
||||
STORAGE_CLASS: django.core.files.storage.FileSystemStorage
|
||||
STORAGE_KWARGS:
|
||||
location: /tmp/edx-s3/grades
|
||||
STORAGE_TYPE: ''
|
||||
HELP_TOKENS_BOOKS:
|
||||
course_author: http://edx.readthedocs.io/projects/open-edx-building-and-running-a-course
|
||||
learner: http://edx.readthedocs.io/projects/open-edx-learner-guide
|
||||
HTTPS: 'on'
|
||||
ICP_LICENSE: null
|
||||
ICP_LICENSE_INFO: {}
|
||||
IDA_LOGOUT_URI_LIST: []
|
||||
ID_VERIFICATION_SUPPORT_LINK: ''
|
||||
JWT_AUTH:
|
||||
JWT_AUDIENCE: lms-key
|
||||
JWT_AUTH_COOKIE_HEADER_PAYLOAD: edx-jwt-cookie-header-payload
|
||||
JWT_AUTH_COOKIE_SIGNATURE: edx-jwt-cookie-signature
|
||||
JWT_AUTH_REFRESH_COOKIE: edx-jwt-refresh-cookie
|
||||
JWT_ISSUER: http://edx.devstack.lms:18000/oauth2
|
||||
JWT_ISSUERS:
|
||||
- AUDIENCE: lms-key
|
||||
ISSUER: http://edx.devstack.lms:18000/oauth2
|
||||
SECRET_KEY: lms-secret
|
||||
JWT_PRIVATE_SIGNING_JWK: None
|
||||
JWT_PUBLIC_SIGNING_JWK_SET: ''
|
||||
JWT_SECRET_KEY: lms-secret
|
||||
JWT_SIGNING_ALGORITHM: null
|
||||
JWT_EXPIRATION: 30
|
||||
JWT_ISSUER: http://edx.devstack.lms:18000/oauth2
|
||||
JWT_PRIVATE_SIGNING_KEY: null
|
||||
LANGUAGE_CODE: en
|
||||
LANGUAGE_COOKIE: openedx-language-preference
|
||||
LEARNER_PORTAL_URL_ROOT: https://learner-portal-edx.devstack.lms:18000
|
||||
LEARNING_MICROFRONTEND_URL: null
|
||||
LMS_BASE: edx.devstack.lms:18000
|
||||
LMS_INTERNAL_ROOT_URL: http://edx.devstack.lms:18000
|
||||
LMS_ROOT_URL: http://edx.devstack.lms:18000
|
||||
LOCAL_LOGLEVEL: INFO
|
||||
LOGGING_ENV: sandbox
|
||||
LOGIN_REDIRECT_WHITELIST: []
|
||||
LOG_DIR: /edx/var/log/edx
|
||||
LTI_AGGREGATE_SCORE_PASSBACK_DELAY: 900
|
||||
LTI_USER_EMAIL_DOMAIN: lti.example.com
|
||||
MAILCHIMP_NEW_USER_LIST_ID: null
|
||||
MAINTENANCE_BANNER_TEXT: Sample banner message
|
||||
MEDIA_ROOT: /edx/var/edxapp/media/
|
||||
MEDIA_URL: /media/
|
||||
MICROSITE_CONFIGURATION: {}
|
||||
MICROSITE_ROOT_DIR: /edx/app/edxapp/edx-microsite
|
||||
MKTG_URLS: {}
|
||||
MKTG_URL_LINK_MAP: {}
|
||||
MOBILE_STORE_URLS: {}
|
||||
MODULESTORE:
|
||||
default:
|
||||
ENGINE: xmodule.modulestore.mixed.MixedModuleStore
|
||||
OPTIONS:
|
||||
mappings: {}
|
||||
stores:
|
||||
- DOC_STORE_CONFIG:
|
||||
authsource: ''
|
||||
collection: modulestore
|
||||
connectTimeoutMS: 2000
|
||||
db: edxapp
|
||||
host:
|
||||
- edx.devstack.mongo
|
||||
password: password
|
||||
port: 27017
|
||||
read_preference: SECONDARY_PREFERRED
|
||||
replicaSet: ''
|
||||
socketTimeoutMS: 3000
|
||||
ssl: false
|
||||
user: edxapp
|
||||
ENGINE: xmodule.modulestore.split_mongo.split_draft.DraftVersioningModuleStore
|
||||
NAME: split
|
||||
OPTIONS:
|
||||
default_class: xmodule.hidden_module.HiddenDescriptor
|
||||
fs_root: /edx/var/edxapp/data
|
||||
render_template: common.djangoapps.edxmako.shortcuts.render_to_string
|
||||
- DOC_STORE_CONFIG:
|
||||
authsource: ''
|
||||
collection: modulestore
|
||||
connectTimeoutMS: 2000
|
||||
db: edxapp
|
||||
host:
|
||||
- edx.devstack.mongo
|
||||
password: password
|
||||
port: 27017
|
||||
read_preference: PRIMARY
|
||||
replicaSet: ''
|
||||
socketTimeoutMS: 3000
|
||||
ssl: false
|
||||
user: edxapp
|
||||
ENGINE: xmodule.modulestore.mongo.DraftMongoModuleStore
|
||||
NAME: draft
|
||||
OPTIONS:
|
||||
default_class: xmodule.hidden_module.HiddenDescriptor
|
||||
fs_root: /edx/var/edxapp/data
|
||||
render_template: common.djangoapps.edxmako.shortcuts.render_to_string
|
||||
OAUTH_DELETE_EXPIRED: true
|
||||
OAUTH_ENFORCE_SECURE: false
|
||||
OAUTH_EXPIRE_CONFIDENTIAL_CLIENT_DAYS: 365
|
||||
OAUTH_EXPIRE_PUBLIC_CLIENT_DAYS: 30
|
||||
OPTIMIZELY_PROJECT_ID: null
|
||||
ORA2_FILE_PREFIX: default_env-default_deployment/ora2
|
||||
ORDER_HISTORY_MICROFRONTEND_URL: null
|
||||
PAID_COURSE_REGISTRATION_CURRENCY:
|
||||
- usd
|
||||
- $
|
||||
PARENTAL_CONSENT_AGE_LIMIT: 13
|
||||
PARTNER_SUPPORT_EMAIL: ''
|
||||
PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG:
|
||||
ENFORCE_COMPLIANCE_ON_LOGIN: false
|
||||
PASSWORD_RESET_SUPPORT_LINK: ''
|
||||
PAYMENT_SUPPORT_EMAIL: billing@example.com
|
||||
PDF_RECEIPT_BILLING_ADDRESS: 'Enter your receipt billing
|
||||
|
||||
address here.
|
||||
|
||||
'
|
||||
PDF_RECEIPT_COBRAND_LOGO_PATH: ''
|
||||
PDF_RECEIPT_DISCLAIMER_TEXT: 'ENTER YOUR RECEIPT DISCLAIMER TEXT HERE.
|
||||
|
||||
'
|
||||
PDF_RECEIPT_FOOTER_TEXT: 'Enter your receipt footer text here.
|
||||
|
||||
'
|
||||
PDF_RECEIPT_LOGO_PATH: ''
|
||||
PDF_RECEIPT_TAX_ID: 00-0000000
|
||||
PDF_RECEIPT_TAX_ID_LABEL: fake Tax ID
|
||||
PDF_RECEIPT_TERMS_AND_CONDITIONS: 'Enter your receipt terms and conditions here.
|
||||
|
||||
'
|
||||
PLATFORM_DESCRIPTION: Your Platform Description Here
|
||||
PLATFORM_FACEBOOK_ACCOUNT: http://www.facebook.com/YourPlatformFacebookAccount
|
||||
PLATFORM_NAME: Your Platform Name Here
|
||||
PLATFORM_TWITTER_ACCOUNT: '@YourPlatformTwitterAccount'
|
||||
POLICY_CHANGE_GRADES_ROUTING_KEY: edx.lms.core.default
|
||||
PRESS_EMAIL: press@example.com
|
||||
PROCTORING_BACKENDS:
|
||||
DEFAULT: 'null'
|
||||
'null': {}
|
||||
PROCTORING_SETTINGS: {}
|
||||
PROFILE_IMAGE_BACKEND:
|
||||
class: openedx.core.storage.OverwriteStorage
|
||||
options:
|
||||
base_url: /media/profile-images/
|
||||
location: /edx/var/edxapp/media/profile-images/
|
||||
PROFILE_IMAGE_MAX_BYTES: 1048576
|
||||
PROFILE_IMAGE_MIN_BYTES: 100
|
||||
PROFILE_IMAGE_SECRET_KEY: placeholder_secret_key
|
||||
PROFILE_IMAGE_SIZES_MAP:
|
||||
full: 500
|
||||
large: 120
|
||||
medium: 50
|
||||
small: 30
|
||||
PROFILE_MICROFRONTEND_URL: null
|
||||
PROGRAM_CERTIFICATES_ROUTING_KEY: edx.lms.core.default
|
||||
PROGRAM_MANAGER_MICROFRONTEND_URL: null
|
||||
RECALCULATE_GRADES_ROUTING_KEY: edx.lms.core.default
|
||||
REGISTRATION_EXTRA_FIELDS:
|
||||
city: hidden
|
||||
confirm_email: hidden
|
||||
country: required
|
||||
gender: optional
|
||||
goals: optional
|
||||
honor_code: required
|
||||
level_of_education: optional
|
||||
mailing_address: hidden
|
||||
terms_of_service: hidden
|
||||
year_of_birth: optional
|
||||
RETIRED_EMAIL_DOMAIN: retired.invalid
|
||||
RETIRED_EMAIL_PREFIX: retired__user_
|
||||
RETIRED_USERNAME_PREFIX: retired__user_
|
||||
RETIRED_USER_SALTS:
|
||||
- OVERRIDE ME WITH A RANDOM VALUE
|
||||
- ROTATE SALTS BY APPENDING NEW VALUES
|
||||
RETIREMENT_SERVICE_WORKER_USERNAME: retirement_worker
|
||||
RETIREMENT_STATES:
|
||||
- PENDING
|
||||
- ERRORED
|
||||
- ABORTED
|
||||
- COMPLETE
|
||||
SECRET_KEY: DUMMY KEY ONLY FOR TO DEVSTACK
|
||||
SEGMENT_KEY: null
|
||||
SERVER_EMAIL: devops@example.com
|
||||
SESSION_COOKIE_DOMAIN: ''
|
||||
SESSION_COOKIE_NAME: sessionid
|
||||
SESSION_COOKIE_SECURE: false
|
||||
SESSION_SAVE_EVERY_REQUEST: false
|
||||
SITE_NAME: localhost
|
||||
SOCIAL_AUTH_OAUTH_SECRETS: ''
|
||||
SOCIAL_AUTH_SAML_SP_PRIVATE_KEY: ''
|
||||
SOCIAL_AUTH_SAML_SP_PRIVATE_KEY_DICT: {}
|
||||
SOCIAL_AUTH_SAML_SP_PUBLIC_CERT: ''
|
||||
SOCIAL_AUTH_SAML_SP_PUBLIC_CERT_DICT: {}
|
||||
SOCIAL_MEDIA_FOOTER_URLS: {}
|
||||
SOCIAL_SHARING_SETTINGS:
|
||||
CERTIFICATE_FACEBOOK: false
|
||||
CERTIFICATE_TWITTER: false
|
||||
CUSTOM_COURSE_URLS: false
|
||||
DASHBOARD_FACEBOOK: false
|
||||
DASHBOARD_TWITTER: false
|
||||
STATIC_ROOT_BASE: /edx/var/edxapp/staticfiles
|
||||
STATIC_URL_BASE: /static/
|
||||
STUDIO_NAME: Studio
|
||||
STUDIO_SHORT_NAME: Studio
|
||||
SUPPORT_SITE_LINK: ''
|
||||
SWIFT_AUTH_URL: null
|
||||
SWIFT_AUTH_VERSION: null
|
||||
SWIFT_KEY: null
|
||||
SWIFT_REGION_NAME: null
|
||||
SWIFT_TEMP_URL_DURATION: 1800
|
||||
SWIFT_TEMP_URL_KEY: null
|
||||
SWIFT_TENANT_ID: null
|
||||
SWIFT_TENANT_NAME: null
|
||||
SWIFT_USERNAME: null
|
||||
SWIFT_USE_TEMP_URLS: false
|
||||
SYSLOG_SERVER: ''
|
||||
SYSTEM_WIDE_ROLE_CLASSES: []
|
||||
TECH_SUPPORT_EMAIL: technical@example.com
|
||||
TIME_ZONE: America/New_York
|
||||
TRACKING_SEGMENTIO_WEBHOOK_SECRET: ''
|
||||
UNIVERSITY_EMAIL: university@example.com
|
||||
USERNAME_REPLACEMENT_WORKER: OVERRIDE THIS WITH A VALID USERNAME
|
||||
VERIFY_STUDENT:
|
||||
DAYS_GOOD_FOR: 365
|
||||
EXPIRING_SOON_WINDOW: 28
|
||||
VIDEO_CDN_URL:
|
||||
EXAMPLE_COUNTRY_CODE: http://example.com/edx/video?s3_url=
|
||||
VIDEO_IMAGE_MAX_AGE: 31536000
|
||||
VIDEO_IMAGE_SETTINGS:
|
||||
DIRECTORY_PREFIX: video-images/
|
||||
STORAGE_KWARGS:
|
||||
base_url: /media/
|
||||
location: edx/var/edxapp/media/
|
||||
VIDEO_IMAGE_MAX_BYTES: 2097152
|
||||
VIDEO_IMAGE_MIN_BYTES: 2048
|
||||
VIDEO_TRANSCRIPTS_MAX_AGE: 31536000
|
||||
VIDEO_TRANSCRIPTS_SETTINGS:
|
||||
DIRECTORY_PREFIX: video-transcripts/
|
||||
STORAGE_KWARGS:
|
||||
base_url: /media/
|
||||
location: edx/var/edxapp/media/
|
||||
VIDEO_TRANSCRIPTS_MAX_BYTES: 3145728
|
||||
VIDEO_UPLOAD_PIPELINE:
|
||||
BUCKET: ''
|
||||
ROOT_PATH: ''
|
||||
WIKI_ENABLED: true
|
||||
WRITABLE_GRADEBOOK_URL: null
|
||||
XBLOCK_EXTRA_MIXINS: []
|
||||
XBLOCK_FS_STORAGE_BUCKET: null
|
||||
XBLOCK_FS_STORAGE_PREFIX: null
|
||||
XBLOCK_SETTINGS: {}
|
||||
XQUEUE_INTERFACE:
|
||||
basic_auth:
|
||||
- edx
|
||||
- edx
|
||||
django_auth:
|
||||
password: password
|
||||
username: lms
|
||||
url: http://edx.devstack.xqueue:18040
|
||||
X_FRAME_OPTIONS: DENY
|
||||
YOUTUBE_API_KEY: PUT_YOUR_API_KEY_HERE
|
||||
ZENDESK_API_KEY: ''
|
||||
ZENDESK_CUSTOM_FIELDS: {}
|
||||
ZENDESK_GROUP_ID_MAPPING: {}
|
||||
ZENDESK_OAUTH_ACCESS_TOKEN: ''
|
||||
ZENDESK_URL: ''
|
||||
ZENDESK_USER: ''
|
||||
|
||||
@@ -1,362 +0,0 @@
|
||||
"""
|
||||
Settings file for decentralized devstack
|
||||
"""
|
||||
|
||||
# Silence noisy logs
|
||||
import logging
|
||||
from os.path import abspath, dirname, join
|
||||
|
||||
from corsheaders.defaults import default_headers as corsheaders_default_headers
|
||||
|
||||
# pylint: enable=unicode-format-string # lint-amnesty, pylint: disable=bad-option-value
|
||||
#####################################################################
|
||||
from edx_django_utils.plugins import add_plugins
|
||||
|
||||
from openedx.core.djangoapps.plugins.constants import ProjectType, SettingsType
|
||||
|
||||
from .production import * # pylint: disable=wildcard-import, unused-wildcard-import
|
||||
|
||||
# Don't use S3 in devstack, fall back to filesystem
|
||||
del DEFAULT_FILE_STORAGE
|
||||
MEDIA_ROOT = "/edx/var/edxapp/uploads"
|
||||
ORA2_FILEUPLOAD_BACKEND = 'django'
|
||||
|
||||
|
||||
DEBUG = True
|
||||
USE_I18N = True
|
||||
DEFAULT_TEMPLATE_ENGINE['OPTIONS']['debug'] = True
|
||||
LMS_BASE = 'localhost:18000'
|
||||
CMS_BASE = 'localhost:18010'
|
||||
SITE_NAME = LMS_BASE
|
||||
|
||||
# By default don't use a worker, execute tasks as if they were local functions
|
||||
CELERY_ALWAYS_EAGER = True
|
||||
HTTPS = 'off'
|
||||
|
||||
LMS_ROOT_URL = f'http://{LMS_BASE}'
|
||||
LMS_INTERNAL_ROOT_URL = LMS_ROOT_URL
|
||||
ENTERPRISE_API_URL = f'{LMS_INTERNAL_ROOT_URL}/enterprise/api/v1/'
|
||||
IDA_LOGOUT_URI_LIST = [
|
||||
'http://localhost:18130/logout/', # ecommerce
|
||||
'http://localhost:18150/logout/', # credentials
|
||||
'http://localhost:18381/logout/', # discovery
|
||||
]
|
||||
|
||||
################################ LOGGERS ######################################
|
||||
|
||||
LOG_OVERRIDES = [
|
||||
('common.djangoapps.track.contexts', logging.CRITICAL),
|
||||
('common.djangoapps.track.middleware', logging.CRITICAL),
|
||||
('lms.djangoapps.discussion.django_comment_client.utils', logging.CRITICAL),
|
||||
]
|
||||
for log_name, log_level in LOG_OVERRIDES:
|
||||
logging.getLogger(log_name).setLevel(log_level)
|
||||
|
||||
# Docker does not support the syslog socket at /dev/log. Rely on the console.
|
||||
LOGGING['handlers']['local'] = LOGGING['handlers']['tracking'] = {
|
||||
'class': 'logging.NullHandler',
|
||||
}
|
||||
|
||||
LOGGING['loggers']['tracking']['handlers'] = ['console']
|
||||
|
||||
################################ EMAIL ########################################
|
||||
|
||||
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
|
||||
EMAIL_FILE_PATH = '/edx/src/ace_messages/'
|
||||
|
||||
############################ PYFS XBLOCKS SERVICE #############################
|
||||
# Set configuration for Django pyfilesystem
|
||||
|
||||
DJFS = {
|
||||
'type': 'osfs',
|
||||
'directory_root': 'lms/static/djpyfs',
|
||||
'url_root': '/static/djpyfs',
|
||||
}
|
||||
|
||||
|
||||
def should_show_debug_toolbar(request):
|
||||
return False
|
||||
|
||||
########################### PIPELINE #################################
|
||||
|
||||
PIPELINE['PIPELINE_ENABLED'] = False
|
||||
STATICFILES_STORAGE = 'openedx.core.storage.DevelopmentStorage'
|
||||
|
||||
# Revert to the default set of finders as we don't want the production pipeline
|
||||
STATICFILES_FINDERS = [
|
||||
'openedx.core.djangoapps.theming.finders.ThemeFilesFinder',
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||
]
|
||||
|
||||
# Disable JavaScript compression in development
|
||||
PIPELINE['JS_COMPRESSOR'] = None
|
||||
|
||||
# Whether to run django-require in debug mode.
|
||||
REQUIRE_DEBUG = DEBUG
|
||||
|
||||
PIPELINE['SASS_ARGUMENTS'] = '--debug-info'
|
||||
|
||||
# Load development webpack donfiguration
|
||||
WEBPACK_CONFIG_PATH = 'webpack.dev.config.js'
|
||||
|
||||
########################### VERIFIED CERTIFICATES #################################
|
||||
|
||||
FEATURES['AUTOMATIC_VERIFY_STUDENT_IDENTITY_FOR_TESTING'] = True
|
||||
|
||||
########################### External REST APIs #################################
|
||||
FEATURES['ENABLE_OAUTH2_PROVIDER'] = True
|
||||
FEATURES['ENABLE_MOBILE_REST_API'] = True
|
||||
FEATURES['ENABLE_VIDEO_ABSTRACTION_LAYER_API'] = True
|
||||
|
||||
########################## SECURITY #######################
|
||||
FEATURES['ENABLE_MAX_FAILED_LOGIN_ATTEMPTS'] = False
|
||||
FEATURES['SQUELCH_PII_IN_LOGS'] = False
|
||||
FEATURES['PREVENT_CONCURRENT_LOGINS'] = False
|
||||
|
||||
########################### Milestones #################################
|
||||
FEATURES['MILESTONES_APP'] = True
|
||||
|
||||
########################### Entrance Exams #################################
|
||||
FEATURES['ENTRANCE_EXAMS'] = True
|
||||
|
||||
################################ COURSE LICENSES ################################
|
||||
FEATURES['LICENSING'] = True
|
||||
|
||||
|
||||
########################## Courseware Search #######################
|
||||
FEATURES['ENABLE_COURSEWARE_SEARCH'] = False
|
||||
FEATURES['ENABLE_COURSEWARE_SEARCH_FOR_COURSE_STAFF'] = True
|
||||
SEARCH_ENGINE = 'search.elastic.ElasticSearchEngine'
|
||||
|
||||
|
||||
########################## Dashboard Search #######################
|
||||
FEATURES['ENABLE_DASHBOARD_SEARCH'] = False
|
||||
|
||||
|
||||
########################## Certificates Web/HTML View #######################
|
||||
FEATURES['CERTIFICATES_HTML_VIEW'] = True
|
||||
|
||||
|
||||
########################## Course Discovery #######################
|
||||
LANGUAGE_MAP = {'terms': {lang: display for lang, display in ALL_LANGUAGES}, 'name': 'Language'} # lint-amnesty, pylint: disable=unnecessary-comprehension
|
||||
COURSE_DISCOVERY_MEANINGS = {
|
||||
'org': {
|
||||
'name': 'Organization',
|
||||
},
|
||||
'modes': {
|
||||
'name': 'Course Type',
|
||||
'terms': {
|
||||
'honor': 'Honor',
|
||||
'verified': 'Verified',
|
||||
},
|
||||
},
|
||||
'language': LANGUAGE_MAP,
|
||||
}
|
||||
|
||||
FEATURES['ENABLE_COURSE_DISCOVERY'] = False
|
||||
# Setting for overriding default filtering facets for Course discovery
|
||||
# COURSE_DISCOVERY_FILTERS = ["org", "language", "modes"]
|
||||
FEATURES['COURSES_ARE_BROWSEABLE'] = True
|
||||
HOMEPAGE_COURSE_MAX = 9
|
||||
|
||||
# Software secure fake page feature flag
|
||||
FEATURES['ENABLE_SOFTWARE_SECURE_FAKE'] = False
|
||||
|
||||
# Setting for the testing of Software Secure Result Callback
|
||||
VERIFY_STUDENT["SOFTWARE_SECURE"] = {
|
||||
"API_ACCESS_KEY": "BBBBBBBBBBBBBBBBBBBB",
|
||||
"API_SECRET_KEY": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
|
||||
}
|
||||
DISABLE_ACCOUNT_ACTIVATION_REQUIREMENT_SWITCH = "verify_student_disable_account_activation_requirement"
|
||||
|
||||
# Skip enrollment start date filtering
|
||||
SEARCH_SKIP_ENROLLMENT_START_DATE_FILTERING = True
|
||||
|
||||
|
||||
########################## Shopping cart ##########################
|
||||
FEATURES['ENABLE_COSMETIC_DISPLAY_PRICE'] = True
|
||||
|
||||
######################### Program Enrollments #####################
|
||||
FEATURES['ENABLE_ENROLLMENT_RESET'] = True
|
||||
|
||||
########################## Third Party Auth #######################
|
||||
|
||||
if FEATURES.get('ENABLE_THIRD_PARTY_AUTH') and (
|
||||
'common.djangoapps.third_party_auth.dummy.DummyBackend' not in AUTHENTICATION_BACKENDS
|
||||
):
|
||||
AUTHENTICATION_BACKENDS = ['common.djangoapps.third_party_auth.dummy.DummyBackend'] + list(AUTHENTICATION_BACKENDS)
|
||||
|
||||
############## ECOMMERCE API CONFIGURATION SETTINGS ###############
|
||||
ECOMMERCE_PUBLIC_URL_ROOT = 'http://localhost:18130'
|
||||
ECOMMERCE_API_URL = 'http://edx.devstack.ecommerce:18130/api/v2'
|
||||
|
||||
############## Comments CONFIGURATION SETTINGS ###############
|
||||
COMMENTS_SERVICE_URL = 'http://edx.devstack.forum:4567'
|
||||
|
||||
############## Credentials CONFIGURATION SETTINGS ###############
|
||||
CREDENTIALS_INTERNAL_SERVICE_URL = 'http://edx.devstack.credentials:18150'
|
||||
CREDENTIALS_PUBLIC_SERVICE_URL = 'http://localhost:18150'
|
||||
|
||||
############################### BLOCKSTORE #####################################
|
||||
BLOCKSTORE_API_URL = "http://edx.devstack.blockstore:18250/api/v1/"
|
||||
|
||||
###################### Cross-domain requests ######################
|
||||
FEATURES['ENABLE_CORS_HEADERS'] = True
|
||||
CORS_ALLOW_CREDENTIALS = True
|
||||
CORS_ORIGIN_WHITELIST = ()
|
||||
CORS_ORIGIN_ALLOW_ALL = True
|
||||
CORS_ALLOW_HEADERS = corsheaders_default_headers + (
|
||||
'use-jwt-cookie',
|
||||
)
|
||||
|
||||
LOGIN_REDIRECT_WHITELIST = [CMS_BASE]
|
||||
|
||||
###################### JWTs ######################
|
||||
JWT_AUTH.update({
|
||||
'JWT_AUDIENCE': 'lms-key',
|
||||
'JWT_ISSUER': f'{LMS_ROOT_URL}/oauth2',
|
||||
'JWT_ISSUERS': [{
|
||||
'AUDIENCE': 'lms-key',
|
||||
'ISSUER': f'{LMS_ROOT_URL}/oauth2',
|
||||
'SECRET_KEY': 'lms-secret',
|
||||
}],
|
||||
'JWT_SECRET_KEY': 'lms-secret',
|
||||
'JWT_SIGNING_ALGORITHM': 'RS512',
|
||||
'JWT_PRIVATE_SIGNING_JWK': (
|
||||
'{"e": "AQAB", "d": "RQ6k4NpRU3RB2lhwCbQ452W86bMMQiPsa7EJiFJUg-qBJthN0FMNQVbArtrCQ0xA1BdnQHThFiUnHcXfsTZUwmwvTu'
|
||||
'iqEGR_MI6aI7h5D8vRj_5x-pxOz-0MCB8TY8dcuK9FkljmgtYvV9flVzCk_uUb3ZJIBVyIW8En7n7nV7JXpS9zey1yVLld2AbRG6W5--Pgqr9J'
|
||||
'CI5-bLdc2otCLuen2sKyuUDHO5NIj30qGTaKUL-OW_PgVmxrwKwccF3w5uGNEvMQ-IcicosCOvzBwdIm1uhdm9rnHU1-fXz8VLRHNhGVv7z6mo'
|
||||
'ghjNI0_u4smhUkEsYeshPv7RQEWTdkOQ", "n": "smKFSYowG6nNUAdeqH1jQQnH1PmIHphzBmwJ5vRf1vu48BUI5VcVtUWIPqzRK_LDSlZYh'
|
||||
'9D0YFL0ZTxIrlb6Tn3Xz7pYvpIAeYuQv3_H5p8tbz7Fb8r63c1828wXPITVTv8f7oxx5W3lFFgpFAyYMmROC4Ee9qG5T38LFe8_oAuFCEntimW'
|
||||
'xN9F3P-FJQy43TL7wG54WodgiM0EgzkeLr5K6cDnyckWjTuZbWI-4ffcTgTZsL_Kq1owa_J2ngEfxMCObnzGy5ZLcTUomo4rZLjghVpq6KZxfS'
|
||||
'6I1Vz79ZsMVUWEdXOYePCKKsrQG20ogQEkmTf9FT_SouC6jPcHLXw", "q": "7KWj7l-ZkfCElyfvwsl7kiosvi-ppOO7Imsv90cribf88Dex'
|
||||
'cO67xdMPesjM9Nh5X209IT-TzbsOtVTXSQyEsy42NY72WETnd1_nAGLAmfxGdo8VV4ZDnRsA8N8POnWjRDwYlVBUEEeuT_MtMWzwIKU94bzkWV'
|
||||
'nHCY5vbhBYLeM", "p": "wPkfnjavNV1Hqb5Qqj2crBS9HQS6GDQIZ7WF9hlBb2ofDNe2K2dunddFqCOdvLXr7ydRcK51ZwSeHjcjgD1aJkHA'
|
||||
'9i1zqyboxgd0uAbxVDo6ohnlVqYLtap2tXXcavKm4C9MTpob_rk6FBfEuq4uSsuxFvCER4yG3CYBBa4gZVU", "kid": "devstack_key", "'
|
||||
'kty": "RSA"}'
|
||||
),
|
||||
'JWT_PUBLIC_SIGNING_JWK_SET': (
|
||||
'{"keys": [{"kid": "devstack_key", "e": "AQAB", "kty": "RSA", "n": "smKFSYowG6nNUAdeqH1jQQnH1PmIHphzBmwJ5vRf1vu'
|
||||
'48BUI5VcVtUWIPqzRK_LDSlZYh9D0YFL0ZTxIrlb6Tn3Xz7pYvpIAeYuQv3_H5p8tbz7Fb8r63c1828wXPITVTv8f7oxx5W3lFFgpFAyYMmROC'
|
||||
'4Ee9qG5T38LFe8_oAuFCEntimWxN9F3P-FJQy43TL7wG54WodgiM0EgzkeLr5K6cDnyckWjTuZbWI-4ffcTgTZsL_Kq1owa_J2ngEfxMCObnzG'
|
||||
'y5ZLcTUomo4rZLjghVpq6KZxfS6I1Vz79ZsMVUWEdXOYePCKKsrQG20ogQEkmTf9FT_SouC6jPcHLXw"}]}'
|
||||
),
|
||||
})
|
||||
add_plugins(__name__, ProjectType.LMS, SettingsType.DEVSTACK)
|
||||
|
||||
|
||||
######################### Django Rest Framework ########################
|
||||
|
||||
REST_FRAMEWORK['DEFAULT_RENDERER_CLASSES'] += (
|
||||
'rest_framework.renderers.BrowsableAPIRenderer',
|
||||
)
|
||||
|
||||
OPENAPI_CACHE_TIMEOUT = 0
|
||||
|
||||
#####################################################################
|
||||
# Lastly, run any migrations, if needed.
|
||||
MODULESTORE = convert_module_store_setting_if_needed(MODULESTORE)
|
||||
|
||||
SECRET_KEY = '85920908f28904ed733fe576320db18cabd7b6cd'
|
||||
|
||||
EDXNOTES_INTERNAL_API = 'http://edx.devstack.edxnotesapi:18120/api/v1'
|
||||
EDXNOTES_CLIENT_NAME = 'edx_notes_api-backend-service'
|
||||
|
||||
############## Settings for Microfrontends #########################
|
||||
LEARNING_MICROFRONTEND_URL = 'http://localhost:2000'
|
||||
ACCOUNT_MICROFRONTEND_URL = 'http://localhost:1997'
|
||||
AUTHN_MICROFRONTEND_URL = 'http://localhost:1999'
|
||||
|
||||
############## Docker based devstack settings #######################
|
||||
|
||||
FEATURES.update({
|
||||
'AUTOMATIC_AUTH_FOR_TESTING': True,
|
||||
'ENABLE_DISCUSSION_SERVICE': True,
|
||||
'SHOW_HEADER_LANGUAGE_SELECTOR': True,
|
||||
|
||||
# Enable enterprise integration by default.
|
||||
# See https://github.com/edx/edx-enterprise/blob/master/docs/development.rst for
|
||||
# more background on edx-enterprise.
|
||||
# Toggle this off if you don't want anything to do with enterprise in devstack.
|
||||
'ENABLE_ENTERPRISE_INTEGRATION': True,
|
||||
})
|
||||
|
||||
ENABLE_MKTG_SITE = os.environ.get('ENABLE_MARKETING_SITE', False)
|
||||
MARKETING_SITE_ROOT = os.environ.get('MARKETING_SITE_ROOT', 'http://localhost:8080')
|
||||
|
||||
MKTG_URLS = {
|
||||
'ABOUT': '/about',
|
||||
'ACCESSIBILITY': '/accessibility',
|
||||
'AFFILIATES': '/affiliate-program',
|
||||
'BLOG': '/blog',
|
||||
'CAREERS': '/careers',
|
||||
'CONTACT': '/support/contact_us',
|
||||
'COURSES': '/course',
|
||||
'DONATE': '/donate',
|
||||
'ENTERPRISE': '/enterprise',
|
||||
'FAQ': '/student-faq',
|
||||
'HONOR': '/edx-terms-service',
|
||||
'HOW_IT_WORKS': '/how-it-works',
|
||||
'MEDIA_KIT': '/media-kit',
|
||||
'NEWS': '/news-announcements',
|
||||
'PRESS': '/press',
|
||||
'PRIVACY': '/edx-privacy-policy',
|
||||
'ROOT': MARKETING_SITE_ROOT,
|
||||
'SCHOOLS': '/schools-partners',
|
||||
'SITE_MAP': '/sitemap',
|
||||
'TRADEMARKS': '/trademarks',
|
||||
'TOS': '/edx-terms-service',
|
||||
'TOS_AND_HONOR': '/edx-terms-service',
|
||||
'WHAT_IS_VERIFIED_CERT': '/verified-certificate',
|
||||
}
|
||||
|
||||
ENTERPRISE_LEARNER_PORTAL_BASE_URL = 'http://localhost:8734'
|
||||
|
||||
ENTERPRISE_MARKETING_FOOTER_QUERY_PARAMS = {}
|
||||
|
||||
CREDENTIALS_SERVICE_USERNAME = 'credentials_worker'
|
||||
|
||||
COURSE_CATALOG_URL_ROOT = 'http://edx.devstack.discovery:18381'
|
||||
COURSE_CATALOG_API_URL = f'{COURSE_CATALOG_URL_ROOT}/api/v1'
|
||||
|
||||
SYSTEM_WIDE_ROLE_CLASSES = os.environ.get("SYSTEM_WIDE_ROLE_CLASSES", SYSTEM_WIDE_ROLE_CLASSES)
|
||||
SYSTEM_WIDE_ROLE_CLASSES.append(
|
||||
'system_wide_roles.SystemWideRoleAssignment',
|
||||
)
|
||||
|
||||
if FEATURES.get('ENABLE_ENTERPRISE_INTEGRATION'):
|
||||
SYSTEM_WIDE_ROLE_CLASSES.append(
|
||||
'enterprise.SystemWideEnterpriseUserRoleAssignment',
|
||||
)
|
||||
|
||||
# List of enterprise customer uuids to exclude from transition to use of enterprise-catalog
|
||||
ENTERPRISE_CUSTOMERS_EXCLUDED_FROM_CATALOG = ()
|
||||
|
||||
#####################################################################
|
||||
# See if the developer has any local overrides.
|
||||
if os.path.isfile(join(dirname(abspath(__file__)), 'private.py')):
|
||||
from .private import * # pylint: disable=import-error,wildcard-import
|
||||
|
||||
########################## THEMING #######################
|
||||
# If you want to enable theming in devstack, uncomment this section and add any relevant
|
||||
# theme directories to COMPREHENSIVE_THEME_DIRS
|
||||
|
||||
# We have to import the private method here because production.py calls
|
||||
# derive_settings('lms.envs.production') which runs _make_mako_template_dirs with
|
||||
# the settings from production, which doesn't include these theming settings. Thus,
|
||||
# the templating engine is unable to find the themed templates because they don't exist
|
||||
# in it's path. Re-calling derive_settings doesn't work because the settings was already
|
||||
# changed from a function to a list, and it can't be derived again.
|
||||
|
||||
# from .common import _make_mako_template_dirs
|
||||
# ENABLE_COMPREHENSIVE_THEMING = True
|
||||
# COMPREHENSIVE_THEME_DIRS = [
|
||||
# "/edx/app/edxapp/edx-platform/themes/"
|
||||
# ]
|
||||
# TEMPLATES[1]["DIRS"] = _make_mako_template_dirs
|
||||
# derive_settings(__name__)
|
||||
|
||||
# Uncomment the lines below if you'd like to see SQL statements in your devstack LMS log.
|
||||
# LOGGING['handlers']['console']['level'] = 'DEBUG'
|
||||
# LOGGING['loggers']['django.db.backends'] = {'handlers': ['console'], 'level': 'DEBUG', 'propagate': False}
|
||||
Reference in New Issue
Block a user