Skip to content

Commit

Permalink
gitignor_update
Browse files Browse the repository at this point in the history
  • Loading branch information
Lungsangg committed Jan 11, 2024
1 parent 859afd0 commit 32c7f1a
Show file tree
Hide file tree
Showing 2 changed files with 321 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ node_modules

# Sefaria Local Settings files #
################################
/sefaria/local_settings.py
# /sefaria/local_settings.py

# Site specific templates and urls #
####################################
Expand Down
320 changes: 320 additions & 0 deletions sefaria/local_settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,320 @@
# An example of settings needed in a local_settings.py file.
# copy this file to sefaria/local_settings.py and provide local info to run.
from datetime import timedelta
import structlog
import sefaria.system.logging as sefaria_logging
import os

################
# YOU ONLY NEED TO CHANGE "NAME" TO THE PATH OF YOUR SQLITE DATA FILE
# If the db.sqlite file does not exist, simply list a path where it can be created.
# You can set the path to /path/to/Sefaria-Project/db.sqlite, since we git-ignore all sqlite files
# (you do not need to create the empty db.sqlite file, as Django will handle that later)
# ########################################
"""
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'sefaria', # Path to where you would like the database to be created including a file name, or path to an existing database file if using sqlite3.
'USER': 'sefaria', # Not used with sqlite3.
'PASSWORD': os.getenv("POSTGRESQL_PASSWORD", "POSTGRESQL_PASSWORD not defined!"), # Not used with sqlite3.
'HOST': os.getenv("POSTGRESQL_HOST", "POSTGRESQL_HOST not defined"), # Set to empty string for localhost. Not used with sqlite3.
'PORT': '5432', # Set to empty string for default. Not used with sqlite3.
}
}
"""

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.getenv("POSTGRESQL_DATABASE_NAME", "POSTGRESQL_DATABASE_NAME not defined!"),
'USER': os.getenv("POSTGRESQL_USER", "POSTGRESQL_USER not defined!"),
'PASSWORD': os.getenv("POSTGRESQL_PASSWORD", "POSTGRESQL_PASSWORD not defined!"),
'HOST': os.getenv("POSTGRESQL_HOST", "POSTGRESQL_HOST not defined!"),
# os.getenv("POSTGRESQL_PORT", "POSTGRESQL_PORT not defined!"),
'PORT': 5432
}
}

# Map domain to an interface language that the domain should be pinned to.
# Leave as {} to prevent language pinning, in which case one domain can serve either Hebrew or English
DOMAIN_LANGUAGES = {}


################ These are things you can change! ###########################################################################
SILENCED_SYSTEM_CHECKS = ['captcha.recaptcha_test_key_error']

ADMINS = (
('Your Name', '[email protected]'),
)
PINNED_IPCOUNTRY = "IL" # change if you want parashat hashavua to be diaspora.

""" These are some examples of possible caches. more here: https://docs.djangoproject.com/en/1.11/topics/cache/"""
CACHES = {
"shared": {
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
},
"default": {
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
},
}
"""
CACHES = {
'shared': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/home/ephraim/www/sefaria/django_cache/',
},
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/home/ephraim/www/sefaria/django_cache/',
}
}
"""

SESSION_CACHE_ALIAS = "default"
USER_AGENTS_CACHE = 'default'
SHARED_DATA_CACHE_ALIAS = 'shared'

"""THIS CACHE DEFINITION IS FOR USE WITH NODE AND SERVER SIDE RENDERING"""
CACHES = {
"shared": {
"BACKEND": "django_redis.cache.RedisCache",
# "redis://127.0.0.1:6379/1", #The URI used to look like this "127.0.0.1:6379:0"
"LOCATION": os.getenv("REDIS_HOST", "REDIS_HOST not defined"),
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
# "SERIALIZER": "django_redis.serializers.json.JSONSerializer", #this is the default, we override it to ensure_ascii=False
"SERIALIZER": "sefaria.system.serializers.JSONSerializer",
},
"TIMEOUT": None,
},
"default": {
"BACKEND": "django_redis.cache.RedisCache",
# "redis://127.0.0.1:6379/0", #The URI used to look like this "127.0.0.1:6379:0"
"LOCATION": os.getenv("REDIS_HOST", "REDIS_HOST not defined!"),
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"PASSWORD": os.getenv("REDIS_PASSWORD", ""), # Optional
},
"TIMEOUT": 60 * 60 * 24 * 30,
},
}

