added production settings, AWS support

This commit is contained in:
Sam
2021-02-19 12:49:56 +00:00
parent 4c9e3cd7a3
commit 785507e9dc
5 changed files with 73 additions and 6 deletions

View File

@@ -50,6 +50,7 @@ INSTALLED_APPS = [
'corsheaders', 'corsheaders',
'taggit_serializer', 'taggit_serializer',
'tagulous', 'tagulous',
'anymail',
# local apps # local apps
'core', 'core',

View File

@@ -24,8 +24,6 @@ DATABASES = {
MEDIA_URL = '/media/' MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR + '/../media/' MEDIA_ROOT = BASE_DIR + '/../media/'
GEOIP_PATH = BASE_DIR + '/../datasets/' GEOIP_PATH = BASE_DIR + '/../datasets/'
# MEDIA_ROOT = os.path.join(BASE_DIR, '/../media/')
# GEOIP_PATH = os.path.join(BASE_DIR, '/../datasets/')
# JWT SETTINGS # JWT SETTINGS
SIMPLE_JWT = { SIMPLE_JWT = {

View File

@@ -10,5 +10,65 @@ ALLOWED_HOSTS = ['127.0.0.1:8000', 'localhost']
# Databases configuration # Databases configuration
DATABASES = { 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),
}

View File

@@ -1,6 +1,12 @@
# rename file to .env and populate fields accordingly # rename file to .env and populate fields accordingly
DB_HOST = 'localhost' DB_HOST = ''
DB_PORT = '3306' DB_PORT = ''
DB_NAME = '' DB_NAME = ''
DB_USER = '' DB_USER = ''
DB_PASSWORD = '' 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 = ''

View File

@@ -14,3 +14,5 @@ drf-extra-fields==3.0.4
django-ipware==3.0.2 django-ipware==3.0.2
geoip2==4.1.0 geoip2==4.1.0
woocommerce==2.1.1 woocommerce==2.1.1
# required for production
django-anymail[amazon_ses]==8.2