Skip to content

Commit

Permalink
add installation instructions for relay service (#47)
Browse files Browse the repository at this point in the history
* add installation instructions for relay service

* add more docs!

* slight adjustments

* application -> project

* remove within

* add missing 'relay'

* tweaks and tweaks and tweaks

* move beginning sentence to end

* grammar fix
  • Loading branch information
joshuadavidthomas authored Oct 20, 2023
1 parent e67c512 commit bf32802
Showing 1 changed file with 67 additions and 1 deletion.
68 changes: 67 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,64 @@ Okay, so why opt for this setup? A few reasons:

### Relay Service

TODO
The relay service provided by `django-email-relay` should be run on infrastructure that has access to the SMTP server you would like to use. There currently two ways to run the service:

1. A Docker image
2. A `runrelay` management command to be run from within a Django project

If you are using the Docker image, only PostgreSQL is supported. However, when using the management command directly you can use whatever database you are using with the Django project it is being run from, provided your other externally hosted Django projects that you would like to relay emails for also have access to the same database. If you would like the Docker image to support other databases, please [open an issue](https://github.com/westerveltco/django-email-relay/issues/new) and it will be considered.

Installation of the relay service differs depending on whether you are using the provided Docker image or the management command.

#### Docker

A prebuilt Docker image is provided via the GitHub Container Registry, located here:

```
ghcr.io/westerveltco/django-email-relay
```

It can be run anyway you would normally run a Docker container, for instance through the CLI:

```shell
docker run -d \
-e "EMAIL_HOST=smtp.example.com" \
-e "EMAIL_PORT=25" \
--restart unless-stopped \
ghcr.io/westerveltco/django-email-relay:latest
```

It is recommended to pin to a specific version, though if you prefer you can ride the lightning by always pulling the `latest` image.

See the documentation [here](#relay-service-1) for general information about configuring the relay service and [here](#docker-1) for information specifically related to configuring the relay service as a Docker container.

#### Django

If you have a Django project already deployed that has access to the preferred SMTP server, you can skip using the Docker image and install the package and use the included `runrelay` management method instead.

1. Install the package from PyPI:

```shell
pip install django-email-relay
```

2. Add `email_relay` to your `INSTALLED_APPS` setting:

```python
INSTALLED_APPS = [
# ...
"email_relay",
# ...
]
```

3. Run the `runrelay` management command to start the relay service. This can be done many different ways, for instance via a task runner, such as Celery or Django-Q2, or using [supervisord](https://supervisord.org/) or systemd service unit file.

```shell
python manage.py runrelay
```

See the documentation [here](#relay-service-1) for general information about configuring the relay service and [here](#django-1) for information specifically related to configuring the relay service as a Django app.

### Django App

Expand Down Expand Up @@ -123,6 +180,15 @@ TODO

### Relay Service

At a minimum, you should configure how the relay service will connect to your SMTP server, which depending on your SMTP server can include any or all the following Django settings:

- `EMAIL_HOST`
- `EMAIL_PORT`
- `EMAIL_HOST_USER`
- `EMAIL_HOST_PASSWORD`

Additionally, the service can be configured using any setting available to Django by default, for example if you want to set a default from email (`DEFAULT_FROM_EMAIL`) or a common subject prefix (`EMAIL_SUBJECT_PREFIX`).

Configuration of the relay service differs depending on whether you are using the provided Docker image or the management command within a Django project.

#### Docker
Expand Down

0 comments on commit bf32802

Please sign in to comment.