diff --git a/cms/dev_settings.py b/cms/dev_settings.py new file mode 100644 index 0000000..24c6999 --- /dev/null +++ b/cms/dev_settings.py @@ -0,0 +1,51 @@ +# Development settings, mainly used in docker-compose-dev.yaml +# Django runs in debug mode with runserver, uwsgi and nginx arenot loaded +# Django static loads everything from static/ folder +import os +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'allauth', + 'allauth.account', + 'allauth.socialaccount', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'django.contrib.sites', + 'rest_framework', + 'rest_framework.authtoken', + 'imagekit', + 'files.apps.FilesConfig', + 'users.apps.UsersConfig', + 'actions.apps.ActionsConfig', + 'debug_toolbar', + 'mptt', + 'crispy_forms', + 'uploader.apps.UploaderConfig', + 'djcelery_email', + 'ckeditor', + 'drf_yasg', + 'corsheaders' +] + +MIDDLEWARE = [ + 'corsheaders.middleware.CorsMiddleware', + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'debug_toolbar.middleware.DebugToolbarMiddleware', +] + +DEBUG = True +CORS_ORIGIN_ALLOW_ALL = True +STATICFILES_DIRS = ( + os.path.join(BASE_DIR, 'static/'), +) +STATIC_ROOT = None \ No newline at end of file diff --git a/cms/settings.py b/cms/settings.py index 7945215..24285b0 100644 --- a/cms/settings.py +++ b/cms/settings.py @@ -487,3 +487,14 @@ if GLOBAL_LOGIN_REQUIRED: ] DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' + + +try: + # mostly used in docker-compose-dev.yaml + DEVELOPMENT_MODE = os.environ.get("DEVELOPMENT_MODE") + if DEVELOPMENT_MODE: + # keep a dev_settings.py file for local overrides + from .dev_settings import * # noqa +except ImportError: + pass + diff --git a/docker-compose-dev.yaml b/docker-compose-dev.yaml index 0e2707b..69cff8e 100644 --- a/docker-compose-dev.yaml +++ b/docker-compose-dev.yaml @@ -1,6 +1,30 @@ version: "3" services: + migrations: + build: + context: . + dockerfile: ./Dockerfile-dev + image: mediacms/mediacms-dev:latest + volumes: + - ./:/home/mediacms.io/mediacms/ + environment: + ENABLE_UWSGI: 'no' + ENABLE_NGINX: 'no' + ENABLE_CELERY_SHORT: 'no' + ENABLE_CELERY_LONG: 'no' + ENABLE_CELERY_BEAT: 'no' + ADMIN_USER: 'admin' + ADMIN_EMAIL: 'admin@localhost' + #ADMIN_PASSWORD: 'uncomment_and_set_password_here' + command: "./deploy/docker/prestart.sh" + restart: on-failure + depends_on: + redis: + condition: service_healthy + db: + condition: service_healthy + frontend: image: node:14 volumes: @@ -18,7 +42,9 @@ services: context: . dockerfile: ./Dockerfile-dev image: mediacms/mediacms-dev:latest + command: "python manage.py runserver 0.0.0.0:80" environment: + DEVELOPMENT_MODE: "True" ADMIN_USER: 'admin' ADMIN_PASSWORD: 'admin' ADMIN_EMAIL: 'admin@localhost' @@ -54,3 +80,16 @@ services: interval: 30s timeout: 10s retries: 3 + celery_worker: + image: mediacms/mediacms-dev:latest + deploy: + replicas: 1 + volumes: + - ./:/home/mediacms.io/mediacms/ + environment: + ENABLE_UWSGI: 'no' + ENABLE_NGINX: 'no' + ENABLE_CELERY_BEAT: 'no' + ENABLE_MIGRATIONS: 'no' + depends_on: + - web diff --git a/requirements-dev.txt b/requirements-dev.txt index 24b6367..c4d0bac 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -12,3 +12,6 @@ pytest-cov pytest-django pytest-factoryboy Faker +whitenoise +django-cors-headers +