Services

The SMASHDOCs environment is a complement of a few services which are outlined here.

Frontend

Frontend delivers the SMASHDOCs user interface:

The frontend docker container runs a Nginx server which delivers all static content (HTML/CSS/javascript) required for SMASHDOCs web UI.

The container is designed to expect environmental variables for configuration and listens on port 80 by default.

Environmental Variables:

EnvVar Name Description
BASE_URL This resolvable URL tells the frontend where to find the the API backend.
API_KEY_{party name} Generated from the backend.
MODE Use ‘normal’ for SMASHDOCs Stand alone and ‘partner’ for integration mode

Backend

Backenend delivers the SMASHDOCs API:

The Backend docker container provides the API for the Frontend and partner integrations. The container is designed to expect environmental variables for configuration and listens on port 80 by default.

Environmental Variables:

DATABASE_ADDRESS MongoDB Host Address DATABASE_PORT MongoDB Host Port DATABASE_DATABASE MongoDB logical database name DATABASE_USER MongoDB logical database user DATABASE_PASSWORD MongoDB logical database password DATABASE_USE_SSL MongoDB ssl flag API_URL_API_URL Routable URL to API backend HTTP_SERVER_ADDRESS Routable URL to HTTP frontend HTTP_SERVER_SSL_ADDRESS Routable URL to HTTPS frontend EMAIL_SMTP_SERVER_ADDRESS SMTP host for outgoing emails EMAIL_SMTP_SERVER_PORT SMTP port EMAIL_SMTP_USERNAME (optional) SMTP username EMAIL_SMTP_PASSWORD (optional) SMTP password EMAIL_STANDARD_EMAIL (optional) standard from email address EMAIL_STANDARD_FROM (optional) standard from email name ERRORREPORTING_REPORTING_ENABLED (optional) use sentry for error reporting (True/False) ERRORREPORTING_SENTRY_DSN (optional) the sentry dsn for the instance ERRORREPORTING_SERVER_NAME (optional) name for the sentry instance CELERY_ENABLED (optional) use celery for background tasks (True/False) CELERY_BROKER (optional) redis address for the celery broker CELERY_BACKEND (optional) redis address for the celery backend CELERY_BEAT_SCHEDULE_PATH (optional) the filesystem path where the beat schedule file resides PROVISIONING_ENABLED (optional) enable the provisioning API (True/False) PROVISIONING_KEY (optional) the key used for authentication against the provisioning API ================================== ========================================================================

Hint

The EMAIL setup is required, however if no SMTP username and password are supplied, there will be no authentication performed, which is usful for internal mailservers

E-Mail Setup

It is possible to configure a custom SMTP Server for all outgoing emails and to change the subjects of the standard sender email address and the sender name by adding the following environment variables

-e 'EMAIL_STANDARD_EMAIL=info@smashdocs.net' \
-e 'EMAIL_STANDARD_FROM=SMASHDOCs Team' \

MongoDB

The official docker container from MongoDB (https://hub.docker.com/_/mongo/)

NginX

This is a custom NginX build with extra modules which are needed for SMASHDOCs. In a default setup, this container will do the SSL termination.

Overall this container consists of 2 functions:

  1. Web requests and acts as a loadbalancer for frontend and backend connections.
  2. Uploading assets to be stored on disk.

Hint

It is important that this container has access to the same directory on the host system that we create for the backend.