diff --git a/docs/developing-locally.rst b/docs/developing-locally.rst index 4963a9cd..5cb51aed 100644 --- a/docs/developing-locally.rst +++ b/docs/developing-locally.rst @@ -41,7 +41,14 @@ You can now run the usual Django ``migrate`` and ``runserver`` commands:: django-allauth sends an email to verify users (and superusers) after signup and login (if they are still not verified). To send email you need to `configure your email backend`_ .. _configure your email backend: http://docs.djangoproject.com/en/1.9/topics/email/#smtp-backend +{% if cookiecutter.use_docker == 'y' %} +In development you can (optionally) use MailHog_ for email testing. MailHog is added as docker-container. To use MailHog:: +1. Make sure, that ``mailhog`` docker container is up and running +2. Open your browser and go to ``http://127.0.0.1:8025`` + +.. _Mailhog: https://github.com/mailhog/MailHog/ +{% else %} In development you can (optionally) use MailHog_ for email testing. MailHog is built with Go so there are no dependencies. To use MailHog:: 1. `Download the latest release`_ for your operating system @@ -52,7 +59,7 @@ In development you can (optionally) use MailHog_ for email testing. MailHog is b .. _Mailhog: https://github.com/mailhog/MailHog/ .. _Download the latest release: https://github.com/mailhog/MailHog/releases - +{% endif %} Alternatively simply output emails to the console via: ``EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'`` In production basic email configuration is setup to send emails with Mailgun_ diff --git a/{{cookiecutter.project_slug}}/.gitignore b/{{cookiecutter.project_slug}}/.gitignore index 709d3a92..a1f2fc27 100644 --- a/{{cookiecutter.project_slug}}/.gitignore +++ b/{{cookiecutter.project_slug}}/.gitignore @@ -68,5 +68,12 @@ node_modules/ # User-uploaded media {{ cookiecutter.project_slug }}/media/ +======= +{{ cookiecutter.repo_name }}/media/ + +# Hitch directory +tests/.hitch +{% if cookiecutter.use_mailhog == 'y' and cookiecutter.use_docker == 'n'%} # MailHog binary mailhog +{% endif %} diff --git a/{{cookiecutter.project_slug}}/Gruntfile.js b/{{cookiecutter.project_slug}}/Gruntfile.js index 1eaade28..e5fbccee 100644 --- a/{{cookiecutter.project_slug}}/Gruntfile.js +++ b/{{cookiecutter.project_slug}}/Gruntfile.js @@ -112,14 +112,14 @@ module.exports = function (grunt) { runDjango: { cmd: 'python <%= paths.manageScript %> runserver' }, - {% if cookiecutter.use_mailhog == "y" -%}runMailHog: { + {% if cookiecutter.use_mailhog == "y" and cookiecutter.use_docker == 'n' -%}runMailHog: { cmd: './mailhog' },{%- endif %} } }); grunt.registerTask('serve', [ - {% if cookiecutter.use_mailhog == "y" -%} + {% if cookiecutter.use_mailhog == "y" and cookiecutter.use_docker == 'n' -%} 'bgShell:runMailHog', {%- endif %} 'bgShell:runDjango', diff --git a/{{cookiecutter.project_slug}}/README.rst b/{{cookiecutter.project_slug}}/README.rst index 4717b7b9..38d923b6 100644 --- a/{{cookiecutter.project_slug}}/README.rst +++ b/{{cookiecutter.project_slug}}/README.rst @@ -77,7 +77,16 @@ Please note: For Celery's import magic to work, it is important *where* the cele Email Server ^^^^^^^^^^^^ +{% if cookiecutter.use_docker == 'y' %} +In development, it is often nice to be able to see emails that are being sent from your application. For that reason local SMTP server `MailHog`_ with a web interface is available as docker container. +.. _mailhog: https://github.com/mailhog/MailHog + +Container mailhog will start automatically when you will run all docker containers. +Please check `cookiecutter-django Docker documentation`_ for more details how to start all containers. + +With MailHog running, to view messages that are sent by your application, open your browser and go to ``http://127.0.0.1:8025`` +{% else %} In development, it is often nice to be able to see emails that are being sent from your application. If you choose to use `MailHog`_ when generating the project a local SMTP server with a web interface will be available. .. _mailhog: https://github.com/mailhog/MailHog @@ -92,7 +101,7 @@ To start the service, make sure you have nodejs installed, and then type the fol To view messages that are sent by your application, open your browser and go to ``http://127.0.0.1:8025`` The email server will exit when you exit the Grunt task on the CLI with Ctrl+C. - +{% endif %} {% endif %} {% if cookiecutter.use_sentry == "y" %} diff --git a/{{cookiecutter.project_slug}}/config/settings/local.py b/{{cookiecutter.project_slug}}/config/settings/local.py index b8408c0a..b3227a2b 100644 --- a/{{cookiecutter.project_slug}}/config/settings/local.py +++ b/{{cookiecutter.project_slug}}/config/settings/local.py @@ -23,12 +23,15 @@ SECRET_KEY = env('DJANGO_SECRET_KEY', default='CHANGEME!!!') # Mail settings # ------------------------------------------------------------------------------ -EMAIL_HOST = 'localhost' + EMAIL_PORT = 1025 -{%if cookiecutter.use_mailhog == 'n' -%} +{% if cookiecutter.use_mailhog == 'y' and cookiecutter.use_docker == 'y' %} +EMAIL_HOST = env("EMAIL_HOST", default='mailhog') +{% else %} +EMAIL_HOST = 'localhost' EMAIL_BACKEND = env('DJANGO_EMAIL_BACKEND', default='django.core.mail.backends.console.EmailBackend') -{%- endif %} +{% endif %} # CACHING # ------------------------------------------------------------------------------ diff --git a/{{cookiecutter.project_slug}}/dev.yml b/{{cookiecutter.project_slug}}/dev.yml index ab60720b..725ae50e 100644 --- a/{{cookiecutter.project_slug}}/dev.yml +++ b/{{cookiecutter.project_slug}}/dev.yml @@ -28,6 +28,10 @@ services: - "8000:8000" links: - postgres +{% if cookiecutter.use_mailhog == 'y' %} + - mailhog +{% endif %} + {% if cookiecutter.use_pycharm == 'y' %} pycharm: build: @@ -42,3 +46,10 @@ services: links: - postgres {% endif %} + +{% if cookiecutter.use_mailhog == 'y' %} + mailhog: + image: mailhog/mailhog + ports: + - "8025:8025" +{% endif %}