Clone the django-helpdesk repository:
git clone git@github.com:django-helpdesk/django-helpdesk.git
Go to the standalone helpdesk installation directory:
cd django-helpdesk/standalone
Execute the installation script:
./setup.sh
Start the services:
docker-compose up
List the running containers:
docker ps
Execute into the standalone-django-helpdesk-1 container:
docker exec -it standalone-django-helpdesk-1 bash
Change directory to the application's root:
cd /opt/django-helpdesk/standalone
Create a superuser:
python3 manage.py createsuperuser
- Visit localhost:80 in your browser to access the server. Navigate to the /admin URL to set up new users. Ensure to configure the "Site" in the admin section for ticket email URLs to function correctly.
- Update the Caddyfile to replace the localhost URL with your desired production URL.
- Modify the docker-compose file to adjust the paths. By default, files are stored in /tmp.
- For custom configurations, bindmount a local_settings.py into /opt/django-helpdesk/standalone/config/local_settings.py.
To customize the logo in the top-left corner of the helpdesk:
<style> .navbar-brand { background: url("https://www.libertyaces.com/files/liberty-logo.png") no-repeat; background-size: auto; width: 320px; background-size: contain; height: 40px; text-align: right; } </style>
An example local_settings configuration for utilizing AWS SES for email:
from .settings import *
import os
DEFAULT_FROM_EMAIL = "support@bitswan.space"
SERVER_EMAIL = "support@bitswan.space"
AWS_ACCESS_KEY_ID = os.environ.get("AWS_ACCESS_KEY_ID")
EMAIL_BACKEND = "django_ses.SESBackend"
AWS_SES_REGION_NAME = "eu-west-1"
AWS_SES_REGION_ENDPOINT = "email.eu-west-1.amazonaws.com"
AWS_SECRET_ACCESS_KEY = os.environ.get("AWS_SECRET_ACCESS_KEY")
To integrate django-ses, bindmount a file to /opt/extra-dependencies.txt containing:
django-ses
Make sure you update the docker.env file with the necessary secrets.
Working from the previous SES example we add the following to `local_settings`:
AWS_S3_REGION_NAME = os.environ.get("AWS_S3_REGION_NAME", "eu-central-1")
AWS_STORAGE_BUCKET_NAME = os.environ.get("AWS_STORAGE_BUCKET_NAME", "bitswan-helpdesk-attachments")
AWS_QUERYSTRING_AUTH = os.environ.get("AWS_QUERYSTRING_AUTH", True)
AWS_QUERYSTRING_EXPIRE = os.environ.get(
"AWS_QUERYSTRING_EXPIRE", 60 * 60
)
AWS_DEFAULT_ACL = "private"
DEFAULT_FILE_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"
To integrate django-ses, bindmount a file to /opt/extra-dependencies.txt containing:
django-storages
boto3