diff --git a/docker/Dockerfile b/docker/Dockerfile index 8ef021b990..d567c4c844 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -21,7 +21,6 @@ ENV DJANGO_SETTINGS_MODULE=intel_owl.settings ENV PYTHONPATH=/opt/deploy/intel_owl ENV LOG_PATH=/var/log/intel_owl ARG REPO_DOWNLOADER_ENABLED=true -ENV WATCHMAN=false ARG TARGETARCH ENV watch_logs_cmd="watch -n1 tail -n10 /var/log/intel_owl/django/api_app.log" # This is required to allow compatibility with different OpenCTI instances @@ -50,7 +49,6 @@ RUN apt-get update \ COPY requirements/project-requirements.txt $PYTHONPATH/project-requirements.txt COPY requirements/certego-requirements.txt $PYTHONPATH/certego-requirements.txt -COPY requirements/django-server-requirements.txt $PYTHONPATH/requirements/django-server-requirements.txt WORKDIR $PYTHONPATH RUN pip3 install --no-cache-dir --use-pep517 --compile -r project-requirements.txt \ @@ -58,7 +56,6 @@ RUN pip3 install --no-cache-dir --use-pep517 --compile -r project-requirements.t && pip3 install --no-cache-dir --compile -r certego-requirements.txt COPY api_app/analyzers_manager/repo_downloader.sh ${PYTHONPATH}/api_app/analyzers_manager/repo_downloader.sh -COPY docker/scripts/watchman_install.sh ${PYTHONPATH}/docker/scripts/watchman_install.sh RUN touch ${LOG_PATH}/django/api_app.log ${LOG_PATH}/django/api_app_errors.log \ && touch ${LOG_PATH}/django/intel_owl.log ${LOG_PATH}/django/intel_owl_errors.log \ @@ -68,8 +65,8 @@ RUN touch ${LOG_PATH}/django/api_app.log ${LOG_PATH}/django/api_app_errors.log \ && touch ${LOG_PATH}/django/authentication.log ${LOG_PATH}/django/authentication_errors.log \ && touch ${LOG_PATH}/asgi/daphne.log \ && mkdir -p -m 755 ${PYTHONPATH}/.cache \ - && ${PYTHONPATH}/api_app/analyzers_manager/repo_downloader.sh \ - && ${PYTHONPATH}/docker/scripts/watchman_install.sh + # download github stuff + && ${PYTHONPATH}/api_app/analyzers_manager/repo_downloader.sh COPY . $PYTHONPATH diff --git a/docker/scripts/watchman_install.sh b/docker/scripts/watchman_install.sh deleted file mode 100755 index 010810da1f..0000000000 --- a/docker/scripts/watchman_install.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -echo "WATCHMAN value is " -echo "$WATCHMAN" - -# This script can be disabled during development using WATCHMAN=false env variable -if [ "$WATCHMAN" = "false" ]; then echo "Skipping WATCHMAN installation because we are not in test mode"; exit 0; fi - -pip3 install --compile -r requirements/django-server-requirements.txt - -# install Watchman to enhance performance on the Django development Server -# https://docs.djangoproject.com/en/3.2/ref/django-admin/#runserver -cd /tmp || exit -wget https://github.com/facebook/watchman/archive/refs/tags/v2026.02.02.00.zip -unzip v2026.02.02.00.zip -cd watchman-2026.02.02.00 || exit -mkdir -p /usr/local/{bin,lib} /usr/local/var/run/watchman -cp bin/* /usr/local/bin -cp lib/* /usr/local/lib -chmod 755 /usr/local/bin/watchman -chmod 2777 /usr/local/var/run/watchman -rm -rf v2026.02.02.00.zip diff --git a/docker/test.override.yml b/docker/test.override.yml index 9fa2a6aebe..b347ed9a4c 100644 --- a/docker/test.override.yml +++ b/docker/test.override.yml @@ -5,7 +5,6 @@ services: dockerfile: docker/Dockerfile args: REPO_DOWNLOADER_ENABLED: ${REPO_DOWNLOADER_ENABLED} - WATCHMAN: "true" PYCTI_VERSION: ${PYCTI_VERSION:-6.8.8} image: intelowlproject/intelowl:test volumes: @@ -13,7 +12,6 @@ services: environment: - DEBUG=True - DJANGO_TEST_SERVER=True - - DJANGO_WATCHMAN_TIMEOUT=60 daphne: image: intelowlproject/intelowl:test diff --git a/intel_owl/settings/__init__.py b/intel_owl/settings/__init__.py index 2e38d51f2a..acdc5319b0 100644 --- a/intel_owl/settings/__init__.py +++ b/intel_owl/settings/__init__.py @@ -58,6 +58,16 @@ "django_extensions", ] +from .commons import DEBUG # noqa: E402 + +if DEBUG: + try: + import django_watchfiles # type: ignore[import] + except ImportError: + pass + else: + INSTALLED_APPS.append("django_watchfiles") + from .a_secrets import * # lgtm [py/polluting-import] from .auth import * # lgtm [py/polluting-import] from .aws import * # lgtm [py/polluting-import] diff --git a/requirements/django-server-requirements.txt b/requirements/django-server-requirements.txt deleted file mode 100644 index fa2160f5aa..0000000000 --- a/requirements/django-server-requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -# to allow Watchman to be used with Django Development Server -pywatchman==2.0.0 \ No newline at end of file diff --git a/requirements/project-requirements.txt b/requirements/project-requirements.txt index 131c5da28d..a2eeaaada9 100644 --- a/requirements/project-requirements.txt +++ b/requirements/project-requirements.txt @@ -14,6 +14,7 @@ django-silk==5.4.3 django-treebeard==4.7 django-solo==2.4.0 django_extensions==3.2.3 +django-watchfiles==1.4.0 jsonschema==4.25.1 # django rest framework libs Authlib==1.6.5