From b4e68a6bf12e4eaae7daa69322d42aa5d421c813 Mon Sep 17 00:00:00 2001 From: Nathan Victor Date: Mon, 31 Jul 2017 08:57:33 -0500 Subject: [PATCH 01/38] Update 404 with how to link (#1244) --- docs/live-reloading-and-sass-compilation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/live-reloading-and-sass-compilation.rst b/docs/live-reloading-and-sass-compilation.rst index 5996bc327..7f978ede5 100644 --- a/docs/live-reloading-and-sass-compilation.rst +++ b/docs/live-reloading-and-sass-compilation.rst @@ -21,4 +21,4 @@ The base app will now run as it would with the usual ``manage.py runserver`` but To get live reloading to work you'll probably need to install an `appropriate browser extension`_ -.. _appropriate browser extension: http://feedback.livereload.com/knowledgebase/articles/86242-how-do-i-install-and-use-the-browser-extensions- +.. _appropriate browser extension: http://livereload.com/extensions/ From ffedad91034b68a28b058a4efc93331dbeee53af Mon Sep 17 00:00:00 2001 From: Ben Warren Date: Tue, 1 Aug 2017 13:06:07 -0400 Subject: [PATCH 02/38] Add project generation option docs (#1267) * Add project generation option docs * Alter wording --- docs/project-generation-options.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/project-generation-options.rst b/docs/project-generation-options.rst index 5ada6a3fa..8db3077dc 100644 --- a/docs/project-generation-options.rst +++ b/docs/project-generation-options.rst @@ -75,6 +75,9 @@ js_task_runner [1] use_lets_encrypt [n] Use `Let's Encrypt`_ as the certificate authority for this project. +custom_bootstrap_compilation [n] + If you use Grunt, scaffold out recompiling Bootstrap as as task. (Useful for letting you change Bootstrap variables in real time.) Consult project README for more details. + open_source_license [1] Select a software license for the project. The choices are: From 90174324210e778f143e877b16a30fbc06789f4e Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Tue, 1 Aug 2017 22:34:09 +0100 Subject: [PATCH 03/38] Update django-storages fixes #998 The -redux project is now the official project, update to the latest version --- {{cookiecutter.project_slug}}/requirements/production.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt index bdb9da9a2..743ee6292 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -17,7 +17,7 @@ gunicorn==19.7.1 # Static and Media Storage # ------------------------------------------------ boto==2.48.0 -django-storages-redux==1.3.3 +django-storages==1.6.5 {% if cookiecutter.use_whitenoise != 'y' -%} Collectfast==0.5.2 {%- endif %} From 4e9f18b52dbdd1aaaf277d42f43c1d97be593f79 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Wed, 2 Aug 2017 00:51:31 +0100 Subject: [PATCH 04/38] Add @browniebroke to CONTRIBUTORS.rst --- CONTRIBUTORS.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst index 60a299759..f57280e5e 100644 --- a/CONTRIBUTORS.rst +++ b/CONTRIBUTORS.rst @@ -63,7 +63,8 @@ Listed in alphabetical order. Bo Lopker `@blopker`_ Bouke Haarsma Brent Payne `@brentpayne`_ @brentpayne - Burhan Khalid `@burhan`_ @burhan + Bruno Alla               `@browniebroke`_ @_BrunoAlla + Burhan Khalid            `@burhan`_                   @burhan Catherine Devlin `@catherinedevlin`_ Cédric Gaspoz `@cgaspoz`_ Chris Curvey `@ccurvey`_ @@ -165,6 +166,7 @@ Listed in alphabetical order. .. _@bloodpet: https://github.com/bloodpet .. _@blopker: https://github.com/blopker .. _@bogdal: https://github.com/bogdal +.. _@browniebroke: https://github.com/browniebroke .. _@burhan: https://github.com/burhan .. _@c-rhodes: https://github.com/c-rhodes .. _@caffodian: https://github.com/caffodian From c5ed6173b2ecf17a2e8d7a1419338f5c5e3623c3 Mon Sep 17 00:00:00 2001 From: "pyup.io bot" Date: Wed, 2 Aug 2017 07:15:51 +0200 Subject: [PATCH 05/38] Update pytest from 3.1.3 to 3.2.0 (#1271) --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 28095be3c..705ed9466 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ sh==1.12.14 binaryornot==0.4.3 # Testing -pytest==3.1.3 +pytest==3.2.0 pep8==1.7.0 pyflakes==1.5.0 tox==2.7.0 From 83081a20b529f2a49723680bc3da39c77e1cf07e Mon Sep 17 00:00:00 2001 From: "pyup.io bot" Date: Wed, 2 Aug 2017 15:07:25 +0200 Subject: [PATCH 06/38] Update factory-boy to 2.9.1 (#1272) * Update factory-boy from 2.9.0 to 2.9.1 * Update factory-boy from 2.9.0 to 2.9.1 --- {{cookiecutter.project_slug}}/requirements/local.txt | 2 +- {{cookiecutter.project_slug}}/requirements/test.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt index 0abe9c1fe..3e9241e29 100644 --- a/{{cookiecutter.project_slug}}/requirements/local.txt +++ b/{{cookiecutter.project_slug}}/requirements/local.txt @@ -8,7 +8,7 @@ Sphinx==1.6.3 django-extensions==1.8.1 Werkzeug==0.12.2 django-test-plus==1.0.18 -factory-boy==2.9.0 +factory-boy==2.9.1 django-debug-toolbar==1.8 diff --git a/{{cookiecutter.project_slug}}/requirements/test.txt b/{{cookiecutter.project_slug}}/requirements/test.txt index 485f9f702..24742c2b3 100644 --- a/{{cookiecutter.project_slug}}/requirements/test.txt +++ b/{{cookiecutter.project_slug}}/requirements/test.txt @@ -10,7 +10,7 @@ psycopg2==2.7.3 coverage==4.4.1 flake8==3.4.1 # pyup: != 2.6.0 django-test-plus==1.0.18 -factory-boy==2.9.0 +factory-boy==2.9.1 # pytest pytest-django==3.1.2 From 12db5176d6c4c3ba531f0ad3c47f16b543698322 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Wed, 2 Aug 2017 20:00:03 +0100 Subject: [PATCH 07/38] Upgrade to boto3 fixes #998 - Boto3 is the replacement of boto, switch to the latest version - Switch django-storages class to the one based on Boto3 - AWS_S3_CALLING_FORMAT isn't relevant anymore --- .../config/settings/production.py | 10 ++++------ .../requirements/production.txt | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/{{cookiecutter.project_slug}}/config/settings/production.py b/{{cookiecutter.project_slug}}/config/settings/production.py index ca79c1634..01c245fa9 100644 --- a/{{cookiecutter.project_slug}}/config/settings/production.py +++ b/{{cookiecutter.project_slug}}/config/settings/production.py @@ -12,7 +12,6 @@ Production Configurations {% endif %} """ -from boto.s3.connection import OrdinaryCallingFormat {% if cookiecutter.use_sentry_for_error_reporting == 'y' %} import logging {% endif %} @@ -98,7 +97,6 @@ AWS_SECRET_ACCESS_KEY = env('DJANGO_AWS_SECRET_ACCESS_KEY') AWS_STORAGE_BUCKET_NAME = env('DJANGO_AWS_STORAGE_BUCKET_NAME') AWS_AUTO_CREATE_BUCKET = True AWS_QUERYSTRING_AUTH = False -AWS_S3_CALLING_FORMAT = OrdinaryCallingFormat() # AWS cache settings, don't change unless you know what you're doing: AWS_EXPIRY = 60 * 60 * 24 * 7 @@ -117,9 +115,9 @@ AWS_HEADERS = { MEDIA_URL = 'https://s3.amazonaws.com/%s/' % AWS_STORAGE_BUCKET_NAME {% else %} # See:http://stackoverflow.com/questions/10390244/ -from storages.backends.s3boto import S3BotoStorage -StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static') -MediaRootS3BotoStorage = lambda: S3BotoStorage(location='media') +from storages.backends.s3boto3 import S3Boto3Storage +StaticRootS3BotoStorage = lambda: S3Boto3Storage(location='static') +MediaRootS3BotoStorage = lambda: S3Boto3Storage(location='media') DEFAULT_FILE_STORAGE = 'config.settings.production.MediaRootS3BotoStorage' MEDIA_URL = 'https://s3.amazonaws.com/%s/media/' % AWS_STORAGE_BUCKET_NAME @@ -141,7 +139,7 @@ INSTALLED_APPS = ['collectfast', ] + INSTALLED_APPS {% if cookiecutter.use_compressor == 'y'-%} # COMPRESSOR # ------------------------------------------------------------------------------ -COMPRESS_STORAGE = 'storages.backends.s3boto.S3BotoStorage' +COMPRESS_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' COMPRESS_URL = STATIC_URL COMPRESS_ENABLED = env.bool('COMPRESS_ENABLED', default=True) {%- endif %} diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt index 743ee6292..4f345b4d6 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -16,7 +16,7 @@ gunicorn==19.7.1 # Static and Media Storage # ------------------------------------------------ -boto==2.48.0 +boto3==1.4.5 django-storages==1.6.5 {% if cookiecutter.use_whitenoise != 'y' -%} Collectfast==0.5.2 From 4be48b799985185d7c389a09980d5057270db70a Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Wed, 2 Aug 2017 20:10:49 +0100 Subject: [PATCH 08/38] Use django-storages for media files if using WhiteNoise - fixes #1192 As per the discussion in #869, WhiteNoise is for serving static files not for media files (files uploaded from the app by users). For such thing, we still need `DEFAULT_FILE_STORAGE` to be set and we use django-storages for that. --- {{cookiecutter.project_slug}}/config/settings/production.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/config/settings/production.py b/{{cookiecutter.project_slug}}/config/settings/production.py index 01c245fa9..98949ca0c 100644 --- a/{{cookiecutter.project_slug}}/config/settings/production.py +++ b/{{cookiecutter.project_slug}}/config/settings/production.py @@ -1,7 +1,9 @@ """ Production Configurations -- Use Amazon's S3 for storing static files and uploaded media +{% if cookiecutter.use_whitenoise == 'y' -%} +- Use WhiteNoise for serving static files{% endif %} +- Use Amazon's S3 for {% if cookiecutter.use_whitenoise == 'n' -%}storing static files {% endif %}and uploaded media - Use mailgun to send emails - Use Redis for cache {% if cookiecutter.use_sentry_for_error_reporting == 'y' %} @@ -113,6 +115,7 @@ AWS_HEADERS = { # stored files. {% if cookiecutter.use_whitenoise == 'y' -%} MEDIA_URL = 'https://s3.amazonaws.com/%s/' % AWS_STORAGE_BUCKET_NAME +DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' {% else %} # See:http://stackoverflow.com/questions/10390244/ from storages.backends.s3boto3 import S3Boto3Storage From 0e6b5f3c6665c5b87a9e98a405f6281976b2ea70 Mon Sep 17 00:00:00 2001 From: "pyup.io bot" Date: Thu, 3 Aug 2017 18:28:48 +0200 Subject: [PATCH 09/38] Update pyflakes from 1.5.0 to 1.6.0 (#1275) --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 705ed9466..c0dc71477 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,6 +6,6 @@ binaryornot==0.4.3 # Testing pytest==3.2.0 pep8==1.7.0 -pyflakes==1.5.0 +pyflakes==1.6.0 tox==2.7.0 pytest-cookies==0.2.0 From c90480b6dffb3a57a46ce12979199470a46ee0ff Mon Sep 17 00:00:00 2001 From: "pyup.io bot" Date: Thu, 3 Aug 2017 18:29:01 +0200 Subject: [PATCH 10/38] Update binaryornot from 0.4.3 to 0.4.4 (#1274) --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index c0dc71477..98599040f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ cookiecutter==1.5.1 flake8==3.4.1 # pyup: != 2.6.0 sh==1.12.14 -binaryornot==0.4.3 +binaryornot==0.4.4 # Testing pytest==3.2.0 From 9754f0341fab05ed63d9ac268029547928b56d90 Mon Sep 17 00:00:00 2001 From: "pyup.io bot" Date: Fri, 4 Aug 2017 09:56:11 +0200 Subject: [PATCH 11/38] Update factory-boy to 2.9.2 (#1276) * Update factory-boy from 2.9.1 to 2.9.2 * Update factory-boy from 2.9.1 to 2.9.2 --- {{cookiecutter.project_slug}}/requirements/local.txt | 2 +- {{cookiecutter.project_slug}}/requirements/test.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt index 3e9241e29..02324a0b0 100644 --- a/{{cookiecutter.project_slug}}/requirements/local.txt +++ b/{{cookiecutter.project_slug}}/requirements/local.txt @@ -8,7 +8,7 @@ Sphinx==1.6.3 django-extensions==1.8.1 Werkzeug==0.12.2 django-test-plus==1.0.18 -factory-boy==2.9.1 +factory-boy==2.9.2 django-debug-toolbar==1.8 diff --git a/{{cookiecutter.project_slug}}/requirements/test.txt b/{{cookiecutter.project_slug}}/requirements/test.txt index 24742c2b3..f537b09f0 100644 --- a/{{cookiecutter.project_slug}}/requirements/test.txt +++ b/{{cookiecutter.project_slug}}/requirements/test.txt @@ -10,7 +10,7 @@ psycopg2==2.7.3 coverage==4.4.1 flake8==3.4.1 # pyup: != 2.6.0 django-test-plus==1.0.18 -factory-boy==2.9.1 +factory-boy==2.9.2 # pytest pytest-django==3.1.2 From 16f6677de860e4efb7728d41be13b0095be7858c Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Wed, 9 Aug 2017 20:03:27 -0700 Subject: [PATCH 12/38] Update pytest from 3.2.0 to 3.2.1 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 98599040f..b87473c17 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ sh==1.12.14 binaryornot==0.4.4 # Testing -pytest==3.2.0 +pytest==3.2.1 pep8==1.7.0 pyflakes==1.6.0 tox==2.7.0 From 035dc4d7ab7e5d8bce392896473f11056ef51347 Mon Sep 17 00:00:00 2001 From: Shupeyko Nikita Date: Fri, 11 Aug 2017 10:13:30 +0300 Subject: [PATCH 13/38] Introduce development-time Celery services (#1257) * Introduce development-time Celery services Closes #1225. * Re-order django and postgres services in production.yml * Switch local service extension tactics * Fix celery services inheriting ports from the django's --- .../compose/django/Dockerfile-dev | 8 +++ .../compose/django/celery/beat/start-dev.sh | 8 +++ .../compose/django/celery/worker/start-dev.sh | 7 +++ {{cookiecutter.project_slug}}/local.yml | 58 +++++++++++++------ {{cookiecutter.project_slug}}/production.yml | 14 ++--- 5 files changed, 70 insertions(+), 25 deletions(-) create mode 100644 {{cookiecutter.project_slug}}/compose/django/celery/beat/start-dev.sh create mode 100644 {{cookiecutter.project_slug}}/compose/django/celery/worker/start-dev.sh diff --git a/{{cookiecutter.project_slug}}/compose/django/Dockerfile-dev b/{{cookiecutter.project_slug}}/compose/django/Dockerfile-dev index 673a06400..d2c56532a 100644 --- a/{{cookiecutter.project_slug}}/compose/django/Dockerfile-dev +++ b/{{cookiecutter.project_slug}}/compose/django/Dockerfile-dev @@ -13,6 +13,14 @@ COPY ./compose/django/start-dev.sh /start-dev.sh RUN sed -i 's/\r//' /start-dev.sh RUN chmod +x /start-dev.sh +COPY ./compose/django/celery/worker/start-dev.sh /start-celeryworker-dev.sh +RUN sed -i 's/\r//' /start-celeryworker-dev.sh +RUN chmod +x /start-celeryworker-dev.sh + +COPY ./compose/django/celery/beat/start-dev.sh /start-celerybeat-dev.sh +RUN sed -i 's/\r//' /start-celerybeat-dev.sh +RUN chmod +x /start-celerybeat-dev.sh + WORKDIR /app ENTRYPOINT ["/entrypoint.sh"] diff --git a/{{cookiecutter.project_slug}}/compose/django/celery/beat/start-dev.sh b/{{cookiecutter.project_slug}}/compose/django/celery/beat/start-dev.sh new file mode 100644 index 000000000..987d7259e --- /dev/null +++ b/{{cookiecutter.project_slug}}/compose/django/celery/beat/start-dev.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +set -o errexit +set -o nounset +set -o xtrace + +rm -f './celerybeat.pid' +celery -A {{cookiecutter.project_slug}}.taskapp beat -l INFO diff --git a/{{cookiecutter.project_slug}}/compose/django/celery/worker/start-dev.sh b/{{cookiecutter.project_slug}}/compose/django/celery/worker/start-dev.sh new file mode 100644 index 000000000..594065e6c --- /dev/null +++ b/{{cookiecutter.project_slug}}/compose/django/celery/worker/start-dev.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -o errexit +set -o nounset +set -o xtrace + +celery -A {{cookiecutter.project_slug}}.taskapp worker -l INFO diff --git a/{{cookiecutter.project_slug}}/local.yml b/{{cookiecutter.project_slug}}/local.yml index dbd321c82..94562b9c5 100644 --- a/{{cookiecutter.project_slug}}/local.yml +++ b/{{cookiecutter.project_slug}}/local.yml @@ -5,6 +5,22 @@ volumes: postgres_backup_dev: {} services: + django: &django + build: + context: . + dockerfile: ./compose/django/Dockerfile-dev + depends_on: + - postgres{% if cookiecutter.use_mailhog == 'y' %} + - mailhog{% endif %} + volumes: + - .:/app + environment: + - POSTGRES_USER={{cookiecutter.project_slug}} + - USE_DOCKER=yes + ports: + - "8000:8000" + command: /start-dev.sh + postgres: build: ./compose/postgres volumes: @@ -12,23 +28,6 @@ services: - postgres_backup_dev:/backups environment: - POSTGRES_USER={{cookiecutter.project_slug}} - - django: - build: - context: . - dockerfile: ./compose/django/Dockerfile-dev - command: /start-dev.sh - depends_on: - - postgres{% if cookiecutter.use_mailhog == 'y' %} - - mailhog{% endif %} - environment: - - POSTGRES_USER={{cookiecutter.project_slug}} - - USE_DOCKER=yes - volumes: - - .:/app - ports: - - "8000:8000" - {% if cookiecutter.use_pycharm == 'y' %} pycharm: build: @@ -41,10 +40,33 @@ services: volumes: - .:/app {% endif %} - {% if cookiecutter.use_mailhog == 'y' %} mailhog: image: mailhog/mailhog:v1.0.0 ports: - "8025:8025" {% endif %} +{% if cookiecutter.use_celery == 'y' %} + redis: + image: redis:3.0 + + celeryworker: + # https://github.com/docker/compose/issues/3220 + <<: *django + depends_on: + - redis + - postgres{% if cookiecutter.use_mailhog == 'y' %} + - mailhog{% endif %} + ports: [] + command: /start-celeryworker-dev.sh + + celerybeat: + # https://github.com/docker/compose/issues/3220 + <<: *django + depends_on: + - redis + - postgres{% if cookiecutter.use_mailhog == 'y' %} + - mailhog{% endif %} + ports: [] + command: /start-celerybeat-dev.sh +{% endif %} diff --git a/{{cookiecutter.project_slug}}/production.yml b/{{cookiecutter.project_slug}}/production.yml index af54b4442..00df90d56 100644 --- a/{{cookiecutter.project_slug}}/production.yml +++ b/{{cookiecutter.project_slug}}/production.yml @@ -5,13 +5,6 @@ volumes: postgres_backup: {} services: - postgres: - build: ./compose/postgres - volumes: - - postgres_data:/var/lib/postgresql/data - - postgres_backup:/backups - env_file: .env - django: build: context: . @@ -22,6 +15,13 @@ services: command: /gunicorn.sh env_file: .env + postgres: + build: ./compose/postgres + volumes: + - postgres_data:/var/lib/postgresql/data + - postgres_backup:/backups + env_file: .env + nginx: build: ./compose/nginx depends_on: From 8801c50867d86f6b60bed4b14a242c2fb7ffecc0 Mon Sep 17 00:00:00 2001 From: Jannis Gebauer Date: Fri, 11 Aug 2017 11:16:15 +0200 Subject: [PATCH 14/38] switch to caddy (#1282) --- README.rst | 1 - cookiecutter.json | 1 - docs/project-generation-options.rst | 3 - hooks/post_gen_project.py | 46 ++------- .../compose/caddy/Caddyfile | 14 +++ .../compose/caddy/Dockerfile | 2 + .../compose/nginx/Dockerfile | 12 --- .../compose/nginx/dhparams.example.pem | 3 - .../compose/nginx/nginx-secure.conf | 98 ------------------- .../compose/nginx/nginx.conf | 61 ------------ .../compose/nginx/start.sh | 62 ------------ {{cookiecutter.project_slug}}/env.example | 3 + {{cookiecutter.project_slug}}/production.yml | 29 +----- 13 files changed, 34 insertions(+), 301 deletions(-) create mode 100644 {{cookiecutter.project_slug}}/compose/caddy/Caddyfile create mode 100644 {{cookiecutter.project_slug}}/compose/caddy/Dockerfile delete mode 100644 {{cookiecutter.project_slug}}/compose/nginx/Dockerfile delete mode 100755 {{cookiecutter.project_slug}}/compose/nginx/dhparams.example.pem delete mode 100755 {{cookiecutter.project_slug}}/compose/nginx/nginx-secure.conf delete mode 100644 {{cookiecutter.project_slug}}/compose/nginx/nginx.conf delete mode 100755 {{cookiecutter.project_slug}}/compose/nginx/start.sh diff --git a/README.rst b/README.rst index 9f2af8495..3345bfd6d 100644 --- a/README.rst +++ b/README.rst @@ -171,7 +171,6 @@ Answer the prompts with your own desired options_. For example:: 2 - Grunt 3 - None Choose from 1, 2, 3, 4 [1]: 1 - use_lets_encrypt [n]: n Select open_source_license: 1 - MIT 2 - BSD diff --git a/cookiecutter.json b/cookiecutter.json index 5b443493c..8addeeada 100644 --- a/cookiecutter.json +++ b/cookiecutter.json @@ -20,7 +20,6 @@ "use_compressor": "n", "postgresql_version": ["9.6", "9.5", "9.4", "9.3", "9.2"], "js_task_runner": ["Gulp", "Grunt", "None"], - "use_lets_encrypt": "n", "custom_bootstrap_compilation": "n", "open_source_license": ["MIT", "BSD", "GPLv3", "Apache Software License 2.0", "Not open source"] } diff --git a/docs/project-generation-options.rst b/docs/project-generation-options.rst index 8db3077dc..5a0cffe65 100644 --- a/docs/project-generation-options.rst +++ b/docs/project-generation-options.rst @@ -72,9 +72,6 @@ js_task_runner [1] 2. Grunt_ 3. None -use_lets_encrypt [n] - Use `Let's Encrypt`_ as the certificate authority for this project. - custom_bootstrap_compilation [n] If you use Grunt, scaffold out recompiling Bootstrap as as task. (Useful for letting you change Bootstrap variables in real time.) Consult project README for more details. diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py index 1dc112793..b383e4190 100644 --- a/hooks/post_gen_project.py +++ b/hooks/post_gen_project.py @@ -167,14 +167,6 @@ def remove_packageJSON_file(): PROJECT_DIRECTORY, filename )) -def remove_certbot_files(): - """ - Removes files needed for certbot if it isn't going to be used - """ - nginx_dir_location = os.path.join(PROJECT_DIRECTORY, 'compose/nginx') - for filename in ["nginx-secure.conf", "start.sh", "dhparams.example.pem"]: - file_name = os.path.join(nginx_dir_location, filename) - remove_file(file_name) def remove_copying_files(): """ @@ -229,26 +221,26 @@ def remove_open_source_files(): # dst = os.path.join(target_dir, name) # shutil.copyfile(src, dst) -# 1. Generates and saves random secret key +# Generates and saves random secret key make_secret_key(PROJECT_DIRECTORY) -# 2. Removes the taskapp if celery isn't going to be used +# Removes the taskapp if celery isn't going to be used if '{{ cookiecutter.use_celery }}'.lower() == 'n': remove_task_app(PROJECT_DIRECTORY) -# 3. Removes the .idea directory if PyCharm isn't going to be used +# Removes the .idea directory if PyCharm isn't going to be used if '{{ cookiecutter.use_pycharm }}'.lower() != 'y': remove_pycharm_dir(PROJECT_DIRECTORY) -# 4. Removes all heroku files if it isn't going to be used +# Removes all heroku files if it isn't going to be used if '{{ cookiecutter.use_heroku }}'.lower() != 'y': remove_heroku_files() -# 5. Removes all docker files if it isn't going to be used +# Removes all docker files if it isn't going to be used if '{{ cookiecutter.use_docker }}'.lower() != 'y': remove_docker_files() -# 6. Removes all JS task manager files if it isn't going to be used +# Removes all JS task manager files if it isn't going to be used if '{{ cookiecutter.js_task_runner}}'.lower() == 'gulp': remove_grunt_files() elif '{{ cookiecutter.js_task_runner}}'.lower() == 'grunt': @@ -258,11 +250,7 @@ else: remove_grunt_files() remove_packageJSON_file() -# 7. Removes all certbot/letsencrypt files if it isn't going to be used -if '{{ cookiecutter.use_lets_encrypt }}'.lower() != 'y': - remove_certbot_files() - -# 8. Display a warning if use_docker and use_grunt are selected. Grunt isn't +# Display a warning if use_docker and use_grunt are selected. Grunt isn't # supported by our docker config atm. if '{{ cookiecutter.js_task_runner }}'.lower() in ['grunt', 'gulp'] and '{{ cookiecutter.use_docker }}'.lower() == 'y': print( @@ -271,29 +259,15 @@ if '{{ cookiecutter.js_task_runner }}'.lower() in ['grunt', 'gulp'] and '{{ cook "js task runner service to your docker configuration manually." ) -# 9. Removes the certbot/letsencrypt files and display a warning if use_lets_encrypt is selected and use_docker isn't. -if '{{ cookiecutter.use_lets_encrypt }}'.lower() == 'y' and '{{ cookiecutter.use_docker }}'.lower() != 'y': - remove_certbot_files() - print( - "You selected to use Let's Encrypt and didn't select to use docker. This is NOT supported out of the box for now. You " - "can continue to use the project like you normally would, but Let's Encrypt files have been included." - ) -# 10. Directs the user to the documentation if certbot and docker are selected. -if '{{ cookiecutter.use_lets_encrypt }}'.lower() == 'y' and '{{ cookiecutter.use_docker }}'.lower() == 'y': - print( - "You selected to use Let's Encrypt, please see the documentation for instructions on how to use this in production. " - "You must generate a dhparams.pem file before running docker-compose in a production environment." - ) - -# 11. Removes files needed for the GPLv3 licence if it isn't going to be used. +# Removes files needed for the GPLv3 licence if it isn't going to be used. if '{{ cookiecutter.open_source_license}}' != 'GPLv3': remove_copying_files() -# 12. Remove Elastic Beanstalk files +# Remove Elastic Beanstalk files if '{{ cookiecutter.use_elasticbeanstalk_experimental }}'.lower() != 'y': remove_elasticbeanstalk() -# 13. Remove files conventional to opensource projects only. +# Remove files conventional to opensource projects only. if '{{ cookiecutter.open_source_license }}' == 'Not open source': remove_open_source_files() diff --git a/{{cookiecutter.project_slug}}/compose/caddy/Caddyfile b/{{cookiecutter.project_slug}}/compose/caddy/Caddyfile new file mode 100644 index 000000000..22ec73f4d --- /dev/null +++ b/{{cookiecutter.project_slug}}/compose/caddy/Caddyfile @@ -0,0 +1,14 @@ +www.{% raw %}{%DOMAIN_NAME%}{% endraw %} { + redir https://{{cookiecutter.domain_name}} +} + +{% raw %}{%DOMAIN_NAME%}{% endraw %} { + proxy / django:5000 { + header_upstream Host {host} + header_upstream X-Real-IP {remote} + header_upstream X-Forwarded-Proto {scheme} + } + log stdout + errors stdout + gzip +} diff --git a/{{cookiecutter.project_slug}}/compose/caddy/Dockerfile b/{{cookiecutter.project_slug}}/compose/caddy/Dockerfile new file mode 100644 index 000000000..774b0bf5b --- /dev/null +++ b/{{cookiecutter.project_slug}}/compose/caddy/Dockerfile @@ -0,0 +1,2 @@ +FROM abiosoft/caddy:0.10.6 +COPY Caddyfile /etc/Caddyfile diff --git a/{{cookiecutter.project_slug}}/compose/nginx/Dockerfile b/{{cookiecutter.project_slug}}/compose/nginx/Dockerfile deleted file mode 100644 index 25b48cd95..000000000 --- a/{{cookiecutter.project_slug}}/compose/nginx/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM nginx:latest -ADD nginx.conf /etc/nginx/nginx.conf - -{% if cookiecutter.use_lets_encrypt == 'y' and cookiecutter.use_docker == 'y' %} -# installs the `ps` command in the nginx image -RUN apt-get update && apt-get install -y procps - -ADD start.sh /start.sh -ADD nginx-secure.conf /etc/nginx/nginx-secure.conf -ADD dhparams.pem /etc/ssl/private/dhparams.pem -CMD /start.sh -{% endif %} diff --git a/{{cookiecutter.project_slug}}/compose/nginx/dhparams.example.pem b/{{cookiecutter.project_slug}}/compose/nginx/dhparams.example.pem deleted file mode 100755 index e88d8123f..000000000 --- a/{{cookiecutter.project_slug}}/compose/nginx/dhparams.example.pem +++ /dev/null @@ -1,3 +0,0 @@ ------BEGIN DH PARAMETERS----- -EXAMPLE_FILE ------END DH PARAMETERS----- diff --git a/{{cookiecutter.project_slug}}/compose/nginx/nginx-secure.conf b/{{cookiecutter.project_slug}}/compose/nginx/nginx-secure.conf deleted file mode 100755 index c3f46b84e..000000000 --- a/{{cookiecutter.project_slug}}/compose/nginx/nginx-secure.conf +++ /dev/null @@ -1,98 +0,0 @@ -user nginx; -worker_processes 1; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - - -events { - worker_connections 1024; -} - -http { - - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - - sendfile on; - #tcp_nopush on; - - keepalive_timeout 65; - - proxy_headers_hash_bucket_size 52; - - gzip on; - - upstream app { - server django:5000; - } - server { - listen 80; - server_name ___my.example.com___ www.___my.example.com___; - - location /.well-known/acme-challenge { - # Since the certbot container isn't up constantly, need to resolve ip dynamically using docker's dns - resolver ___NAMESERVER___; - set $certbot_addr_port certbot:80; - proxy_pass http://$certbot_addr_port; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location / { - return 301 https://$server_name$request_uri; - } - - } - - server { - listen 443; - server_name ___my.example.com___ www.___my.example.com___; - - ssl on; - ssl_certificate /etc/letsencrypt/live/___my.example.com___/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/___my.example.com___/privkey.pem; - ssl_session_timeout 5m; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; - ssl_prefer_server_ciphers on; - - ssl_session_cache shared:SSL:10m; - ssl_dhparam /etc/ssl/private/dhparams.pem; - - location /.well-known/acme-challenge { - resolver ___NAMESERVER___; - set $certbot_addr_port certbot:443; - proxy_pass http://$certbot_addr_port; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Forwarded-Proto https; - } - - location / { - # checks for static file, if not found proxy to app - try_files $uri @proxy_to_app; - } - - # cookiecutter-django app - location @proxy_to_app { - proxy_set_header X-Forwarded-Proto https; - proxy_set_header X-Url-Scheme $scheme; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $http_host; - proxy_redirect off; - - proxy_pass http://app; - - } - - } - -} diff --git a/{{cookiecutter.project_slug}}/compose/nginx/nginx.conf b/{{cookiecutter.project_slug}}/compose/nginx/nginx.conf deleted file mode 100644 index 9573effef..000000000 --- a/{{cookiecutter.project_slug}}/compose/nginx/nginx.conf +++ /dev/null @@ -1,61 +0,0 @@ -user nginx; -worker_processes 1; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - -events { - worker_connections 1024; -} - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - - sendfile on; - #tcp_nopush on; - - keepalive_timeout 65; - - #gzip on; - - upstream app { - server django:5000; - } - - server { - listen 80; - charset utf-8; - - {% if cookiecutter.use_lets_encrypt == 'y' and cookiecutter.use_docker == 'y' %} - server_name ___my.example.com___ ; - - location /.well-known/acme-challenge { - proxy_pass http://certbot:80; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Forwarded-Proto https; - } - {% endif %} - - location / { - # checks for static file, if not found proxy to app - try_files $uri @proxy_to_app; - } - - # cookiecutter-django app - location @proxy_to_app { - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $http_host; - proxy_redirect off; - proxy_pass http://app; - - } - } -} diff --git a/{{cookiecutter.project_slug}}/compose/nginx/start.sh b/{{cookiecutter.project_slug}}/compose/nginx/start.sh deleted file mode 100755 index fa40ed9ab..000000000 --- a/{{cookiecutter.project_slug}}/compose/nginx/start.sh +++ /dev/null @@ -1,62 +0,0 @@ -echo sleep 5 -sleep 5 - -echo build starting nginx config - - -echo replacing ___my.example.com___/$MY_DOMAIN_NAME - -# Put your domain name into the nginx reverse proxy config. -sed -i "s/___my.example.com___/$MY_DOMAIN_NAME/g" /etc/nginx/nginx.conf - -cat /etc/nginx/nginx.conf -echo . -echo Firing up nginx in the background. -nginx - -# # Check user has specified domain name -if [ -z "$MY_DOMAIN_NAME" ]; then - echo "Need to set MY_DOMAIN_NAME (to a letsencrypt-registered name)." - exit 1 -fi - -# This bit waits until the letsencrypt container has done its thing. -# We see the changes here bceause there's a docker volume mapped. -echo Waiting for folder /etc/letsencrypt/live/$MY_DOMAIN_NAME to exist -while [ ! -d /etc/letsencrypt/live/$MY_DOMAIN_NAME ] ; -do - sleep 2 -done - -while [ ! -f /etc/letsencrypt/live/$MY_DOMAIN_NAME/fullchain.pem ] ; -do - echo Waiting for file fullchain.pem to exist - sleep 2 -done - -while [ ! -f /etc/letsencrypt/live/$MY_DOMAIN_NAME/privkey.pem ] ; -do - echo Waiting for file privkey.pem to exist - sleep 2 -done - -# This is added so that when the certificate is being renewed or is already in place, nginx waits for everything to be good. -sleep 15 - -echo replacing ___my.example.com___/$MY_DOMAIN_NAME - - -# Put your domain name into the nginx reverse proxy config. -sed -i "s/___my.example.com___/$MY_DOMAIN_NAME/g" /etc/nginx/nginx-secure.conf - -# Add the system's nameserver (the docker network dns) so we can resolve container names in nginx -NAMESERVER=`cat /etc/resolv.conf | grep "nameserver" | awk '{print $2}' | tr '\n' ' '` -echo replacing ___NAMESERVER___/$NAMESERVER -sed -i "s/___NAMESERVER___/$NAMESERVER/g" /etc/nginx/nginx-secure.conf - - -#go! -kill $(ps aux | grep 'nginx' | grep -v 'grep' | awk '{print $2}') -cp /etc/nginx/nginx-secure.conf /etc/nginx/nginx.conf - -nginx -g 'daemon off;' diff --git a/{{cookiecutter.project_slug}}/env.example b/{{cookiecutter.project_slug}}/env.example index 138b75fd9..c0278efec 100644 --- a/{{cookiecutter.project_slug}}/env.example +++ b/{{cookiecutter.project_slug}}/env.example @@ -3,6 +3,9 @@ POSTGRES_PASSWORD=mysecretpass POSTGRES_USER=postgresuser +# Domain name, used by caddy +DOMAIN_NAME={{ cookiecutter.domain_name }} + # General settings # DJANGO_READ_DOT_ENV_FILE=True DJANGO_ADMIN_URL= diff --git a/{{cookiecutter.project_slug}}/production.yml b/{{cookiecutter.project_slug}}/production.yml index 00df90d56..79e856dfb 100644 --- a/{{cookiecutter.project_slug}}/production.yml +++ b/{{cookiecutter.project_slug}}/production.yml @@ -3,6 +3,7 @@ version: '2' volumes: postgres_data: {} postgres_backup: {} + caddy: {} services: django: @@ -22,36 +23,16 @@ services: - postgres_backup:/backups env_file: .env - nginx: - build: ./compose/nginx + caddy: + build: ./compose/caddy depends_on: - django -{% if cookiecutter.use_lets_encrypt == 'y' %} - - certbot - environment: - - MY_DOMAIN_NAME={{ cookiecutter.domain_name }} -{% endif %} ports: - "0.0.0.0:80:80" -{% if cookiecutter.use_lets_encrypt == 'y' %} - "0.0.0.0:443:443" volumes: - - /etc/letsencrypt:/etc/letsencrypt - - /var/lib/letsencrypt:/var/lib/letsencrypt - - certbot: - image: quay.io/letsencrypt/letsencrypt - command: bash -c "sleep 6 && certbot certonly -n --standalone -d {{ cookiecutter.domain_name }} --test --agree-tos --email {{ cookiecutter.email }} --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --verbose --keep-until-expiring --preferred-challenges http-01" - entrypoint: "" - volumes: - - /etc/letsencrypt:/etc/letsencrypt - - /var/lib/letsencrypt:/var/lib/letsencrypt - ports: - - "80" - - "443" - environment: - - TERM=xterm -{% endif %} + - caddy:/root/.caddy + env_file: .env redis: image: redis:3.0 From abf8f2c97a0e2e3550b5cf3641cb16291e63cd4e Mon Sep 17 00:00:00 2001 From: Jannis Gebauer Date: Fri, 11 Aug 2017 11:28:42 +0200 Subject: [PATCH 15/38] add caddy to feature list --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 3345bfd6d..d66715a50 100644 --- a/README.rst +++ b/README.rst @@ -40,7 +40,7 @@ Features * Grunt build for compass and livereload * Send emails via Anymail_ (using Mailgun_ by default, but switchable) * Media storage using Amazon S3 -* Docker support using docker-compose_ for development and production +* Docker support using docker-compose_ for development and production (using _Caddy with LetsEncrypt support) * Procfile_ for deploying to Heroku * Instructions for deploying to PythonAnywhere_ * Run tests with unittest or py.test @@ -76,7 +76,7 @@ Optional Integrations .. _docker-compose: https://github.com/docker/compose .. _Opbeat: https://opbeat.com/ .. _PythonAnywhere: https://www.pythonanywhere.com/ - +.. _Caddy: https://caddyserver.com/ Constraints ----------- From e4d94b52d5aa0007e8def914d69b300249525765 Mon Sep 17 00:00:00 2001 From: Jannis Gebauer Date: Fri, 11 Aug 2017 13:02:11 +0200 Subject: [PATCH 16/38] add support option --- .github/ISSUE_TEMPLATE.md | 32 ++++++++++++++++++++++++++++++++ README.rst | 5 ++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 .github/ISSUE_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..4899c4f91 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,32 @@ +**Note: for support questions, please use the `cookiecutter-django` tag on stackoverflow**. This repository's issues are reserved for feature requests and bug reports. If you need quick professional paid support for your project, contact support@cookiecutter.io. + +* **I'm submitting a ... ** + - [ ] bug report + - [ ] feature request + - [ ] support request => Please do not submit support request here, see note at the top of this template. + + +* **Do you want to request a *feature* or report a *bug*?** + + + +* **What is the current behavior?** + + + +* **If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem** + + +* **What is the expected behavior?** + + + +* **What is the motivation / use case for changing the behavior?** + + + +* **Please tell us about your environment:** + + + +* **Other information** (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc) diff --git a/README.rst b/README.rst index d66715a50..6ae645fa6 100644 --- a/README.rst +++ b/README.rst @@ -16,7 +16,9 @@ Powered by Cookiecutter_, Cookiecutter Django is a framework for jumpstarting pr * Documentation: https://cookiecutter-django.readthedocs.io/en/latest/ * See Troubleshooting_ for common errors and obstacles -* If you have problems with Cookiecutter Django, please open issues_ before sending emails to the maintainers. You will get a much, MUCH faster response. +* If you have problems with Cookiecutter Django, please open issues_ don't send emails to the maintainers. +* Need quick professional paid support? Contact `support@cookiecutter.io`_. This includes configuring your servers, +fixing bugs, reviewing your code and everything in between. .. _cookiecutter: https://github.com/audreyr/cookiecutter @@ -24,6 +26,7 @@ Powered by Cookiecutter_, Cookiecutter Django is a framework for jumpstarting pr .. _528: https://github.com/pydanny/cookiecutter-django/issues/528#issuecomment-212650373 .. _issues: https://github.com/pydanny/cookiecutter-django/issues/new +.. _support@cookiecutter.io: support@cookiecutter.io Features --------- From 5492a2b3870825621486b442d0be34d8d251ff06 Mon Sep 17 00:00:00 2001 From: Jannis Gebauer Date: Mon, 14 Aug 2017 11:48:17 +0200 Subject: [PATCH 17/38] update with instructions for caddy, removing nginx --- docs/deployment-with-docker.rst | 64 +++++---------------------------- 1 file changed, 9 insertions(+), 55 deletions(-) diff --git a/docs/deployment-with-docker.rst b/docs/deployment-with-docker.rst index cb428e8f4..fb383c3c5 100644 --- a/docs/deployment-with-docker.rst +++ b/docs/deployment-with-docker.rst @@ -17,7 +17,7 @@ of this application gets its configuration from. Notice how it provides configur * `postgres` service that runs the database * `redis` for caching -* `nginx` as reverse proxy +* `caddy` as webserver * `django` is the Django project run by gunicorn If you chose the `use_celery` option, there are two more services: @@ -25,10 +25,6 @@ If you chose the `use_celery` option, there are two more services: * `celeryworker` which runs the celery worker process * `celerybeat` which runs the celery beat process -If you chose the `use_letsencrypt` option, you also have: - -* `certbot` which keeps your certs from letsencrypt up-to-date - Populate .env With Your Environment Variables --------------------------------------------- @@ -57,66 +53,24 @@ It is always better to deploy a site behind HTTPS and will become crucial as the * If you are not using a subdomain of the domain name set in the project, then remember to put the your staging/production IP address in the :code:`DJANGO_ALLOWED_HOSTS` environment variable (see :ref:`settings`) before you deploy your website. Failure to do this will mean you will not have access to your website through the HTTP protocol. -* Access to the Django admin is set up by default to require HTTPS in production or once *live*. We recommend that you look into setting up the *Certbot and Let's Encrypt Setup* mentioned below or another HTTPS certification service. +* Access to the Django admin is set up by default to require HTTPS in production or once *live*. -Optional: nginx-proxy Setup ---------------------------- -By default, the application is configured to listen on all interfaces on port 80. If you want to change that, open the -`production.yml` file and replace `0.0.0.0` with your own ip. +HTTPS is configured by default +------------------------------ -If you are using `nginx-proxy`_ to run multiple application stacks on one host, remove the port setting entirely and add `VIRTUAL_HOST=example.com` to your env file. Here, replace example.com with the value you entered for `domain_name`. +The Caddy webserver used in the default configuration will get you a valid certificate from Lets Encrypt and update it automatically. All you need to do to enable this is to make sure that your DNS records are pointing to the server Caddy runs on. -This pass all incoming requests on `nginx-proxy`_ to the nginx service your application is using. +You can read more about this here at `Automatic HTTPS`_ in the Caddy docs. + +.. _Automatic HTTPS: https://caddyserver.com/docs/automatic-https -.. _nginx-proxy: https://github.com/jwilder/nginx-proxy Optional: Postgres Data Volume Modifications --------------------------------------------- Postgres is saving its database files to the `postgres_data` volume by default. Change that if you want something else and make sure to make backups since this is not done automatically. -Optional: Certbot and Let's Encrypt Setup ------------------------------------------- - -If you chose `use_letsencrypt` and will be using certbot for https, you must do the following before running anything with docker-compose: - -Replace dhparam.pem.example with a generated dhparams.pem file before running anything with docker-compose. You can generate this on ubuntu or OS X by running the following in the project root: - -:: - - $ openssl dhparam -out /path/to/project/compose/nginx/dhparams.pem 2048 - -If you would like to add additional subdomains to your certificate, you must add additional parameters to the certbot command in the `production.yml` file: - -Replace: - -:: - - command: bash -c "sleep 6 && certbot certonly -n --standalone -d {{ cookiecutter.domain_name }} --test --agree-tos --email {{ cookiecutter.email }} --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --verbose --keep-until-expiring --preferred-challenges http-01" - -With: - -:: - - command: bash -c "sleep 6 && certbot certonly -n --standalone -d {{ cookiecutter.domain_name }} -d www.{{ cookiecutter.domain_name }} -d etc.{{ cookiecutter.domain_name }} --test --agree-tos --email {{ cookiecutter.email }} --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --verbose --keep-until-expiring --preferred-challenges http-01" - -Please be cognizant of Certbot/Letsencrypt certificate requests limits when getting this set up. The provide a test server that does not count against the limit while you are getting set up. - -The certbot certificates expire after 3 months. -If you would like to set up autorenewal of your certificates, the following commands can be put into a bash script: - -:: - - #!/bin/bash - cd - docker-compose -f production.yml run --rm --name certbot certbot bash -c "sleep 6 && certbot certonly --standalone -d {{ cookiecutter.domain_name }} --test --agree-tos --email {{ cookiecutter.email }} --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --verbose --keep-until-expiring --preferred-challenges http-01" - docker exec {{ cookiecutter.project_name }}_nginx_1 nginx -s reload - -And then set a cronjob by running `crontab -e` and placing in it (period can be adjusted as desired):: - - 0 4 * * 1 /path/to/bashscript/renew_certbot.sh - Run your app with docker-compose -------------------------------- @@ -154,7 +108,7 @@ If you want to scale your application, run:: docker-compose -f production.yml scale django=4 docker-compose -f production.yml scale celeryworker=2 -.. warning:: Don't run the scale command on postgres, celerybeat, certbot, or nginx. +.. warning:: Don't run the scale command on postgres, celerybeat, or caddy. If you have errors, you can always check your stack with `docker-compose`. Switch to your projects root directory and run:: From dc4051eded1c8e488e7cc51d9e83f3e6271681e4 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Tue, 15 Aug 2017 02:07:36 -0700 Subject: [PATCH 18/38] Update pytest-sugar from 0.8.0 to 0.9.0 --- {{cookiecutter.project_slug}}/requirements/local.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt index 02324a0b0..8db39ed80 100644 --- a/{{cookiecutter.project_slug}}/requirements/local.txt +++ b/{{cookiecutter.project_slug}}/requirements/local.txt @@ -16,4 +16,4 @@ django-debug-toolbar==1.8 ipdb==0.10.3 pytest-django==3.1.2 -pytest-sugar==0.8.0 +pytest-sugar==0.9.0 From 19d9cb8afb79fb5b955c695d6f97316f2852fa9c Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Tue, 15 Aug 2017 02:07:38 -0700 Subject: [PATCH 19/38] Update pytest-sugar from 0.8.0 to 0.9.0 --- {{cookiecutter.project_slug}}/requirements/test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/requirements/test.txt b/{{cookiecutter.project_slug}}/requirements/test.txt index f537b09f0..f1d331ac9 100644 --- a/{{cookiecutter.project_slug}}/requirements/test.txt +++ b/{{cookiecutter.project_slug}}/requirements/test.txt @@ -14,4 +14,4 @@ factory-boy==2.9.2 # pytest pytest-django==3.1.2 -pytest-sugar==0.8.0 +pytest-sugar==0.9.0 From c216de7387bd2fb6c352e59449b781d7d2984091 Mon Sep 17 00:00:00 2001 From: "pyup.io bot" Date: Sun, 20 Aug 2017 10:47:40 +0200 Subject: [PATCH 20/38] Update django-allauth from 0.32.0 to 0.33.0 (#1288) --- {{cookiecutter.project_slug}}/requirements/base.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index 2227e92cc..cc38d4e3f 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -30,7 +30,7 @@ argon2-cffi==16.3.0 # For user registration, either via email or social # Well-built with regular release cycles! -django-allauth==0.32.0 +django-allauth==0.33.0 {% if cookiecutter.windows == 'y' -%} # On Windows, you must download/install psycopg2 manually From 796247a2844fdae20e72de7e823685338b322806 Mon Sep 17 00:00:00 2001 From: "pyup.io bot" Date: Sun, 20 Aug 2017 17:31:41 +0200 Subject: [PATCH 21/38] Update django-compressor from 2.1.1 to 2.2 (#1287) --- {{cookiecutter.project_slug}}/requirements/base.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index cc38d4e3f..038a7e831 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -56,7 +56,7 @@ celery==3.1.25 {% if cookiecutter.use_compressor == "y" %} rcssmin==1.0.6 {% if cookiecutter.windows == 'y' %}--install-option="--without-c-extensions"{% endif %} -django-compressor==2.1.1 +django-compressor==2.2 {% endif %} # Your custom requirements go here From 26f5659e560da7e3ab9029ca2d66893d7e024c15 Mon Sep 17 00:00:00 2001 From: "pyup.io bot" Date: Mon, 21 Aug 2017 13:59:34 +0200 Subject: [PATCH 22/38] Update django-environ from 0.4.3 to 0.4.4 (#1289) --- {{cookiecutter.project_slug}}/requirements/base.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index 038a7e831..c3258623f 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -9,7 +9,7 @@ wheel==0.29.0 django==1.10.7 # pyup: >=1.10,<1.11 # Configuration -django-environ==0.4.3 +django-environ==0.4.4 {% if cookiecutter.use_whitenoise == 'y' -%} whitenoise==3.3.0 {%- endif %} From b40d63fffc2542f2b91dbb649b34c995f121cd4f Mon Sep 17 00:00:00 2001 From: "pyup.io bot" Date: Wed, 23 Aug 2017 11:48:26 +0200 Subject: [PATCH 23/38] Update django-extensions from 1.8.1 to 1.9.0 (#1291) --- {{cookiecutter.project_slug}}/requirements/local.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt index 8db39ed80..4808d8862 100644 --- a/{{cookiecutter.project_slug}}/requirements/local.txt +++ b/{{cookiecutter.project_slug}}/requirements/local.txt @@ -5,7 +5,7 @@ coverage==4.4.1 django-coverage-plugin==1.5.0 Sphinx==1.6.3 -django-extensions==1.8.1 +django-extensions==1.9.0 Werkzeug==0.12.2 django-test-plus==1.0.18 factory-boy==2.9.2 From dec3305cd558f22d9282e2d0e09e9b537a31e861 Mon Sep 17 00:00:00 2001 From: Shupeyko Nikita Date: Wed, 23 Aug 2017 13:58:10 +0400 Subject: [PATCH 24/38] Configure pytest to exit after first num failures or errors (#1292) --- {{cookiecutter.project_slug}}/pytest.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/{{cookiecutter.project_slug}}/pytest.ini b/{{cookiecutter.project_slug}}/pytest.ini index 5b4369b89..5a6a1ca68 100644 --- a/{{cookiecutter.project_slug}}/pytest.ini +++ b/{{cookiecutter.project_slug}}/pytest.ini @@ -1,2 +1,3 @@ [pytest] +addopts = --exitfirst DJANGO_SETTINGS_MODULE=config.settings.test From 22709576a86b7cdf56875f22593daa3313c685d5 Mon Sep 17 00:00:00 2001 From: "Nikita P. Shupeyko" Date: Wed, 23 Aug 2017 13:12:37 +0300 Subject: [PATCH 25/38] Add missing = to DJANGO_OPBEAT_* variable definitions --- {{cookiecutter.project_slug}}/env.example | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/{{cookiecutter.project_slug}}/env.example b/{{cookiecutter.project_slug}}/env.example index c0278efec..cbde76499 100644 --- a/{{cookiecutter.project_slug}}/env.example +++ b/{{cookiecutter.project_slug}}/env.example @@ -33,9 +33,9 @@ DJANGO_ACCOUNT_ALLOW_REGISTRATION=True DJANGO_SENTRY_DSN= {% endif %} {% if cookiecutter.use_opbeat == 'y' -%} -DJANGO_OPBEAT_ORGANIZATION_ID -DJANGO_OPBEAT_APP_ID -DJANGO_OPBEAT_SECRET_TOKEN +DJANGO_OPBEAT_ORGANIZATION_ID= +DJANGO_OPBEAT_APP_ID= +DJANGO_OPBEAT_SECRET_TOKEN= {% endif %} {% if cookiecutter.use_compressor == 'y' -%} COMPRESS_ENABLED= From a226184bf1c58db2a08ead311549e6948978ecf8 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Wed, 23 Aug 2017 10:17:14 -0700 Subject: [PATCH 26/38] Update boto3 from 1.4.5 to 1.4.6 --- {{cookiecutter.project_slug}}/requirements/production.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt index 4f345b4d6..7abe06f3f 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -16,7 +16,7 @@ gunicorn==19.7.1 # Static and Media Storage # ------------------------------------------------ -boto3==1.4.5 +boto3==1.4.6 django-storages==1.6.5 {% if cookiecutter.use_whitenoise != 'y' -%} Collectfast==0.5.2 From 259534cd2bfcdb81ccf98c4322ff9f8dbad22a96 Mon Sep 17 00:00:00 2001 From: Shupeyko Nikita Date: Thu, 24 Aug 2017 16:59:08 +0300 Subject: [PATCH 27/38] Update .gitignore's (#1294) * Update Cookiecutter Django .gitignore * Update generated project .gitignore --- .gitignore | 242 ++++++++++++-- {{cookiecutter.project_slug}}/.gitignore | 390 +++++++++++++++++++---- 2 files changed, 549 insertions(+), 83 deletions(-) diff --git a/.gitignore b/.gitignore index 393a1968c..1f80de173 100644 --- a/.gitignore +++ b/.gitignore @@ -1,44 +1,228 @@ -### OSX ### -.DS_Store -.AppleDouble -.LSOverride +### Python template +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class -### SublimeText ### -# cache files for sublime text +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage.* +.cache/ +nosetests.xml +coverage.xml +*.cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# Environments +.env +.venv +env/ +venv/ +ENV/ + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + + +### Linux template +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + + +### VisualStudioCode template +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + + +### Windows template +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + + +### SublimeText template +# Cache files for Sublime Text *.tmlanguage.cache *.tmPreferences.cache *.stTheme.cache -# workspace files are user-specific +# Workspace files are user-specific *.sublime-workspace -# project files should be checked into the repository, unless a significant -# proportion of contributors will probably not be using SublimeText +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text # *.sublime-project -# sftp configuration file +# SFTP configuration file sftp-config.json -# Generated files -*.log -*.pot -*.pyc -.idea -_build -*.egg-info/ +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache -# Project Specific Stuff -local_settings.py -project_slug -my_test_project/* +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings -# Generated when running py.test for the Cookiecutter Django generation tests -.cache/ -# Generated when running celery beat -celerybeat-schedule.db +### macOS template +# General +*.DS_Store +.AppleDouble +.LSOverride -# Unit test / coverage reports -.coverage -.tox -.cache +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + +### Vim template +# Swap +[._]*.s[a-v][a-z] +[._]*.sw[a-p] +[._]s[a-v][a-z] +[._]sw[a-p] + +# Session +Session.vim + +# Temporary +.netrwhist +# Auto-generated tag files +tags + + +### VirtualEnv template +# Virtualenv +# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/ +[Bb]in +[Ii]nclude +[Ll]ib +[Ll]ib64 +[Ll]ocal +[Ss]cripts +pyvenv.cfg +pip-selfcheck.json + + +# Even though the project might be opened and edited +# in any of the JetBrains IDEs, it makes no sence whatsoever +# to 'run' anything within it since any particular cookiecutter +# is declarative by nature. +.idea/ diff --git a/{{cookiecutter.project_slug}}/.gitignore b/{{cookiecutter.project_slug}}/.gitignore index 6a0a3029e..70795664c 100644 --- a/{{cookiecutter.project_slug}}/.gitignore +++ b/{{cookiecutter.project_slug}}/.gitignore @@ -1,81 +1,363 @@ -### OSX ### -.DS_Store -.AppleDouble -.LSOverride - -### SublimeText ### -# cache files for sublime text -*.tmlanguage.cache -*.tmPreferences.cache -*.stTheme.cache - -# workspace files are user-specific -*.sublime-workspace - -# project files should be checked into the repository, unless a significant -# proportion of contributors will probably not be using SublimeText -# *.sublime-project - -# sftp configuration file -sftp-config.json - -# Basics +### Python template +# Byte-compiled / optimized / DLL files +__pycache__/ *.py[cod] -__pycache__ +*$py.class -# Logs -logs -*.log +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs pip-log.txt -npm-debug.log* +pip-delete-this-directory.txt # Unit test / coverage reports +htmlcov/ +.tox/ .coverage -.tox +.coverage.* +.cache nosetests.xml -htmlcov +coverage.xml +*.cover +.hypothesis/ # Translations *.mo *.pot -# Pycharm -.idea/* -{% if cookiecutter.use_pycharm == 'y' %} +# Django stuff: +staticfiles/ + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + + +### Node template +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + + +### Linux template +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + + +### VisualStudioCode template +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + + +{% if cookiecutter.use_pycharm == 'y' -%} # Provided default Pycharm Run/Debug Configurations should be tracked by git # In case of local modifications made by Pycharm, use update-index command # for each changed file, like this: # git update-index --assume-unchanged .idea/{{cookiecutter.project_slug}}.iml -!.idea/runConfigurations/ -!.idea/{{cookiecutter.project_slug}}.iml -!.idea/vcs.xml -!.idea/webResources.xml +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff: +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/dictionaries + +# Sensitive or high-churn files: +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.xml +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + +# Gradle: +.idea/**/gradle.xml +.idea/**/libraries + +# CMake +cmake-build-debug/ + +# Mongo Explorer plugin: +.idea/**/mongoSettings.xml + +## File-based project format: +*.iws + +## Plugin-specific files: + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties {% endif %} -# Vim -*~ -*.swp -*.swo +### Windows template +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db -# npm -node_modules/ +# Dump file +*.stackdump -# Compass -.sass-cache +# Folder config file +Desktop.ini -# virtual environments -.env +# Recycle Bin used on file shares +$RECYCLE.BIN/ -# User-uploaded media -{{ cookiecutter.project_slug }}/media/ +# Windows Installer files +*.cab +*.msi +*.msm +*.msp -{% if cookiecutter.use_mailhog == 'y' and cookiecutter.use_docker == 'n' %} -# MailHog binary +# Windows shortcuts +*.lnk + + +### macOS template +# General +*.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + +### SublimeText template +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Workspace files are user-specific +*.sublime-workspace + +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text +# *.sublime-project + +# SFTP configuration file +sftp-config.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + + +### Vim template +# Swap +[._]*.s[a-v][a-z] +[._]*.sw[a-p] +[._]s[a-v][a-z] +[._]sw[a-p] + +# Session +Session.vim + +# Temporary +.netrwhist + +# Auto-generated tag files +tags + + +### VirtualEnv template +# Virtualenv +# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/ +[Bb]in +[Ii]nclude +[Ll]ib +[Ll]ib64 +[Ll]ocal +[Ss]cripts +pyvenv.cfg +pip-selfcheck.json + + +{% if cookiecutter.use_mailhog == 'y' and cookiecutter.use_docker == 'n' -%} mailhog {% endif %} -staticfiles/ - -.cache/ - +{{ cookiecutter.project_slug }}/media/ From 7bb1d1af2148c9e900917299f67b0fe5f119327e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A1bio=20C=2E=20Barrionuevo=20da=20Luz?= Date: Fri, 25 Aug 2017 09:47:02 -0300 Subject: [PATCH 28/38] fix Caddy link and add LetsEncrypt link on README --- README.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 6ae645fa6..2b239f784 100644 --- a/README.rst +++ b/README.rst @@ -43,7 +43,7 @@ Features * Grunt build for compass and livereload * Send emails via Anymail_ (using Mailgun_ by default, but switchable) * Media storage using Amazon S3 -* Docker support using docker-compose_ for development and production (using _Caddy with LetsEncrypt support) +* Docker support using docker-compose_ for development and production (using Caddy_ with LetsEncrypt_ support) * Procfile_ for deploying to Heroku * Instructions for deploying to PythonAnywhere_ * Run tests with unittest or py.test @@ -80,6 +80,7 @@ Optional Integrations .. _Opbeat: https://opbeat.com/ .. _PythonAnywhere: https://www.pythonanywhere.com/ .. _Caddy: https://caddyserver.com/ +.. _LetsEncrypt: https://letsencrypt.org/ Constraints ----------- From 2f12425ea3da515041d2f0130e44c11626cd811f Mon Sep 17 00:00:00 2001 From: "pyup.io bot" Date: Sat, 26 Aug 2017 19:26:07 +0200 Subject: [PATCH 29/38] Update psycopg2 to 2.7.3.1 (#1303) * Update psycopg2 from 2.7.3 to 2.7.3.1 * Update psycopg2 from 2.7.3 to 2.7.3.1 * Update psycopg2 from 2.7.3 to 2.7.3.1 --- {{cookiecutter.project_slug}}/requirements/base.txt | 2 +- {{cookiecutter.project_slug}}/requirements/production.txt | 2 +- {{cookiecutter.project_slug}}/requirements/test.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index c3258623f..46c78d18d 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -37,7 +37,7 @@ django-allauth==0.33.0 # from http://www.lfd.uci.edu/~gohlke/pythonlibs/#psycopg {% else %} # Python-PostgreSQL Database Adapter -psycopg2==2.7.3 +psycopg2==2.7.3.1 {%- endif %} # Unicode slugification diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt index 7abe06f3f..10386828f 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -6,7 +6,7 @@ # Python-PostgreSQL Database Adapter # If using Win for dev, this assumes Unix in prod # ------------------------------------------------ -psycopg2==2.7.3 +psycopg2==2.7.3.1 {%- endif %} # WSGI Handler diff --git a/{{cookiecutter.project_slug}}/requirements/test.txt b/{{cookiecutter.project_slug}}/requirements/test.txt index f1d331ac9..c12222eb1 100644 --- a/{{cookiecutter.project_slug}}/requirements/test.txt +++ b/{{cookiecutter.project_slug}}/requirements/test.txt @@ -4,7 +4,7 @@ {% if cookiecutter.windows == 'y' -%} # Python-PostgreSQL Database Adapter # If using Win for dev, this assumes Unix in test/prod -psycopg2==2.7.3 +psycopg2==2.7.3.1 {%- endif %} coverage==4.4.1 From c50c6a73be4691bbab03818c2482e59f57e73515 Mon Sep 17 00:00:00 2001 From: Wan Liuyang Date: Mon, 28 Aug 2017 16:00:59 +0800 Subject: [PATCH 30/38] Rename Dockerfile-dev to Dockerfile-local (#1305) * Rename Dockerfile-dev to Dockerfile-local * Add @sfdye to CONTRIBUTORS.rst --- CONTRIBUTORS.rst | 2 ++ .../compose/django/{Dockerfile-dev => Dockerfile-local} | 0 {{cookiecutter.project_slug}}/local.yml | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) rename {{cookiecutter.project_slug}}/compose/django/{Dockerfile-dev => Dockerfile-local} (100%) diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst index f57280e5e..e46c5209a 100644 --- a/CONTRIBUTORS.rst +++ b/CONTRIBUTORS.rst @@ -146,6 +146,7 @@ Listed in alphabetical order. Travis McNeill `@Travistock`_ @tavistock_esq Vitaly Babiy Vivian Guillen `@viviangb`_ + Wan Liuyang `@sfdye`_ @sfdye Will Farley `@goldhand`_ @g01dhand William Archinal `@archinal`_ Yaroslav Halchenko @@ -223,6 +224,7 @@ Listed in alphabetical order. .. _@shireenrao: https://github.com/shireenrao .. _@webyneter: https://github.com/webyneter .. _@show0k: https://github.com/show0k +.. _@sfdye: https://github.com/sfdye .. _@shultz: https://github.com/shultz .. _@siauPatrick: https://github.com/siauPatrick .. _@slafs: https://github.com/slafs diff --git a/{{cookiecutter.project_slug}}/compose/django/Dockerfile-dev b/{{cookiecutter.project_slug}}/compose/django/Dockerfile-local similarity index 100% rename from {{cookiecutter.project_slug}}/compose/django/Dockerfile-dev rename to {{cookiecutter.project_slug}}/compose/django/Dockerfile-local diff --git a/{{cookiecutter.project_slug}}/local.yml b/{{cookiecutter.project_slug}}/local.yml index 94562b9c5..40a6d011a 100644 --- a/{{cookiecutter.project_slug}}/local.yml +++ b/{{cookiecutter.project_slug}}/local.yml @@ -8,7 +8,7 @@ services: django: &django build: context: . - dockerfile: ./compose/django/Dockerfile-dev + dockerfile: ./compose/django/Dockerfile-local depends_on: - postgres{% if cookiecutter.use_mailhog == 'y' %} - mailhog{% endif %} @@ -32,7 +32,7 @@ services: pycharm: build: context: . - dockerfile: ./compose/django/Dockerfile-dev + dockerfile: ./compose/django/Dockerfile-local depends_on: - postgres environment: From 0e1c00d3b3acb7de62a42da0f811fdf70e87ff0d Mon Sep 17 00:00:00 2001 From: Reggie Riser Date: Mon, 28 Aug 2017 15:30:56 -0400 Subject: [PATCH 31/38] Fixed typo in generated comment. (#1306) --- {{cookiecutter.project_slug}}/config/settings/production.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/config/settings/production.py b/{{cookiecutter.project_slug}}/config/settings/production.py index 98949ca0c..bf031d351 100644 --- a/{{cookiecutter.project_slug}}/config/settings/production.py +++ b/{{cookiecutter.project_slug}}/config/settings/production.py @@ -3,7 +3,7 @@ Production Configurations {% if cookiecutter.use_whitenoise == 'y' -%} - Use WhiteNoise for serving static files{% endif %} -- Use Amazon's S3 for {% if cookiecutter.use_whitenoise == 'n' -%}storing static files {% endif %}and uploaded media +- Use Amazon's S3 for storing {% if cookiecutter.use_whitenoise == 'n' -%}static files and {% endif %}uploaded media - Use mailgun to send emails - Use Redis for cache {% if cookiecutter.use_sentry_for_error_reporting == 'y' %} From 8c5c521b29fea5ec3e9fb8acd0c3f27f57739765 Mon Sep 17 00:00:00 2001 From: Shupeyko Nikita Date: Wed, 23 Aug 2017 13:58:10 +0400 Subject: [PATCH 32/38] Revert "Configure pytest to exit after first num failures or errors (#1292)" This reverts commit dec3305cd558f22d9282e2d0e09e9b537a31e861. --- {{cookiecutter.project_slug}}/pytest.ini | 1 - 1 file changed, 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/pytest.ini b/{{cookiecutter.project_slug}}/pytest.ini index 5a6a1ca68..5b4369b89 100644 --- a/{{cookiecutter.project_slug}}/pytest.ini +++ b/{{cookiecutter.project_slug}}/pytest.ini @@ -1,3 +1,2 @@ [pytest] -addopts = --exitfirst DJANGO_SETTINGS_MODULE=config.settings.test From 5f4e1950072ecd3c0c7cb47b5819a421ab18c7f3 Mon Sep 17 00:00:00 2001 From: Reggie Riser Date: Tue, 29 Aug 2017 08:55:15 -0400 Subject: [PATCH 33/38] Loading "static" tags instead of "staticfiles" for Django 1.10+ per https://docs.djangoproject.com/en/dev/releases/1.10/#django-contrib-staticfiles . (#1308) --- .../{{cookiecutter.project_slug}}/templates/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/base.html b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/base.html index e947da5b8..960cd8604 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/base.html +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/base.html @@ -1,4 +1,4 @@ -{% raw %}{% load staticfiles i18n {% endraw %}{% if cookiecutter.use_compressor == "y" %}compress{% endif %}{% raw %}%} +{% raw %}{% load static i18n {% endraw %}{% if cookiecutter.use_compressor == "y" %}compress{% endif %}{% raw %}%} From b70db90506b9265080064fa5f65ed6eecbf67b67 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Tue, 29 Aug 2017 14:18:03 -0700 Subject: [PATCH 34/38] Update boto3 from 1.4.6 to 1.4.7 --- {{cookiecutter.project_slug}}/requirements/production.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt index 10386828f..b9f09ca75 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -16,7 +16,7 @@ gunicorn==19.7.1 # Static and Media Storage # ------------------------------------------------ -boto3==1.4.6 +boto3==1.4.7 django-storages==1.6.5 {% if cookiecutter.use_whitenoise != 'y' -%} Collectfast==0.5.2 From cc3ba8eadf299be58d6ac377bffa4c519eded1cb Mon Sep 17 00:00:00 2001 From: Reggie Riser Date: Thu, 31 Aug 2017 12:23:18 -0400 Subject: [PATCH 35/38] Remove django-braces requirement (equivalent functionality already in Django 1.9+). (#1312) --- {{cookiecutter.project_slug}}/requirements/base.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index 46c78d18d..0e15afab5 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -16,7 +16,6 @@ whitenoise==3.3.0 # Forms -django-braces==1.11.0 django-crispy-forms==1.6.1 # Models From 833a79ff3c4b35dc4cdeff7b0de6582dd3f34ec2 Mon Sep 17 00:00:00 2001 From: Shupeyko Nikita Date: Thu, 31 Aug 2017 19:25:58 +0300 Subject: [PATCH 36/38] Remove pycharm service from Docker setup (#1307) * Remove pycharm service from Docker setup * Update generated project docs --- .../docs/pycharm/configuration.rst | 8 -------- .../docs/pycharm/images/5.png | Bin 113107 -> 0 bytes .../docs/pycharm/images/6.png | Bin 68866 -> 0 bytes {{cookiecutter.project_slug}}/local.yml | 12 ------------ 4 files changed, 20 deletions(-) delete mode 100644 {{cookiecutter.project_slug}}/docs/pycharm/images/5.png delete mode 100644 {{cookiecutter.project_slug}}/docs/pycharm/images/6.png diff --git a/{{cookiecutter.project_slug}}/docs/pycharm/configuration.rst b/{{cookiecutter.project_slug}}/docs/pycharm/configuration.rst index 551da194c..af3b826a7 100644 --- a/{{cookiecutter.project_slug}}/docs/pycharm/configuration.rst +++ b/{{cookiecutter.project_slug}}/docs/pycharm/configuration.rst @@ -25,14 +25,6 @@ Switch to *Docker Compose* and select `local.yml` file from directory of your pr .. image:: images/4.png -Because Pycharm restarts container every time you use Configuration Run, to not have server restarted during running tests, we defined second service in `local.yml` file called pycharm. To use it, you have to add interpreter of second service as well. - -.. image:: images/5.png - -The final result should be: - -.. image:: images/6.png - Having that, click *OK*. Close *Settings* panel, and wait few seconds... .. image:: images/7.png diff --git a/{{cookiecutter.project_slug}}/docs/pycharm/images/5.png b/{{cookiecutter.project_slug}}/docs/pycharm/images/5.png deleted file mode 100644 index 39fac9593e763d6f7972473c6d11069a64c66684..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113107 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
LVN=+a?&Abu;XFyX7sl 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 @guexW<2omBz=%w_C2CXmB(OW$L^-9TVN{ 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 Date: Sat, 2 Sep 2017 08:06:36 +0200 Subject: [PATCH 37/38] Update tox from 2.7.0 to 2.8.0 (#1313) --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b87473c17..b6f1a0af3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,5 +7,5 @@ binaryornot==0.4.4 pytest==3.2.1 pep8==1.7.0 pyflakes==1.6.0 -tox==2.7.0 +tox==2.8.0 pytest-cookies==0.2.0 From ae9f951f451356c825617cf8402df29af37c9f84 Mon Sep 17 00:00:00 2001 From: Shupeyko Nikita Date: Sat, 2 Sep 2017 20:42:07 +0300 Subject: [PATCH 38/38] Use Unix, not Windows environment variable format in Caddyfile (#1314) Closes #1310. --- {{cookiecutter.project_slug}}/compose/caddy/Caddyfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/{{cookiecutter.project_slug}}/compose/caddy/Caddyfile b/{{cookiecutter.project_slug}}/compose/caddy/Caddyfile index 22ec73f4d..d36632e4b 100644 --- a/{{cookiecutter.project_slug}}/compose/caddy/Caddyfile +++ b/{{cookiecutter.project_slug}}/compose/caddy/Caddyfile @@ -1,8 +1,8 @@ -www.{% raw %}{%DOMAIN_NAME%}{% endraw %} { +www.{% raw %}{$DOMAIN_NAME}{% endraw %} { redir https://{{cookiecutter.domain_name}} } -{% raw %}{%DOMAIN_NAME%}{% endraw %} { +{% raw %}{$DOMAIN_NAME}{% endraw %} { proxy / django:5000 { header_upstream Host {host} header_upstream X-Real-IP {remote}