SITE_PACKAGE = "sites.sefaria"


################ These are things you DO NOT NEED to touch unless you know what you are doing. ##############################
DEBUG = os.getenv("DEBUG", True)

REMOTE_HOSTS = os.getenv('REMOTE_HOSTS', 'staging.pecha.org').replace(" ", "")

LOCAL_HOSTS = [
'localhost',
'127.0.0.1',
"0.0.0.0",
'[::1]'
]

ALLOWED_HOSTS = REMOTE_HOSTS.split(',') + LOCAL_HOSTS

OFFLINE = False
DOWN_FOR_MAINTENANCE = False
MAINTENANCE_MESSAGE = ""

# GLOBAL_INTERRUPTING_MESSAGE = None
"""
GLOBAL_INTERRUPTING_MESSAGE = {
"name": "messageName",
"repetition": 1,
"is_fundraising": True,
"style": "modal" # "modal" or "banner"
"condition": {"returning_only": True}
}
"""


STRAPI_LOCATION = None
STRAPI_PORT = None
SENTRY_DSN = None
CLIENT_SENTRY_DSN = None


MANAGERS = ADMINS

SECRET_KEY = 'SECRET_KEY'


EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

# Example using anymail, replaces block above
# EMAIL_BACKEND = 'anymail.backends.mandrill.EmailBackend'
# DEFAULT_FROM_EMAIL = "Sefaria <[email protected]>"
# ANYMAIL = {
# "MANDRILL_API_KEY": "your api key",
# }

MONGO_HOST = os.getenv("MONGO_HOST", "ENV_NAME not defined")
MONGO_PORT = 27017 # os.getenv("MONGO_PORT", "ENV_NAME not defined")
# Name of the MongoDB database to use.
SEFARIA_DB = os.getenv("MONGO_DATABASE_NAME", "ENV_NAME not defined")
# Leave user and password blank if not using Mongo Auth
SEFARIA_DB_USER = ''
SEFARIA_DB_PASSWORD = ''
APSCHEDULER_NAME = "apscheduler"

# ElasticSearch server
SEARCH_ADMIN = "http://localhost:9200"
# Whether to send texts and source sheet to Search Host for indexing after save
SEARCH_INDEX_ON_SAVE = False
SEARCH_INDEX_NAME_TEXT = 'text' # name of the ElasticSearch index to use
SEARCH_INDEX_NAME_SHEET = 'sheet'

# Node Server
USE_NODE = False
NODE_HOST = "http://localhost:4040"
NODE_TIMEOUT = 10

SEFARIA_DATA_PATH = '/path/to/your/Sefaria-Data' # used for Data
SEFARIA_EXPORT_PATH = '/path/to/your/Sefaria-Data/export' # used for exporting texts


# DafRoulette server
RTC_SERVER = '' # Root URL/IP of the server

GOOGLE_GTAG = 'your gtag id here'
GOOGLE_TAG_MANAGER_CODE = 'you tag manager code here'

HOTJAR_ID = None

# Determine which CRM connection implementations to use
CRM_TYPE = "NONE" # "SALESFORCE" || "NATIONBUILDER" || "NONE"

# Integration with a NationBuilder list
NATIONBUILDER_SLUG = ""
NATIONBUILDER_TOKEN = ""
NATIONBUILDER_CLIENT_ID = ""
NATIONBUILDER_CLIENT_SECRET = ""

# Integration with Salesforce
SALESFORCE_BASE_URL = ""
SALESFORCE_CLIENT_ID = ""
SALESFORCE_CLIENT_SECRET = ""

