note: medifreek is under construction. search is slow and incomplete. this page is for testing only!

medifreek is a PubMed search tool and a personal project. The idea was to improve existing PubMed search by using modern search techniques, i.e. semantic search (also called vector search). Because of this, medifreek is flexible when it comes to keywords, synonyms, and common misspellings as well: cholecalciferol will bring up pages related to vitamin D and cacner will give you results close to cancer, because they're semantically similar.

You can bookmark articles. Bookmarks persist until you unbookmark them. They cannot be shared between devices.

The data is up-to-date as of mid-February 2025. medifreek only stores English articles.

Technical details

medifreek started off as a simple vector search engine for PubMed. There were others out there, but I thought this one could be better. The goal of medifreek was to be fast enough, but especially complete: better to wait a little longer than miss a result. If someone was looking for information on, say, "chronic serious chorioretinopathy", I wanted medifreek to pull up everything they could realistically want (at least that's on PubMeD) and put it all in one place.

And to be honest, PubMed itself already has a good search engine, so no shade do I throw. It's not surprising: they have millions of dollars and a team of geniuses. I have dozens of dollars and, let's say... casual experience with computers. But I like making things and the idea amused me, so I ran with it.

In building medifreek I quickly ran into design problems like:

Initially I went with the bog-standard sentence-transformers/all-MiniLM-L6-v2 model for encoding. I tried other models with slightly more success, but with ~40M articles, I had to be careful about space and compute as I'm on a rather tight financial leash and I'm also a bit of a nickelpinch. Ultimately, in reading about someone else's failed vector search project, I got tipped off to the existence of matryoshka (nesting-doll) models.

During training, Matryoshka models are encouraged to front-load the most important information by computing a loss against the full embedding but also against half, quarter, eighth embeddings, and so on. In trying to maximize the loss, the model tends to put the most important information in the first components of the vector. Once trained, when you compute an encoding and truncate it, you tend to truncate the least important dimensions. It's a bit like compressing music by cutting off the highest and lowest frequencies.

So this is nice for two reasons. The first is that whenever you have a large vector encoding, you get smaller ones for free. You can dynamically tailor the vectors as you need to to balance cost/performance. On the other hand, you can get better performance in a smaller vector from the outset. The model I chose outperforms most all-MiniLM-L6-v2 -- a 384 dimensional model -- at just 64 dimensions -- because it's trained on biomedical texts and puts all the important stuff up front.

To put this into context: 40M float32 vectors of 64 dimensions translates to ~10GB worth of storage. Hetzner puts that amount of storage at around $1 a month. If these were 384 dimensional vectors (like they are for all-MiniLM) that would be 60GB and they'd be 6x slower to scan. So this is a major improvement right from the get-go.

So now -- what to encode? Encoding the titles is straightforward enough: models do best at encoding text that's semantically similar, and titles generally express one main idea.

But encode too many different things and when you lump them together you end up with a vector which doesn't encode much of anything specific. So although I wanted to encode the entire abstracts, they tend to be, well, too abstract. Encoding by sentence would be nice, but that would be terabytes worth of vectors -- impossible to work with on a budget. So I went back and forth about the best way to do this, since a good PubMed search engine should index the information in the abstracts in one way or another.

It eventually occurred to me that abstracts are, most of the time, grouped into semantically-related chunks: background, materials and methods, conclusion, etc. And when they're not, the tend to be more succinct. So I decided to go in-between and chunk those pieces to compute the vector embeddings. This seems to work acceptably well. So those different pieces of the abstract are included in the search too.

At the beginning I looked into to renting GPUs from Hetzner and elsewhere, but couldn't justify the cost. So I sucked it up and had my little Hetzner machine with its 16vCPUs patiently churn out the embeddings. I honestly didn't know any better! But I got curious and experimented with the free GPUs on Google Colab notebooks. WOW! So that's why people talk about GPUs all the time. Seriously, I didn't know! That's when I found vast.ai and saw I could get a week of training done in just a few hours by renting some cheap GPUs in third-world countries and squeezing them until they bled. So I spent ten bucks for some GPU time instead of waiting two weeks and it was totally worth it.

And that's when ten bucks became twenty became thirty became... because you know, you really have no idea what you're doing when you're just starting out. It turns out that it's not so easy to just "compute" embeddings for 100M vectors! You have to send the data to some guy's machine in Bulgaria, process it, send it back, insert it -- all while milking the most out of your GPUs and, of course, picking the right embedding model. And you can never know if the embedding model you picked will actually work on your full, 100M-vector dataset until you try it out, and by then, you're down a fat wad and the guy in Bulgaria is already living large. So it's helpful to try to get things right the first time!

Back to what I was talking about: search. To make a long story short, we have the vectors. But even vector search doesn't get all the way there, so we use postgres's built-in text search with indexes just to make sure we'll get everything we could possibly want. Postgres handles this very nicely. It converts strings of texts into lists of tokens, then builds an inverted index: a map from each token to all the texts that contain it. (This is in contrast to scanning each document for a list of words). Then finding those texts is super fast -- you just hash the tokens in the search to find all the associated documents. In other words, it's O(1).

From there, once I have my candidates, I whip out the cross-encoder to finish the job. It ranks matches and does a better job than bi-encoders alone. But it's more costly, so it helps to do it after you've already narrowed down your results.

There are several good choices of index. Initially I preferred HNSW, but it loves RAM, and I can't afford that. So instead I went with DiskANN, which leverages the SDD to do a lot of the heavy lifting.

DJDT

Versions

Package Name Version
Django 5.1.6
Python 3.12.3
debug_toolbar Debug Toolbar 5.0.1

Time

Resource usage

Resource Value
User CPU time 5.976 msec
System CPU time 0.000 msec
Total CPU time 5.976 msec
Elapsed time 5.977 msec
Context switches 0 voluntary, 0 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

Settings from medifreek_project.settings

Setting Value
ABSOLUTE_URL_OVERRIDES {}
ADMINS []
ALLOWED_HOSTS ['*']
APPEND_SLASH True
AUTHENTICATION_BACKENDS ['django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS '********************'
AUTH_USER_MODEL 'auth.User'
BASE_DIR PosixPath('/var/www/medifreek/medifreek_project')
CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS 'default'
CACHE_MIDDLEWARE_KEY_PREFIX '********************'
CACHE_MIDDLEWARE_SECONDS 600
CSRF_COOKIE_AGE 31449600
CSRF_COOKIE_DOMAIN None
CSRF_COOKIE_HTTPONLY False
CSRF_COOKIE_NAME 'csrftoken'
CSRF_COOKIE_PATH '/'
CSRF_COOKIE_SAMESITE 'Lax'
CSRF_COOKIE_SECURE False
CSRF_FAILURE_VIEW 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS []
CSRF_USE_SESSIONS False
DATABASES {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql', 'HOST': 'localhost', 'NAME': 'medifreek', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '5432', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'postgres'}}
DATABASE_ROUTERS []
DATA_UPLOAD_MAX_MEMORY_SIZE 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS 1000
DATA_UPLOAD_MAX_NUMBER_FILES 100
DATETIME_FORMAT 'N j, Y, P'
DATETIME_INPUT_FORMATS ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']
DATE_FORMAT 'N j, Y'
DATE_INPUT_FORMATS ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DEBUG True
DEBUG_PROPAGATE_EXCEPTIONS False
DEBUG_TOOLBAR_CONFIG {'INTERCEPT_REDIRECTS': False}
DEBUG_TOOLBAR_PANELS ['debug_toolbar.panels.versions.VersionsPanel', 'debug_toolbar.panels.timer.TimerPanel', 'debug_toolbar.panels.settings.SettingsPanel', 'debug_toolbar.panels.headers.HeadersPanel', 'debug_toolbar.panels.request.RequestPanel', 'debug_toolbar.panels.sql.SQLPanel', 'debug_toolbar.panels.staticfiles.StaticFilesPanel', 'debug_toolbar.panels.templates.TemplatesPanel', 'debug_toolbar.panels.cache.CachePanel', 'debug_toolbar.panels.signals.SignalsPanel', 'debug_toolbar.panels.logging.LoggingPanel', 'debug_toolbar.panels.redirects.RedirectsPanel']
DECIMAL_SEPARATOR '.'
DEFAULT_AUTO_FIELD 'django.db.models.BigAutoField'
DEFAULT_CHARSET 'utf-8'
DEFAULT_EXCEPTION_REPORTER 'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FROM_EMAIL 'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE ''
DEFAULT_TABLESPACE ''
DISALLOWED_USER_AGENTS []
EMAIL_BACKEND 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST 'localhost'
EMAIL_HOST_PASSWORD '********************'
EMAIL_HOST_USER ''
EMAIL_PORT 25
EMAIL_SSL_CERTFILE None
EMAIL_SSL_KEYFILE '********************'
EMAIL_SUBJECT_PREFIX '[Django] '
EMAIL_TIMEOUT None
EMAIL_USE_LOCALTIME False
EMAIL_USE_SSL False
EMAIL_USE_TLS False
FILE_UPLOAD_DIRECTORY_PERMISSIONS None
FILE_UPLOAD_HANDLERS ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE 2621440
FILE_UPLOAD_PERMISSIONS 420
FILE_UPLOAD_TEMP_DIR None
FIRST_DAY_OF_WEEK 0
FIXTURE_DIRS []
FORCE_SCRIPT_NAME None
FORMAT_MODULE_PATH None
FORMS_URLFIELD_ASSUME_HTTPS False
FORM_RENDERER 'django.forms.renderers.DjangoTemplates'
IGNORABLE_404_URLS []
INSTALLED_APPS ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'medifreek', 'pgvector.django', 'debug_toolbar']
INTERNAL_IPS ('127.0.0.1',)
LANGUAGES [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('ckb', 'Central Kurdish (Sorani)'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]
LANGUAGES_BIDI ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']
LANGUAGE_CODE 'en-us'
LANGUAGE_COOKIE_AGE None
LANGUAGE_COOKIE_DOMAIN None
LANGUAGE_COOKIE_HTTPONLY False
LANGUAGE_COOKIE_NAME 'django_language'
LANGUAGE_COOKIE_PATH '/'
LANGUAGE_COOKIE_SAMESITE None
LANGUAGE_COOKIE_SECURE False
LOCALE_PATHS []
LOGGING {}
LOGGING_CONFIG 'logging.config.dictConfig'
LOGIN_REDIRECT_URL '/accounts/profile/'
LOGIN_URL '/accounts/login/'
LOGOUT_REDIRECT_URL None
MANAGERS []
MEDIA_ROOT ''
MEDIA_URL '/'
MESSAGE_STORAGE 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE ['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']
MIGRATION_MODULES {}
MONTH_DAY_FORMAT 'F j'
NUMBER_GROUPING 0
PASSWORD_HASHERS '********************'
PASSWORD_RESET_TIMEOUT '********************'
PGVECTOR_VECTOR_SIZE 384
PREPEND_WWW False
ROOT_URLCONF 'medifreek_project.urls'
SECRET_KEY '********************'
SECRET_KEY_FALLBACKS '********************'
SECURE_CONTENT_TYPE_NOSNIFF True
SECURE_CROSS_ORIGIN_OPENER_POLICY 'same-origin'
SECURE_HSTS_INCLUDE_SUBDOMAINS False
SECURE_HSTS_PRELOAD False
SECURE_HSTS_SECONDS 0
SECURE_PROXY_SSL_HEADER None
SECURE_REDIRECT_EXEMPT []
SECURE_REFERRER_POLICY 'same-origin'
SECURE_SSL_HOST None
SECURE_SSL_REDIRECT False
SERVER_EMAIL 'root@localhost'
SESSION_CACHE_ALIAS 'default'
SESSION_COOKIE_AGE 1209600
SESSION_COOKIE_DOMAIN None
SESSION_COOKIE_HTTPONLY True
SESSION_COOKIE_NAME 'sessionid'
SESSION_COOKIE_PATH '/'
SESSION_COOKIE_SAMESITE 'Lax'
SESSION_COOKIE_SECURE False
SESSION_ENGINE 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE False
SESSION_FILE_PATH None
SESSION_SAVE_EVERY_REQUEST False
SESSION_SERIALIZER 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE 'medifreek_project.settings'
SHORT_DATETIME_FORMAT 'm/d/Y P'
SHORT_DATE_FORMAT 'm/d/Y'
SIGNING_BACKEND 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS []
STATICFILES_DIRS [PosixPath('/var/www/medifreek/medifreek_project/medifreek/static')]
STATICFILES_FINDERS ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATIC_ROOT PosixPath('/var/www/medifreek/medifreek_project/staticfiles')
STATIC_URL '/static/'
STORAGES {'staticfiles': {'BACKEND': 'whitenoise.storage.CompressedManifestStaticFilesStorage'}}
TEMPLATES [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}]
TEST_NON_SERIALIZED_APPS []
TEST_RUNNER 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR ','
TIME_FORMAT 'P'
TIME_INPUT_FORMATS ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE 'UTC'
USE_I18N True
USE_THOUSAND_SEPARATOR False
USE_TZ True
USE_X_FORWARDED_HOST False
USE_X_FORWARDED_PORT False
WSGI_APPLICATION 'medifreek_project.wsgi.application'
X_FRAME_OPTIONS 'DENY'
YEAR_MONTH_FORMAT 'F Y'

Headers

Request headers

Key Value
Accept */*
Accept-Encoding gzip, br, zstd, deflate
Connection close
Host medifreek.org
Referer https://medifreek.org/about
User-Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
X-Forwarded-For 3.17.62.245
X-Forwarded-Proto https
X-Real-Ip 3.17.62.245

Response headers

Key Value
Content-Type text/html; charset=utf-8

WSGI environ

Since the WSGI environ inherits the environment of the server, only a significant subset is shown below.

Key Value
PATH_INFO /about/
QUERY_STRING
REMOTE_ADDR 127.0.0.1
REQUEST_METHOD GET
SCRIPT_NAME
SERVER_NAME 127.0.0.1
SERVER_PORT 8000
SERVER_PROTOCOL HTTP/1.0
SERVER_SOFTWARE gunicorn/23.0.0

Request

View information

View function Arguments Keyword arguments URL name
medifreek.views.about () {} about

No cookies

No session data

No GET data

No POST data

SQL queries from 0 connections

No SQL queries were recorded during this request.

Static files (200 found, 6 used)

Static file path

  1. /var/www/medifreek/medifreek_project/medifreek/static

Static file apps

  1. django.contrib.admin
  2. medifreek
  3. debug_toolbar

Static files

medifreek/images/favicon/favicon.ico
/var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/favicon.ico
medifreek/style.css
/var/www/medifreek/medifreek_project/medifreek/static/medifreek/style.css
medifreek/js/bookmark.js
/var/www/medifreek/medifreek_project/medifreek/static/medifreek/js/bookmark.js
medifreek/js/report-bug.js
/var/www/medifreek/medifreek_project/medifreek/static/medifreek/js/report-bug.js
medifreek/js/bookmarks-filter.js
/var/www/medifreek/medifreek_project/medifreek/static/medifreek/js/bookmarks-filter.js
medifreek/images/simplelogo.svg
/var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/simplelogo.svg

django.contrib.staticfiles.finders.FileSystemFinder (33 files)

Path Location
.DS_Store /var/www/medifreek/medifreek_project/medifreek/static/.DS_Store
medifreek/.DS_Store /var/www/medifreek/medifreek_project/medifreek/static/medifreek/.DS_Store
medifreek/style.css /var/www/medifreek/medifreek_project/medifreek/static/medifreek/style.css
medifreek/images/bookmark-filled.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-filled.svg
medifreek/images/bookmark-wavy-filled.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-wavy-filled.svg
medifreek/images/bookmark-instructions-2.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-instructions-2.png
medifreek/images/medifreek-new.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/medifreek-new.svg
medifreek/images/bookmark-empty-1px.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-empty-1px.svg
medifreek/images/.DS_Store /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/.DS_Store
medifreek/images/bookmark-empty.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-empty.svg
medifreek/images/bookmark-wavy.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-wavy.svg
medifreek/images/click-to-make-bookmarks.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/click-to-make-bookmarks.svg
medifreek/images/simplelogo.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/simplelogo.svg
medifreek/images/no-results.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/no-results.svg
medifreek/images/sci-hub-clean.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/sci-hub-clean.svg
medifreek/images/sci-hub.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/sci-hub.svg
medifreek/images/sci-hub-2.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/sci-hub-2.svg
medifreek/images/bookmark-filled-1px.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-filled-1px.svg
medifreek/images/pubmed.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/pubmed.svg
medifreek/images/medifreek-alpha.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/medifreek-alpha.svg
medifreek/images/medifreek.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/medifreek.svg
medifreek/images/bookmark-instructions.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-instructions.png
medifreek/images/medifreek_raw.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/medifreek_raw.svg
medifreek/images/favicon/favicon-32x32.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/favicon-32x32.png
medifreek/images/favicon/apple-touch-icon.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/apple-touch-icon.png
medifreek/images/favicon/android-chrome-512x512.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/android-chrome-512x512.png
medifreek/images/favicon/android-chrome-192x192.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/android-chrome-192x192.png
medifreek/images/favicon/favicon-16x16.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/favicon-16x16.png
medifreek/images/favicon/favicon.ico /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/favicon.ico
medifreek/images/favicon/site.webmanifest /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/site.webmanifest
medifreek/js/bookmarks-filter.js /var/www/medifreek/medifreek_project/medifreek/static/medifreek/js/bookmarks-filter.js
medifreek/js/bookmark.js /var/www/medifreek/medifreek_project/medifreek/static/medifreek/js/bookmark.js
medifreek/js/report-bug.js /var/www/medifreek/medifreek_project/medifreek/static/medifreek/js/report-bug.js

django.contrib.staticfiles.finders.AppDirectoriesFinder (167 files)

Path Location
admin/img/icon-unknown.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg
admin/img/icon-hidelink.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-hidelink.svg
admin/img/selector-icons.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg
admin/img/README.txt /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/README.txt
admin/img/icon-calendar.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg
admin/img/icon-addlink.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg
admin/img/icon-no.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-no.svg
admin/img/inline-delete.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg
admin/img/icon-deletelink.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg
admin/img/icon-viewlink.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg
admin/img/icon-changelink.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg
admin/img/calendar-icons.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg
admin/img/icon-unknown-alt.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg
admin/img/icon-alert.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg
admin/img/icon-clock.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg
admin/img/icon-yes.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg
admin/img/sorting-icons.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg
admin/img/search.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/search.svg
admin/img/tooltag-arrowright.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg
admin/img/LICENSE /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/LICENSE
admin/img/tooltag-add.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg
admin/img/gis/move_vertex_on.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg
admin/img/gis/move_vertex_off.svg /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg
admin/js/inlines.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/inlines.js
admin/js/SelectFilter2.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js
admin/js/actions.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/actions.js
admin/js/theme.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/theme.js
admin/js/urlify.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/urlify.js
admin/js/unusable_password_field.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/unusable_password_field.js
admin/js/change_form.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/change_form.js
admin/js/calendar.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/calendar.js
admin/js/cancel.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/cancel.js
admin/js/core.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/core.js
admin/js/SelectBox.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectBox.js
admin/js/filters.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/filters.js
admin/js/autocomplete.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/autocomplete.js
admin/js/jquery.init.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/jquery.init.js
admin/js/prepopulate_init.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js
admin/js/nav_sidebar.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js
admin/js/popup_response.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/popup_response.js
admin/js/prepopulate.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate.js
admin/js/vendor/xregexp/xregexp.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js
admin/js/vendor/xregexp/xregexp.min.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js
admin/js/vendor/xregexp/LICENSE.txt /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt
admin/js/vendor/jquery/jquery.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js
admin/js/vendor/jquery/jquery.min.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js
admin/js/vendor/jquery/LICENSE.txt /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt
admin/js/vendor/select2/select2.full.min.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js
admin/js/vendor/select2/LICENSE.md /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md
admin/js/vendor/select2/select2.full.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js
admin/js/vendor/select2/i18n/zh-TW.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js
admin/js/vendor/select2/i18n/ca.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js
admin/js/vendor/select2/i18n/de.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js
admin/js/vendor/select2/i18n/hu.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js
admin/js/vendor/select2/i18n/ro.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js
admin/js/vendor/select2/i18n/pt.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js
admin/js/vendor/select2/i18n/bg.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js
admin/js/vendor/select2/i18n/is.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js
admin/js/vendor/select2/i18n/pl.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js
admin/js/vendor/select2/i18n/tr.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js
admin/js/vendor/select2/i18n/az.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js
admin/js/vendor/select2/i18n/vi.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js
admin/js/vendor/select2/i18n/sr-Cyrl.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js
admin/js/vendor/select2/i18n/bs.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js
admin/js/vendor/select2/i18n/dsb.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js
admin/js/vendor/select2/i18n/sv.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js
admin/js/vendor/select2/i18n/sl.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js
admin/js/vendor/select2/i18n/id.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js
admin/js/vendor/select2/i18n/cs.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js
admin/js/vendor/select2/i18n/ka.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js
admin/js/vendor/select2/i18n/en.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js
admin/js/vendor/select2/i18n/nb.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js
admin/js/vendor/select2/i18n/sr.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js
admin/js/vendor/select2/i18n/fa.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js
admin/js/vendor/select2/i18n/eu.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js
admin/js/vendor/select2/i18n/sk.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js
admin/js/vendor/select2/i18n/hsb.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js
admin/js/vendor/select2/i18n/ne.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js
admin/js/vendor/select2/i18n/bn.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js
admin/js/vendor/select2/i18n/es.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js
admin/js/vendor/select2/i18n/tk.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js
admin/js/vendor/select2/i18n/nl.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js
admin/js/vendor/select2/i18n/el.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js
admin/js/vendor/select2/i18n/he.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js
admin/js/vendor/select2/i18n/sq.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js
admin/js/vendor/select2/i18n/da.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js
admin/js/vendor/select2/i18n/km.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js
admin/js/vendor/select2/i18n/af.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js
admin/js/vendor/select2/i18n/ja.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js
admin/js/vendor/select2/i18n/lv.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js
admin/js/vendor/select2/i18n/hy.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js
admin/js/vendor/select2/i18n/gl.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js
admin/js/vendor/select2/i18n/zh-CN.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js
admin/js/vendor/select2/i18n/ps.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js
admin/js/vendor/select2/i18n/fi.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js
admin/js/vendor/select2/i18n/ar.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js
admin/js/vendor/select2/i18n/ru.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js
admin/js/vendor/select2/i18n/et.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js
admin/js/vendor/select2/i18n/pt-BR.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js
admin/js/vendor/select2/i18n/it.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js
admin/js/vendor/select2/i18n/ko.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js
admin/js/vendor/select2/i18n/mk.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js
admin/js/vendor/select2/i18n/hi.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js
admin/js/vendor/select2/i18n/ms.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js
admin/js/vendor/select2/i18n/th.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js
admin/js/vendor/select2/i18n/lt.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js
admin/js/vendor/select2/i18n/fr.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js
admin/js/vendor/select2/i18n/hr.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js
admin/js/vendor/select2/i18n/uk.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js
admin/js/admin/RelatedObjectLookups.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js
admin/js/admin/DateTimeShortcuts.js /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js
admin/css/forms.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/forms.css
admin/css/dashboard.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dashboard.css
admin/css/rtl.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/rtl.css
admin/css/widgets.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/widgets.css
admin/css/changelists.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/changelists.css
admin/css/unusable_password_field.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/unusable_password_field.css
admin/css/responsive_rtl.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css
admin/css/autocomplete.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/autocomplete.css
admin/css/responsive.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive.css
admin/css/dark_mode.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dark_mode.css
admin/css/base.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/base.css
admin/css/nav_sidebar.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css
admin/css/login.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/login.css
admin/css/vendor/select2/select2.min.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css
admin/css/vendor/select2/LICENSE-SELECT2.md /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md
admin/css/vendor/select2/select2.css /var/www/medifreek/.venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css
.DS_Store /var/www/medifreek/medifreek_project/medifreek/static/.DS_Store
medifreek/.DS_Store /var/www/medifreek/medifreek_project/medifreek/static/medifreek/.DS_Store
medifreek/style.css /var/www/medifreek/medifreek_project/medifreek/static/medifreek/style.css
medifreek/images/bookmark-filled.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-filled.svg
medifreek/images/bookmark-wavy-filled.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-wavy-filled.svg
medifreek/images/bookmark-instructions-2.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-instructions-2.png
medifreek/images/medifreek-new.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/medifreek-new.svg
medifreek/images/bookmark-empty-1px.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-empty-1px.svg
medifreek/images/.DS_Store /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/.DS_Store
medifreek/images/bookmark-empty.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-empty.svg
medifreek/images/bookmark-wavy.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-wavy.svg
medifreek/images/click-to-make-bookmarks.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/click-to-make-bookmarks.svg
medifreek/images/simplelogo.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/simplelogo.svg
medifreek/images/no-results.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/no-results.svg
medifreek/images/sci-hub-clean.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/sci-hub-clean.svg
medifreek/images/sci-hub.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/sci-hub.svg
medifreek/images/sci-hub-2.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/sci-hub-2.svg
medifreek/images/bookmark-filled-1px.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-filled-1px.svg
medifreek/images/pubmed.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/pubmed.svg
medifreek/images/medifreek-alpha.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/medifreek-alpha.svg
medifreek/images/medifreek.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/medifreek.svg
medifreek/images/bookmark-instructions.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/bookmark-instructions.png
medifreek/images/medifreek_raw.svg /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/medifreek_raw.svg
medifreek/images/favicon/favicon-32x32.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/favicon-32x32.png
medifreek/images/favicon/apple-touch-icon.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/apple-touch-icon.png
medifreek/images/favicon/android-chrome-512x512.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/android-chrome-512x512.png
medifreek/images/favicon/android-chrome-192x192.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/android-chrome-192x192.png
medifreek/images/favicon/favicon-16x16.png /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/favicon-16x16.png
medifreek/images/favicon/favicon.ico /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/favicon.ico
medifreek/images/favicon/site.webmanifest /var/www/medifreek/medifreek_project/medifreek/static/medifreek/images/favicon/site.webmanifest
medifreek/js/bookmarks-filter.js /var/www/medifreek/medifreek_project/medifreek/static/medifreek/js/bookmarks-filter.js
medifreek/js/bookmark.js /var/www/medifreek/medifreek_project/medifreek/static/medifreek/js/bookmark.js
medifreek/js/report-bug.js /var/www/medifreek/medifreek_project/medifreek/static/medifreek/js/report-bug.js
debug_toolbar/js/history.js /var/www/medifreek/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/history.js
debug_toolbar/js/redirect.js /var/www/medifreek/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/redirect.js
debug_toolbar/js/toolbar.js /var/www/medifreek/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js
debug_toolbar/js/timer.js /var/www/medifreek/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/timer.js
debug_toolbar/js/utils.js /var/www/medifreek/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/utils.js
debug_toolbar/css/toolbar.css /var/www/medifreek/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css
debug_toolbar/css/print.css /var/www/medifreek/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/css/print.css

Templates (2 rendered)

Template paths

None

Templates

medifreek/about.html
/var/www/medifreek/medifreek_project/medifreek/templates/medifreek/about.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'csrf_token': '<SimpleLazyObject: <function csrf.<locals>._get_val at ' '0x746b79835760>>', 'debug': True, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/about/'>>, 'perms': PermWrapper(<SimpleLazyObject: <function AuthenticationMiddleware.process_request.<locals>.<lambda> at 0x746b7993bec0>>), 'request': '<<request>>', 'sql_queries': <function debug.<locals>.<lambda> at 0x746b7986e840>, 'user': '<SimpleLazyObject: <function ' 'AuthenticationMiddleware.process_request.<locals>.<lambda> at ' '0x746b7993bec0>>'}
medifreek/base.html
/var/www/medifreek/medifreek_project/medifreek/templates/medifreek/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'csrf_token': '<SimpleLazyObject: <function csrf.<locals>._get_val at ' '0x746b79835760>>', 'debug': True, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/about/'>>, 'perms': PermWrapper(<SimpleLazyObject: <function AuthenticationMiddleware.process_request.<locals>.<lambda> at 0x746b7993bec0>>), 'request': '<<request>>', 'sql_queries': <function debug.<locals>.<lambda> at 0x746b7986e840>, 'user': '<SimpleLazyObject: <function ' 'AuthenticationMiddleware.process_request.<locals>.<lambda> at ' '0x746b7993bec0>>'}

Context processors

django.template.context_processors.csrf
Toggle context {'csrf_token': <SimpleLazyObject: <function csrf.<locals>._get_val at 0x746b79835760>>}
django.template.context_processors.debug
Toggle context {'debug': True, 'sql_queries': <function debug.<locals>.<lambda> at 0x746b7986e840>}
django.template.context_processors.request
Toggle context {'request': <WSGIRequest: GET '/about/'>}
django.contrib.auth.context_processors.auth
Toggle context {'user': <SimpleLazyObject: <function AuthenticationMiddleware.process_request.<locals>.<lambda> at 0x746b7993bec0>>, 'perms': PermWrapper(<SimpleLazyObject: <function AuthenticationMiddleware.process_request.<locals>.<lambda> at 0x746b7993bec0>>)}
django.contrib.messages.context_processors.messages
Toggle context {'messages': <FallbackStorage: request=<WSGIRequest: GET '/about/'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}}

Cache calls from 1 backend

Summary

Total calls Total time Cache hits Cache misses
0 0 ms 0 0

Commands

add get set get_or_set touch delete clear get_many set_many delete_many has_key incr decr incr_version decr_version
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Signals

Signal Receivers
class_prepared
connection_created
got_request_exception
m2m_changed
post_delete
post_init
post_migrate create_permissions, create_contenttypes
post_save
pre_delete
pre_init
pre_migrate inject_rename_contenttypes_operations
pre_save
request_finished close_old_connections, close_caches, reset_urlconf
request_started reset_queries, close_old_connections
setting_changed reset_cache, clear_cache_handlers, update_installed_apps, update_connections_time_zone, clear_routers_cache, reset_template_engines, storages_changed, clear_serializers_cache, language_changed, localize_settings_changed, complex_setting_changed, root_urlconf_changed, static_storage_changed, static_finders_changed, form_renderer_changed, auth_password_validators_changed, user_model_swapped, update_toolbar_config, reset_hashers, Options.setting_changed, update_level_tags, clear_caches, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, CompressedManifestStaticFilesStorage._clear_cached_properties, DebugStaticFilesStorage._clear_cached_properties