Loading .env-dist +28 −12 Original line number Diff line number Diff line JAMA_SITE="http://localhost:8000/" JAMA_DEBUG="0" JAMA_SECRET="acme" JAMA_DB_HOST="localhost" JAMA_DB_PORT="5432" JAMA_DB_NAME="acme" JAMA_DB_USER="acme" JAMA_DB_PASSWORD="acme" JAMA_IIIF_DIR="" JAMA_FILES_DIR="" JAMA_IIIF_ENDPOINT="http://localhost/iip/IIIF=" CACHE_LOCATION="var/cache" JAMA_APPS="" JAMA_ARK_SERVER="" JAMA_ARK_APP_ID="" JAMA_ARK_SECRET_KEY="" JAMA_ARK_SERVER="" JAMA_DB_ADAPTER="sqlite" JAMA_DB_HOST="localhost" JAMA_DB_NAME="django" JAMA_DB_PASSWORD="django" JAMA_DB_PORT="5432" JAMA_DB_USER="django" JAMA_DEBUG="0" JAMA_FILES_DIR="var/media_sources_files" JAMA_IIIF_DIR="var/iiif" JAMA_IIIF_ENDPOINT="http://localhost/iip/IIIF=" JAMA_IIIF_PROCESSING_DIR="var/processing" JAMA_IIIF_UPSCALING_PREFIX="^" JAMA_LOG_FILE="var/jama.log" JAMA_PARTIAL_UPLOADS_DIR="var/partial_uploads" JAMA_SECRET="Vas5xetqnK4P7wYJcgGFyh" JAMA_SITE="http://localhost:8000/" JAMA_SQLITE_DB_PATH="var/db.sqlite3" JAMA_URL_BASE_PATH="" JAMA_USE_ARK="0" JAMA_USE_CACHALOT="0" JAMA_USE_MODSHIB="#" JAMA_USE_OAI="0" JAMA_USE_WEBP="0" MODSHIB_SHOW_LOCAL_LOGIN="1" MODSHIB_SHOW_SSO_LOGIN="0" VAR_DIR="var" No newline at end of file .gitignore +2 −1 Original line number Diff line number Diff line Loading @@ -21,3 +21,4 @@ cache processing uv.lock .vscode var No newline at end of file README.md +41 −25 Original line number Diff line number Diff line Loading @@ -5,36 +5,52 @@ APIs et interfaces de stockage de médias. ## Pré-requis - uv `curl -LsSf https://astral.sh/uv/install.sh | sh` - PostgreSQL >= 11 - une base de donnée PostgreSQL vide et un utilisateur ayant tous les droits dessus - exiftool - imagemagick (convert) - pdftoppm, pdftotext (poppler-utils) - vips - tesseract Optionnel: - PostgreSQL >= 11 - une base de donnée PostgreSQL vide et un utilisateur ayant tous les droits dessus - exiftool ## Variables d'environnement / valeurs par défaut export JAMA_SITE="http://localhost:8000/" export JAMA_DEBUG="0" # mettre à "1" en développement export JAMA_SECRET="[voir source]" export JAMA_DB_HOST="localhost" export JAMA_DB_PORT="5432" export JAMA_DB_NAME="django" export JAMA_DB_USER="django" export JAMA_DB_PASSWORD="django" export JAMA_SQLITE_DB_PATH="" # si renseigné, vient remplacer PostgreSQL par SQLite export JAMA_IIIF_DIR="" # dossier où seront stockés les fichiers tuilés pour le serveur IIIF export JAMA_FILES_DIR="" # dossier où seront stockés les fichiers d'origine export JAMA_IIIF_ENDPOINT="http://localhost/iip/IIIF=" # URL de base du serveur IIIF export JAMA_APPS="" # liste d'applications Django tierce à activer, séparées par des virgules export JAMA_ARK_SERVER="" # URL du serveur ARK (voir https://git.unicaen.fr/pdn-certic/ark) export JAMA_ARK_APP_ID="" # identifiant pour le serveur ARK export JAMA_ARK_SECRET_KEY="" # secret pour le serveur ARK export JAMA_USE_CACHALOT="0" # "1" pour utiliser le cache de base de donnée export JAMA_USE_WEBP="0" # "1" pour utiliser la compression webp pour le tuilage des images (vérifier la compatibilité du serveur IIIF) export JAMA_USE_OAI="0" # "1" pour activer les URLs OAI-PMH export JAMA_USE_ARK="0" # "1" pour activer les URLs ARK CACHE_LOCATION="var/cache" JAMA_APPS="" JAMA_ARK_APP_ID="" JAMA_ARK_SECRET_KEY="" JAMA_ARK_SERVER="" JAMA_DB_ADAPTER="sqlite" # sqlite ou potgresql JAMA_DB_HOST="localhost" # si JAMA_DB_ADAPTER est postgresql JAMA_DB_NAME="django" # si JAMA_DB_ADAPTER est postgresql JAMA_DB_PASSWORD="django" # si JAMA_DB_ADAPTER est postgresql JAMA_DB_PORT="5432" # si JAMA_DB_ADAPTER est postgresql JAMA_DB_USER="django" # si JAMA_DB_ADAPTER est postgresql JAMA_DEBUG="0" JAMA_FILES_DIR="var/media_sources_files" # dossier où seront stockés les fichiers d'origine JAMA_IIIF_DIR="var/iiif" # dossier où seront stockés les fichiers tuilés pour le serveur IIIF JAMA_IIIF_ENDPOINT="http://localhost/iip/IIIF=" # URL de base du serveur IIIF JAMA_IIIF_PROCESSING_DIR="var/processing" JAMA_IIIF_UPSCALING_PREFIX="^" JAMA_LOG_FILE="var/jama.log" JAMA_PARTIAL_UPLOADS_DIR="var/partial_uploads" JAMA_SECRET="7d*_8c!d$vv963qpr45_x)@f2t-x6fu2&yi+m+d6s!p!lt+_j+" JAMA_SITE="http://localhost:8000/" JAMA_SQLITE_DB_PATH="" JAMA_URL_BASE_PATH="" JAMA_USE_ARK="0" # "1" pour activer les URLs ARK JAMA_USE_CACHALOT="0" # "1" pour utiliser le cache de base de donnée JAMA_USE_MODSHIB="1" JAMA_USE_OAI="0" # "1" pour activer les URLs OAI-PMH JAMA_USE_WEBP="0" # "1" pour utiliser la compression webp pour le tuilage des images (vérifier la compatibilité du serveur IIIF) JAMA_VAR_DIR="var" # Dossier par défaut pour toutes les données MODSHIB_SHOW_LOCAL_LOGIN="1" MODSHIB_SHOW_SSO_LOGIN="0" > _Astuce_ : créer un fichier `.env` à la racine du projet avec l'ensemble des variables déclarées Loading @@ -46,7 +62,7 @@ JAMA_DEBUG="0" ## Installation ### Base de données (développement) ### Base de données (développement), si JAMA_DB_ADAPTER est postgresql (passer si sqlite) ```bash source .env Loading @@ -54,7 +70,7 @@ sudo -u postgres psql -p $JAMA_DB_PORT -dpostgres -t -c "CREATE ROLE $JAMA_DB_US sudo -u postgres createdb -p $JAMA_DB_PORT -O $JAMA_DB_USER -E UTF8 $JAMA_DB_NAME; ``` ### Installation de JAMA et création d'un super-utilisateur ### Installation de JAMA, création d'un super-utilisateur et d'un projet de test make install Loading annotations/tests.py +1 −2 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ class AnnotationTestCase(TestCase): ) # give all permissions to admin role for perm in models.Permission.objects.all(): if perm.label != "collection.public_only": self.admin_role.permissions.add(perm) # give admin role to the user on the project Loading jama/settings.py +21 −24 Original line number Diff line number Diff line Loading @@ -5,25 +5,29 @@ import tempfile DEFAULT_AUTO_FIELD = "django.db.models.AutoField" BASE_DIR = Path(__file__).resolve().parent.parent os.makedirs(Path(BASE_DIR, "var"), exist_ok=True) VAR_DIR = os.getenv("JAMA_VAR_DIR") or Path(BASE_DIR, "var") VAR_DIR = Path(VAR_DIR).resolve() os.makedirs(VAR_DIR, exist_ok=True) JAMA_DB_ADAPTER = os.getenv("JAMA_DB_ADAPTER") or "sqlite" JAMA_URL_BASE_PATH = os.getenv("JAMA_URL_BASE_PATH") or "" JAMA_USE_MODSHIB = True if os.getenv("JAMA_USE_MODSHIB", "0") == "1" else False JAMA_USE_MODSHIB = True if os.getenv("JAMA_USE_MODSHIB", "1") == "1" else False JAMA_USE_CACHALOT = True if os.getenv("JAMA_USE_CACHALOT", "0") == "1" else False JAMA_USE_WEBP = True if os.getenv("JAMA_USE_WEBP", "1") == "1" else False JAMA_USE_OAI = True if os.getenv("JAMA_USE_OAI", "0") == "1" else False JAMA_USE_ARK = True if os.getenv("JAMA_USE_ARK", "0") == "1" else False JAMA_SQLITE_DB_PATH = os.getenv("JAMA_SQLITE_DB_PATH", "") JAMA_SQLITE_DB_PATH = os.getenv("JAMA_SQLITE_DB_PATH") or Path(VAR_DIR, "db.sqlite3") JAMA_IIIF_PROCESSING_DIR = os.getenv( "JAMA_IIIF_PROCESSING_DIR", f"{BASE_DIR}/processing" "JAMA_IIIF_PROCESSING_DIR", Path(VAR_DIR, "processing") ) PARTIAL_UPLOADS_DIR = os.getenv("JAMA_PARTIAL_UPLOADS_DIR") or str( Path(BASE_DIR, "var", "partial_uploads").resolve() Path(VAR_DIR, "partial_uploads").resolve() ) os.makedirs(PARTIAL_UPLOADS_DIR, exist_ok=True) MEDIA_FILES_DIR = os.getenv("JAMA_FILES_DIR") or str( Path(BASE_DIR, "var", "media_source_files").resolve() Path(VAR_DIR, "media_source_files").resolve() ) os.makedirs(MEDIA_FILES_DIR, exist_ok=True) Loading @@ -32,7 +36,7 @@ TMP_THUMBNAILS_DIR = os.getenv("JAMA_TMP_THUMBNAILS_DIR") or tempfile.gettempdir JAMA_SITE = os.getenv("JAMA_SITE") or "http://localhost:8000/" JAMA_IIIF_UPSCALING_PREFIX = os.getenv("JAMA_IIIF_UPSCALING_PREFIX") or "" IIIF_DIR = os.getenv("JAMA_IIIF_DIR") or str(Path(BASE_DIR, "var", "iiif").resolve()) IIIF_DIR = os.getenv("JAMA_IIIF_DIR") or str(Path(VAR_DIR, "iiif").resolve()) os.makedirs(IIIF_DIR, exist_ok=True) IIIF_PATH_SEPARATOR = os.getenv("JAMA_IIIF_PATH_SEPARATOR") or os.path.sep Loading @@ -40,9 +44,8 @@ IIIF_PATH_SEPARATOR = os.getenv("JAMA_IIIF_PATH_SEPARATOR") or os.path.sep ARK_SERVER = os.getenv("JAMA_ARK_SERVER", "") ARK_APP_ID = os.getenv("JAMA_ARK_APP_ID", "") ARK_SECRET_KEY = os.getenv("JAMA_ARK_SECRET_KEY", "") CACHE_FILE_LOCATION = os.getenv( "CACHE_LOCATION", str(Path(BASE_DIR, "var", "cache").resolve()) ) CACHE_FILE_LOCATION = os.getenv("CACHE_LOCATION", str(Path(VAR_DIR, "cache").resolve())) CACHE_FILE_LOCATION = Path(CACHE_FILE_LOCATION).resolve() os.makedirs(CACHE_FILE_LOCATION, exist_ok=True) # SECURITY WARNING: keep the secret key used in production secret! Loading @@ -54,7 +57,7 @@ SECRET_KEY = ( DEBUG = True if os.getenv("JAMA_DEBUG") == "1" else False JAMA_IIIF_ENDPOINT = os.getenv("JAMA_IIIF_ENDPOINT") or "http://localhost/iip/IIIF=" JAMA_LOG_FILE = os.getenv("JAMA_LOG_FILE") or "{}/jama.log".format(BASE_DIR) JAMA_LOG_FILE = os.getenv("JAMA_LOG_FILE") or Path(VAR_DIR, "jama.log") ALLOWED_HOSTS = ["*"] CSRF_TRUSTED_ORIGINS = [JAMA_SITE[:-1]] Loading @@ -72,6 +75,8 @@ INSTALLED_APPS = [ "huey.contrib.djhuey", "authcli.apps.AuthcliConfig", "annotations.apps.AnnotationsConfig", "management.apps.ManagementConfig", "django_extensions", ] Loading @@ -82,11 +87,12 @@ if JAMA_USE_MODSHIB: MODSHIB_SHOW_LOCAL_LOGIN = ( True if os.getenv("MODSHIB_SHOW_LOCAL_LOGIN", "1") == "1" else False ) MODSHIB_SHOW_SSO_LOGIN = ( True if os.getenv("MODSHIB_SHOW_SSO_LOGIN", "0") == "1" else False ) INSTALLED_APPS.append("modshib.apps.ModshibConfig") SHOW_SQL = True if os.getenv("JAMA_SHOW_SQL", False) == "1" else False AUTO_REGISTER_APPS = [] STATICFILES_DIRS = [] for app in os.getenv("JAMA_APPS", "").split(","): Loading @@ -97,9 +103,6 @@ for app in os.getenv("JAMA_APPS", "").split(","): AUTO_REGISTER_APPS.append(app) if DEBUG: INSTALLED_APPS.append("django_extensions") MIDDLEWARE = [ "corsheaders.middleware.CorsMiddleware", "django.middleware.security.SecurityMiddleware", Loading Loading @@ -157,7 +160,7 @@ TEMPLATES = [ WSGI_APPLICATION = "jama.wsgi.application" if JAMA_SQLITE_DB_PATH: if JAMA_DB_ADAPTER == "sqlite": DATABASES = { "default": { "ENGINE": "django.db.backends.sqlite3", Loading Loading @@ -189,8 +192,6 @@ else: } } # Password validation # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { Loading @@ -207,8 +208,6 @@ AUTH_PASSWORD_VALIDATORS = [ }, ] # Internationalization # https://docs.djangoproject.com/en/3.1/topics/i18n/ LANGUAGE_CODE = "fr-fr" Loading @@ -220,8 +219,6 @@ USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.1/howto/static-files/ STATIC_ROOT = "{}/static/".format(BASE_DIR) STATIC_URL = JAMA_URL_BASE_PATH + "/static/" Loading Loading @@ -255,7 +252,7 @@ LOGGING = { HUEY = { "huey_class": "huey.SqliteHuey", # Huey implementation to use. "filename": Path(BASE_DIR, "var", "huey.db").resolve(), "filename": Path(VAR_DIR, "huey.db").resolve(), "results": True, # Store return values of tasks. "store_none": False, # If a task returns None, do not save to results. "immediate": False, # If DEBUG=True, run synchronously. Loading Loading
.env-dist +28 −12 Original line number Diff line number Diff line JAMA_SITE="http://localhost:8000/" JAMA_DEBUG="0" JAMA_SECRET="acme" JAMA_DB_HOST="localhost" JAMA_DB_PORT="5432" JAMA_DB_NAME="acme" JAMA_DB_USER="acme" JAMA_DB_PASSWORD="acme" JAMA_IIIF_DIR="" JAMA_FILES_DIR="" JAMA_IIIF_ENDPOINT="http://localhost/iip/IIIF=" CACHE_LOCATION="var/cache" JAMA_APPS="" JAMA_ARK_SERVER="" JAMA_ARK_APP_ID="" JAMA_ARK_SECRET_KEY="" JAMA_ARK_SERVER="" JAMA_DB_ADAPTER="sqlite" JAMA_DB_HOST="localhost" JAMA_DB_NAME="django" JAMA_DB_PASSWORD="django" JAMA_DB_PORT="5432" JAMA_DB_USER="django" JAMA_DEBUG="0" JAMA_FILES_DIR="var/media_sources_files" JAMA_IIIF_DIR="var/iiif" JAMA_IIIF_ENDPOINT="http://localhost/iip/IIIF=" JAMA_IIIF_PROCESSING_DIR="var/processing" JAMA_IIIF_UPSCALING_PREFIX="^" JAMA_LOG_FILE="var/jama.log" JAMA_PARTIAL_UPLOADS_DIR="var/partial_uploads" JAMA_SECRET="Vas5xetqnK4P7wYJcgGFyh" JAMA_SITE="http://localhost:8000/" JAMA_SQLITE_DB_PATH="var/db.sqlite3" JAMA_URL_BASE_PATH="" JAMA_USE_ARK="0" JAMA_USE_CACHALOT="0" JAMA_USE_MODSHIB="#" JAMA_USE_OAI="0" JAMA_USE_WEBP="0" MODSHIB_SHOW_LOCAL_LOGIN="1" MODSHIB_SHOW_SSO_LOGIN="0" VAR_DIR="var" No newline at end of file
.gitignore +2 −1 Original line number Diff line number Diff line Loading @@ -21,3 +21,4 @@ cache processing uv.lock .vscode var No newline at end of file
README.md +41 −25 Original line number Diff line number Diff line Loading @@ -5,36 +5,52 @@ APIs et interfaces de stockage de médias. ## Pré-requis - uv `curl -LsSf https://astral.sh/uv/install.sh | sh` - PostgreSQL >= 11 - une base de donnée PostgreSQL vide et un utilisateur ayant tous les droits dessus - exiftool - imagemagick (convert) - pdftoppm, pdftotext (poppler-utils) - vips - tesseract Optionnel: - PostgreSQL >= 11 - une base de donnée PostgreSQL vide et un utilisateur ayant tous les droits dessus - exiftool ## Variables d'environnement / valeurs par défaut export JAMA_SITE="http://localhost:8000/" export JAMA_DEBUG="0" # mettre à "1" en développement export JAMA_SECRET="[voir source]" export JAMA_DB_HOST="localhost" export JAMA_DB_PORT="5432" export JAMA_DB_NAME="django" export JAMA_DB_USER="django" export JAMA_DB_PASSWORD="django" export JAMA_SQLITE_DB_PATH="" # si renseigné, vient remplacer PostgreSQL par SQLite export JAMA_IIIF_DIR="" # dossier où seront stockés les fichiers tuilés pour le serveur IIIF export JAMA_FILES_DIR="" # dossier où seront stockés les fichiers d'origine export JAMA_IIIF_ENDPOINT="http://localhost/iip/IIIF=" # URL de base du serveur IIIF export JAMA_APPS="" # liste d'applications Django tierce à activer, séparées par des virgules export JAMA_ARK_SERVER="" # URL du serveur ARK (voir https://git.unicaen.fr/pdn-certic/ark) export JAMA_ARK_APP_ID="" # identifiant pour le serveur ARK export JAMA_ARK_SECRET_KEY="" # secret pour le serveur ARK export JAMA_USE_CACHALOT="0" # "1" pour utiliser le cache de base de donnée export JAMA_USE_WEBP="0" # "1" pour utiliser la compression webp pour le tuilage des images (vérifier la compatibilité du serveur IIIF) export JAMA_USE_OAI="0" # "1" pour activer les URLs OAI-PMH export JAMA_USE_ARK="0" # "1" pour activer les URLs ARK CACHE_LOCATION="var/cache" JAMA_APPS="" JAMA_ARK_APP_ID="" JAMA_ARK_SECRET_KEY="" JAMA_ARK_SERVER="" JAMA_DB_ADAPTER="sqlite" # sqlite ou potgresql JAMA_DB_HOST="localhost" # si JAMA_DB_ADAPTER est postgresql JAMA_DB_NAME="django" # si JAMA_DB_ADAPTER est postgresql JAMA_DB_PASSWORD="django" # si JAMA_DB_ADAPTER est postgresql JAMA_DB_PORT="5432" # si JAMA_DB_ADAPTER est postgresql JAMA_DB_USER="django" # si JAMA_DB_ADAPTER est postgresql JAMA_DEBUG="0" JAMA_FILES_DIR="var/media_sources_files" # dossier où seront stockés les fichiers d'origine JAMA_IIIF_DIR="var/iiif" # dossier où seront stockés les fichiers tuilés pour le serveur IIIF JAMA_IIIF_ENDPOINT="http://localhost/iip/IIIF=" # URL de base du serveur IIIF JAMA_IIIF_PROCESSING_DIR="var/processing" JAMA_IIIF_UPSCALING_PREFIX="^" JAMA_LOG_FILE="var/jama.log" JAMA_PARTIAL_UPLOADS_DIR="var/partial_uploads" JAMA_SECRET="7d*_8c!d$vv963qpr45_x)@f2t-x6fu2&yi+m+d6s!p!lt+_j+" JAMA_SITE="http://localhost:8000/" JAMA_SQLITE_DB_PATH="" JAMA_URL_BASE_PATH="" JAMA_USE_ARK="0" # "1" pour activer les URLs ARK JAMA_USE_CACHALOT="0" # "1" pour utiliser le cache de base de donnée JAMA_USE_MODSHIB="1" JAMA_USE_OAI="0" # "1" pour activer les URLs OAI-PMH JAMA_USE_WEBP="0" # "1" pour utiliser la compression webp pour le tuilage des images (vérifier la compatibilité du serveur IIIF) JAMA_VAR_DIR="var" # Dossier par défaut pour toutes les données MODSHIB_SHOW_LOCAL_LOGIN="1" MODSHIB_SHOW_SSO_LOGIN="0" > _Astuce_ : créer un fichier `.env` à la racine du projet avec l'ensemble des variables déclarées Loading @@ -46,7 +62,7 @@ JAMA_DEBUG="0" ## Installation ### Base de données (développement) ### Base de données (développement), si JAMA_DB_ADAPTER est postgresql (passer si sqlite) ```bash source .env Loading @@ -54,7 +70,7 @@ sudo -u postgres psql -p $JAMA_DB_PORT -dpostgres -t -c "CREATE ROLE $JAMA_DB_US sudo -u postgres createdb -p $JAMA_DB_PORT -O $JAMA_DB_USER -E UTF8 $JAMA_DB_NAME; ``` ### Installation de JAMA et création d'un super-utilisateur ### Installation de JAMA, création d'un super-utilisateur et d'un projet de test make install Loading
annotations/tests.py +1 −2 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ class AnnotationTestCase(TestCase): ) # give all permissions to admin role for perm in models.Permission.objects.all(): if perm.label != "collection.public_only": self.admin_role.permissions.add(perm) # give admin role to the user on the project Loading
jama/settings.py +21 −24 Original line number Diff line number Diff line Loading @@ -5,25 +5,29 @@ import tempfile DEFAULT_AUTO_FIELD = "django.db.models.AutoField" BASE_DIR = Path(__file__).resolve().parent.parent os.makedirs(Path(BASE_DIR, "var"), exist_ok=True) VAR_DIR = os.getenv("JAMA_VAR_DIR") or Path(BASE_DIR, "var") VAR_DIR = Path(VAR_DIR).resolve() os.makedirs(VAR_DIR, exist_ok=True) JAMA_DB_ADAPTER = os.getenv("JAMA_DB_ADAPTER") or "sqlite" JAMA_URL_BASE_PATH = os.getenv("JAMA_URL_BASE_PATH") or "" JAMA_USE_MODSHIB = True if os.getenv("JAMA_USE_MODSHIB", "0") == "1" else False JAMA_USE_MODSHIB = True if os.getenv("JAMA_USE_MODSHIB", "1") == "1" else False JAMA_USE_CACHALOT = True if os.getenv("JAMA_USE_CACHALOT", "0") == "1" else False JAMA_USE_WEBP = True if os.getenv("JAMA_USE_WEBP", "1") == "1" else False JAMA_USE_OAI = True if os.getenv("JAMA_USE_OAI", "0") == "1" else False JAMA_USE_ARK = True if os.getenv("JAMA_USE_ARK", "0") == "1" else False JAMA_SQLITE_DB_PATH = os.getenv("JAMA_SQLITE_DB_PATH", "") JAMA_SQLITE_DB_PATH = os.getenv("JAMA_SQLITE_DB_PATH") or Path(VAR_DIR, "db.sqlite3") JAMA_IIIF_PROCESSING_DIR = os.getenv( "JAMA_IIIF_PROCESSING_DIR", f"{BASE_DIR}/processing" "JAMA_IIIF_PROCESSING_DIR", Path(VAR_DIR, "processing") ) PARTIAL_UPLOADS_DIR = os.getenv("JAMA_PARTIAL_UPLOADS_DIR") or str( Path(BASE_DIR, "var", "partial_uploads").resolve() Path(VAR_DIR, "partial_uploads").resolve() ) os.makedirs(PARTIAL_UPLOADS_DIR, exist_ok=True) MEDIA_FILES_DIR = os.getenv("JAMA_FILES_DIR") or str( Path(BASE_DIR, "var", "media_source_files").resolve() Path(VAR_DIR, "media_source_files").resolve() ) os.makedirs(MEDIA_FILES_DIR, exist_ok=True) Loading @@ -32,7 +36,7 @@ TMP_THUMBNAILS_DIR = os.getenv("JAMA_TMP_THUMBNAILS_DIR") or tempfile.gettempdir JAMA_SITE = os.getenv("JAMA_SITE") or "http://localhost:8000/" JAMA_IIIF_UPSCALING_PREFIX = os.getenv("JAMA_IIIF_UPSCALING_PREFIX") or "" IIIF_DIR = os.getenv("JAMA_IIIF_DIR") or str(Path(BASE_DIR, "var", "iiif").resolve()) IIIF_DIR = os.getenv("JAMA_IIIF_DIR") or str(Path(VAR_DIR, "iiif").resolve()) os.makedirs(IIIF_DIR, exist_ok=True) IIIF_PATH_SEPARATOR = os.getenv("JAMA_IIIF_PATH_SEPARATOR") or os.path.sep Loading @@ -40,9 +44,8 @@ IIIF_PATH_SEPARATOR = os.getenv("JAMA_IIIF_PATH_SEPARATOR") or os.path.sep ARK_SERVER = os.getenv("JAMA_ARK_SERVER", "") ARK_APP_ID = os.getenv("JAMA_ARK_APP_ID", "") ARK_SECRET_KEY = os.getenv("JAMA_ARK_SECRET_KEY", "") CACHE_FILE_LOCATION = os.getenv( "CACHE_LOCATION", str(Path(BASE_DIR, "var", "cache").resolve()) ) CACHE_FILE_LOCATION = os.getenv("CACHE_LOCATION", str(Path(VAR_DIR, "cache").resolve())) CACHE_FILE_LOCATION = Path(CACHE_FILE_LOCATION).resolve() os.makedirs(CACHE_FILE_LOCATION, exist_ok=True) # SECURITY WARNING: keep the secret key used in production secret! Loading @@ -54,7 +57,7 @@ SECRET_KEY = ( DEBUG = True if os.getenv("JAMA_DEBUG") == "1" else False JAMA_IIIF_ENDPOINT = os.getenv("JAMA_IIIF_ENDPOINT") or "http://localhost/iip/IIIF=" JAMA_LOG_FILE = os.getenv("JAMA_LOG_FILE") or "{}/jama.log".format(BASE_DIR) JAMA_LOG_FILE = os.getenv("JAMA_LOG_FILE") or Path(VAR_DIR, "jama.log") ALLOWED_HOSTS = ["*"] CSRF_TRUSTED_ORIGINS = [JAMA_SITE[:-1]] Loading @@ -72,6 +75,8 @@ INSTALLED_APPS = [ "huey.contrib.djhuey", "authcli.apps.AuthcliConfig", "annotations.apps.AnnotationsConfig", "management.apps.ManagementConfig", "django_extensions", ] Loading @@ -82,11 +87,12 @@ if JAMA_USE_MODSHIB: MODSHIB_SHOW_LOCAL_LOGIN = ( True if os.getenv("MODSHIB_SHOW_LOCAL_LOGIN", "1") == "1" else False ) MODSHIB_SHOW_SSO_LOGIN = ( True if os.getenv("MODSHIB_SHOW_SSO_LOGIN", "0") == "1" else False ) INSTALLED_APPS.append("modshib.apps.ModshibConfig") SHOW_SQL = True if os.getenv("JAMA_SHOW_SQL", False) == "1" else False AUTO_REGISTER_APPS = [] STATICFILES_DIRS = [] for app in os.getenv("JAMA_APPS", "").split(","): Loading @@ -97,9 +103,6 @@ for app in os.getenv("JAMA_APPS", "").split(","): AUTO_REGISTER_APPS.append(app) if DEBUG: INSTALLED_APPS.append("django_extensions") MIDDLEWARE = [ "corsheaders.middleware.CorsMiddleware", "django.middleware.security.SecurityMiddleware", Loading Loading @@ -157,7 +160,7 @@ TEMPLATES = [ WSGI_APPLICATION = "jama.wsgi.application" if JAMA_SQLITE_DB_PATH: if JAMA_DB_ADAPTER == "sqlite": DATABASES = { "default": { "ENGINE": "django.db.backends.sqlite3", Loading Loading @@ -189,8 +192,6 @@ else: } } # Password validation # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { Loading @@ -207,8 +208,6 @@ AUTH_PASSWORD_VALIDATORS = [ }, ] # Internationalization # https://docs.djangoproject.com/en/3.1/topics/i18n/ LANGUAGE_CODE = "fr-fr" Loading @@ -220,8 +219,6 @@ USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.1/howto/static-files/ STATIC_ROOT = "{}/static/".format(BASE_DIR) STATIC_URL = JAMA_URL_BASE_PATH + "/static/" Loading Loading @@ -255,7 +252,7 @@ LOGGING = { HUEY = { "huey_class": "huey.SqliteHuey", # Huey implementation to use. "filename": Path(BASE_DIR, "var", "huey.db").resolve(), "filename": Path(VAR_DIR, "huey.db").resolve(), "results": True, # Store return values of tasks. "store_none": False, # If a task returns None, do not save to results. "immediate": False, # If DEBUG=True, run synchronously. Loading