# Issue bans to Varnish on update.
USE_VARNISH = False
FRONT_END_URL = "http://localhost:8000" # This one wants the http://
VARNISH_ADM_ADDR = "localhost:6082" # And this one doesn't
VARNISH_HOST = "localhost"
VARNISH_FRNT_PORT = 8040
VARNISH_SECRET = "/etc/varnish/secret"
# Use ESI for user box in header.
USE_VARNISH_ESI = False

# Prevent modification of Index records
DISABLE_INDEX_SAVE = False
DISABLE_INDEX_SAVE = False

# Turns off search autocomplete suggestions, which are reinitialized on every server reload
# which can be annoying for local development.
DISABLE_AUTOCOMPLETER = False

# Turns on loading of machine learning models to run linker
ENABLE_LINKER = False

# Caching with Cloudflare
CLOUDFLARE_ZONE = ""
CLOUDFLARE_EMAIL = ""
CLOUDFLARE_TOKEN = ""

# Multiserver
MULTISERVER_ENABLED = False
MULTISERVER_REDIS_SERVER = "127.0.0.1"
MULTISERVER_REDIS_PORT = 6379
MULTISERVER_REDIS_DB = 0
MULTISERVER_REDIS_EVENT_CHANNEL = "msync" # Message queue on Redis
MULTISERVER_REDIS_CONFIRM_CHANNEL = "mconfirm" # Message queue on Redis

# OAUTH these fields dont need to be filled in. they are only required for oauth2client to __init__ successfully
GOOGLE_OAUTH2_CLIENT_ID = ""
GOOGLE_OAUTH2_CLIENT_SECRET = ""
# This is the field that is actually used
GOOGLE_OAUTH2_CLIENT_SECRET_FILEPATH = ""

GOOGLE_APPLICATION_CREDENTIALS_FILEPATH = ""

GEOIP_DATABASE = 'data/geoip/GeoLiteCity.dat'
GEOIPV6_DATABASE = 'data/geoip/GeoLiteCityv6.dat'

RAW_REF_MODEL_BY_LANG_FILEPATH = {
"en": None,
"he": None
}

RAW_REF_PART_MODEL_BY_LANG_FILEPATH = {
"en": None,
"he": None
}

# Simple JWT
SIMPLE_JWT = {
'ACCESS_TOKEN_LIFETIME': timedelta(days=1),
'REFRESH_TOKEN_LIFETIME': timedelta(days=90),
'ROTATE_REFRESH_TOKENS': True,
'SIGNING_KEY': 'a signing key: at least 256 bits',
}

# Key which identifies the Sefaria app as opposed to a user
# using our API outside of the app. Mainly for registration
MOBILE_APP_KEY = "MOBILE_APP_KEY"

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
"json_formatter": {
"()": structlog.stdlib.ProcessorFormatter,
"processor": structlog.processors.JSONRenderer(),
},
},
'handlers': {
'default': {
"class": "logging.StreamHandler",
"formatter": "json_formatter",
},
},
'loggers': {
'': {
'handlers': ['default'],
'propagate': False,
},
'django': {
'handlers': ['default'],
'propagate': False,
},
'django.request': {
'handlers': ['default'],
'propagate': False,
},
}
}

structlog.configure(
processors=[
structlog.stdlib.filter_by_level,
structlog.processors.TimeStamper(fmt="iso"),
structlog.stdlib.add_logger_name,
sefaria_logging.add_severity,
structlog.stdlib.PositionalArgumentsFormatter(),
structlog.processors.StackInfoRenderer(),
sefaria_logging.log_exception_info,
structlog.processors.UnicodeDecoder(),
sefaria_logging.decompose_request_info,
structlog.stdlib.ProcessorFormatter.wrap_for_formatter,
],
context_class=structlog.threadlocal.wrap_dict(dict),
logger_factory=structlog.stdlib.LoggerFactory(),
wrapper_class=structlog.stdlib.BoundLogger,
cache_logger_on_first_use=True,
)

0 comments on commit 32c7f1a

Please sign in to comment.