diff --git a/back_latienda/settings/base.py b/back_latienda/settings/base.py index ccb5e4b..c726d42 100644 --- a/back_latienda/settings/base.py +++ b/back_latienda/settings/base.py @@ -50,6 +50,7 @@ INSTALLED_APPS = [ 'corsheaders', 'taggit_serializer', 'tagulous', + 'anymail', # local apps 'core', diff --git a/back_latienda/settings/development.py b/back_latienda/settings/development.py index 57d96b8..83cb871 100644 --- a/back_latienda/settings/development.py +++ b/back_latienda/settings/development.py @@ -24,8 +24,6 @@ DATABASES = { MEDIA_URL = '/media/' MEDIA_ROOT = BASE_DIR + '/../media/' GEOIP_PATH = BASE_DIR + '/../datasets/' -# MEDIA_ROOT = os.path.join(BASE_DIR, '/../media/') -# GEOIP_PATH = os.path.join(BASE_DIR, '/../datasets/') # JWT SETTINGS SIMPLE_JWT = { diff --git a/back_latienda/settings/production.py b/back_latienda/settings/production.py index 9b98d01..a475c71 100644 --- a/back_latienda/settings/production.py +++ b/back_latienda/settings/production.py @@ -10,5 +10,65 @@ ALLOWED_HOSTS = ['127.0.0.1:8000', 'localhost'] # Databases configuration DATABASES = { - + 'default': { + 'ENGINE': 'django.contrib.gis.db.backends.postgis', + 'NAME': os.getenv('DB_NAME'), + 'USER': os.getenv('DB_USER'), + 'PASSWORD': os.getenv('DB_PASSWORD'), + 'HOST': os.getenv('DB_HOST'), + 'PORT': os.getenv('DB_PORT'), + }, } + +# Django private storage - Amazon S3 +AWS_ACCESS_KEY_ID = os.getenv('AWS_ACCESS_KEY_ID_S3') +AWS_SECRET_ACCESS_KEY = os.getenv('AWS_SECRET_ACCESS_KEY_S3') +AWS_STORAGE_BUCKET_NAME = os.getenv('S3_BUCKET') +AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME +AWS_S3_OBJECT_PARAMETERS = { + 'CacheControl': 'max-age=86400', +} +AWS_S3_REGION_NAME = 'eu-west-1' +AWS_DEFAULT_ACL = None + +EMAIL_BACKEND = "anymail.backends.amazon_ses.EmailBackend" +DEFAULT_FROM_EMAIL = "no-reply@latienda.com" +SERVER_EMAIL = "mail-server@latienda.com" + +ANYMAIL = { + "AMAZON_SES_CLIENT_PARAMS": { + "aws_access_key_id": os.getenv("AWS_ACCESS_KEY_ID_SES"), + "aws_secret_access_key": os.getenv("AWS_SECRET_ACCESS_KEY_SES"), + "region_name": "eu-west-1", + }, +} + +# JWT SETTINGS +SIMPLE_JWT = { + 'ACCESS_TOKEN_LIFETIME': timedelta(minutes=60), + 'REFRESH_TOKEN_LIFETIME': timedelta(days=1), + 'ROTATE_REFRESH_TOKENS': False, + 'BLACKLIST_AFTER_ROTATION': True, + 'UPDATE_LAST_LOGIN': False, + + 'ALGORITHM': 'HS256', + 'SIGNING_KEY': SECRET_KEY, + 'VERIFYING_KEY': None, + 'AUDIENCE': None, + 'ISSUER': None, + + 'AUTH_HEADER_TYPES': ('Bearer',), + 'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION', + 'USER_ID_FIELD': 'id', + 'USER_ID_CLAIM': 'user_id', + + 'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',), + 'TOKEN_TYPE_CLAIM': 'token_type', + + 'JTI_CLAIM': 'jti', + + 'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp', + 'SLIDING_TOKEN_LIFETIME': timedelta(minutes=5), + 'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1), +} + diff --git a/example.env b/example.env index 29af674..93f7397 100644 --- a/example.env +++ b/example.env @@ -1,6 +1,12 @@ # rename file to .env and populate fields accordingly -DB_HOST = 'localhost' -DB_PORT = '3306' +DB_HOST = '' +DB_PORT = '' DB_NAME = '' DB_USER = '' -DB_PASSWORD = '' \ No newline at end of file +DB_PASSWORD = '' +# REQUIRED FOR PRODUCTION +AWS_ACCESS_KEY_ID_S3 = '' +AWS_SECRET_ACCESS_KEY_S3 = '' +S3_BUCKET='' +AWS_ACCESS_KEY_ID_SES = '' +AWS_SECRET_ACCESS_KEY_SES = '' \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index cb2021b..076e165 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,3 +14,5 @@ drf-extra-fields==3.0.4 django-ipware==3.0.2 geoip2==4.1.0 woocommerce==2.1.1 +# required for production +django-anymail[amazon_ses]==8.2