diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..12887dd3 --- /dev/null +++ b/.env.example @@ -0,0 +1,21 @@ +# DEBUG=True +ALLOWED_HOSTS=* +PORT=8000 +LANG=ru_RU.UTF-8 +POSTGRES_DB=lilcity +POSTGRES_USER=lilcity +POSTGRES_PASSWORD=GPVs/E/{5&qe +PGDATA=/var/lib/postgresql/data/pgdata +DJANGO_SETTINGS_MODULE=project.settings +DATABASE_SERVICE_HOST=db +SECRET_KEY=jelm*91lj(_-o20+6^a+bgv!4s6e_efry^#+f#=1ak&s1xr-2j +MAILGUN_API_KEY=key-ec6af2d43d031d59bff6b1c8fb9390cb +MAILGUN_SENDER_DOMAIN=mail.9ev.ru +DEFAULT_FROM_EMAIL=postmaster@mail.9ev.ru +TWILIO_ACCOUNT=ACdf4a96b776cc764bc3ec0f0e136ba550 +TWILIO_TOKEN=559a6b1fce121759c9af2dcbb3f755ea +TWILIO_FROM_PHONE=+37128914409 +PAYMENTWALL_APP_KEY=d6f02b90cf6b16220932f4037578aff7 +PAYMENTWALL_SECRET_KEY=4ea515bf94e34cf28646c2e12a7b8707 +MIXPANEL_TOKEN=79bd6bfd98667ed977737e6810b8abcd +RAVEN_DSN=https://bff536c4d71c4166afb91f83b9f73d55:ca47ad791a53480b9d40a85a26abf141@sentry.io/306843 diff --git a/docker-compose.yml b/docker-compose.yml index b3a45af1..4de5b13a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,12 +3,8 @@ version: '3' services: db: image: postgres:10-alpine - environment: - - LANG=ru_RU.UTF-8 - - POSTGRES_DB=lilcity - - POSTGRES_USER=lilcity - - POSTGRES_PASSWORD=GPVs/E/{5&qe - - PGDATA=/var/lib/postgresql/data/pgdata + env_file: + - .env ports: - "127.0.0.1:5432:5432" volumes: @@ -27,9 +23,8 @@ services: volumes: - .:/lilcity command: bash -c "python manage.py collectstatic --no-input && python manage.py migrate && python manage.py loaddata /lilcity/apps/*/fixtures/*.json && gunicorn --workers=4 project.wsgi --bind=0.0.0.0:8000 --worker-class=gthread --reload" - environment: - - DJANGO_SETTINGS_MODULE=project.settings - - DATABASE_SERVICE_HOST=db + env_file: + - .env ports: - "127.0.0.1:${PORT}:8000" depends_on: @@ -45,9 +40,8 @@ services: volumes: - .:/lilcity command: bash -c "celery worker -A project -B" - environment: - - DJANGO_SETTINGS_MODULE=project.settings - - DATABASE_SERVICE_HOST=db + env_file: + - .env depends_on: - db - redis diff --git a/project/settings.py b/project/settings.py index 495e686a..9513b463 100644 --- a/project/settings.py +++ b/project/settings.py @@ -1,4 +1,4 @@ -""" +''' Django settings for project project. Generated by 'django-admin startproject' using Django 2.0.1. @@ -8,7 +8,7 @@ https://docs.djangoproject.com/en/2.0/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/2.0/ref/settings/ -""" +''' import os import raven @@ -25,12 +25,12 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'jelm*91lj(_-o20+6^a+bgv!4s6e_efry^#+f#=1ak&s1xr-2j' +SECRET_KEY = os.getenv('SECRET_KEY', 'jelm*91lj(_-o20+6^a+bgv!4s6e_efry^#+f#=1ak&s1xr-2j') # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True +DEBUG = os.getenv('DEBUG', False) -ALLOWED_HOSTS = ["*"] # fixme: production mode +ALLOWED_HOSTS = os.getenv('ALLOWED_HOSTS').split(',') or ['*'] # Application definition @@ -109,9 +109,9 @@ WSGI_APPLICATION = 'project.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', - 'NAME': 'lilcity', - 'USER': 'lilcity', - 'PASSWORD': 'GPVs/E/{5&qe', + 'NAME': os.getenv('POSTGRES_DB', 'lilcity'), + 'USER': os.getenv('POSTGRES_USER', 'lilcity'), + 'PASSWORD': os.getenv('POSTGRES_PASSWORD', 'GPVs/E/{5&qe'), 'HOST': os.getenv('DATABASE_SERVICE_HOST', '127.0.0.1'), 'PORT': 5432, } @@ -156,32 +156,32 @@ USE_TZ = True # https://docs.djangoproject.com/en/2.0/howto/static-files/ STATIC_URL = '/static/' -STATIC_ROOT = os.path.join(BASE_DIR, "static") +STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATICFILES_DIRS = [ - os.path.join(BASE_DIR, "web/build"), + os.path.join(BASE_DIR, 'web/build'), ] MEDIA_URL = '/media/' -MEDIA_ROOT = os.path.join(BASE_DIR, "media") +MEDIA_ROOT = os.path.join(BASE_DIR, 'media') LOGIN_URL = '/' # Email # https://github.com/anymail/django-anymail ANYMAIL = { - "MAILGUN_API_KEY": "key-ec6af2d43d031d59bff6b1c8fb9390cb", - "MAILGUN_SENDER_DOMAIN": 'mail.9ev.ru', + 'MAILGUN_API_KEY': os.getenv('MAILGUN_API_KEY', 'key-ec6af2d43d031d59bff6b1c8fb9390cb'), + 'MAILGUN_SENDER_DOMAIN': os.getenv('MAILGUN_SENDER_DOMAIN', 'mail.9ev.ru'), } -EMAIL_BACKEND = "anymail.backends.mailgun.EmailBackend" -DEFAULT_FROM_EMAIL = "postmaster@mail.9ev.ru" +EMAIL_BACKEND = 'anymail.backends.mailgun.EmailBackend' +DEFAULT_FROM_EMAIL = os.getenv('DEFAULT_FROM_EMAIL', 'postmaster@mail.9ev.ru') # SMS # https://github.com/twilio/twilio-python -TWILIO_ACCOUNT = 'ACdf4a96b776cc764bc3ec0f0e136ba550' -TWILIO_TOKEN = '559a6b1fce121759c9af2dcbb3f755ea' -TWILIO_FROM_PHONE = '+37128914409' +TWILIO_ACCOUNT = os.getenv('TWILIO_ACCOUNT', 'ACdf4a96b776cc764bc3ec0f0e136ba550') +TWILIO_TOKEN = os.getenv('TWILIO_TOKEN', '559a6b1fce121759c9af2dcbb3f755ea') +TWILIO_FROM_PHONE = os.getenv('TWILIO_FROM_PHONE', '+37128914409') ACTIVE_LINK_STRICT = True @@ -229,11 +229,11 @@ except ImportError: pass else: Paymentwall.set_api_type(Paymentwall.API_GOODS) - Paymentwall.set_app_key('d6f02b90cf6b16220932f4037578aff7') - Paymentwall.set_secret_key('4ea515bf94e34cf28646c2e12a7b8707') + Paymentwall.set_app_key(os.getenv('PAYMENTWALL_APP_KEY', 'd6f02b90cf6b16220932f4037578aff7')) + Paymentwall.set_secret_key(os.getenv('PAYMENTWALL_SECRET_KEY', '4ea515bf94e34cf28646c2e12a7b8707')) # Mixpanel settings -MIX_TOKEN = '79bd6bfd98667ed977737e6810b8abcd' +MIX_TOKEN = os.getenv('MIXPANEL_TOKEN', '79bd6bfd98667ed977737e6810b8abcd') # CORS settings @@ -248,7 +248,7 @@ SWAGGER_SETTINGS = { # Raven settings RAVEN_CONFIG = { - 'dsn': 'https://bff536c4d71c4166afb91f83b9f73d55:ca47ad791a53480b9d40a85a26abf141@sentry.io/306843', + 'dsn': os.getenv('RAVEN_DSN', 'https://bff536c4d71c4166afb91f83b9f73d55:ca47ad791a53480b9d40a85a26abf141@sentry.io/306843'), # If you are using git, you can also automatically configure the # release based on the git info. 'release': raven.fetch_git_sha(BASE_DIR),