Configuration¶
After installing Arctyk ITSM using Docker, configure environment variables, database connections, and integrations before launching in production. This guide covers .env, docker-compose.yml, secure deployment, and automated documentation updates.
Environment Variables¶
Arctyk ITSM uses a .env file located in the project root /Arctyk/.env to manage configuration. This file is automatically loaded when running:
Here’s an example .env configured for the default Arctyk ITSM stack:
# ─── General Settings ─────────────────────────────
DEBUG=False
SECRET_KEY=your-strong-secret-key
ALLOWED_HOSTS=yourdomain.com,docs.arctyk.dev
# ─── Database Configuration ───────────────────────
DB_NAME=arctyk
DB_USER=arctyk
DB_PASSWORD=your_db_password
DB_HOST=db
DB_PORT=5433
# ─── Email Settings ───────────────────────────────
EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST=smtp.office365.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=helpdesk@yourdomain.com
EMAIL_HOST_PASSWORD=yourpassword
DEFAULT_FROM_EMAIL=helpdesk@yourdomain.com
# ─── Localization ─────────────────────────────────
TIME_ZONE=America/Toronto
LANGUAGE_CODE=en-ca
# ─── Optional Features ────────────────────────────
ENABLE_JIRA=False
ENABLE_ZENDESK=False
ENABLE_POWER_PLATFORM=False
ENABLE_CELERY=True
ENABLE_CHANGELOG=True
Tip
Never commit your .env file to version control. Store it securely (e.g., Docker Secrets, Vault, or CI/CD secrets).
Secure Documentation Deployment¶
- Documentation is built with MkDocs and deployed automatically to your server using GitHub Actions.
- The docs site (
docs.arctyk.dev) is served by NGINX from/srv/arctyk-docs. - Deployment uses a dedicated
docsdeployuser and SSH key for security. - You can make the docs site private using NGINX basic auth or IP whitelisting.
Automated Docs Versioning¶
- The docs version is set in
mkdocs.ymlunderextra.version.number. - Each deployment automatically updates the Docs Version badge in
README.mdusing the workflow.
Example in mkdocs.yml:
Docker Compose Configuration¶
Your docker-compose.yml defines the Arctyk ITSM runtime stack:
version: "3.9"
services:
web:
build: .
container_name: arctyk_web
command: >
sh -c "python manage.py migrate &&
python manage.py collectstatic --noinput &&
gunicorn helpdesk.asgi:application -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000"
volumes:
- .:/code
- static_volume:/code/staticfiles
- media_volume:/code/media
ports:
- "8000:8000"
env_file:
- .env
depends_on:
- db
restart: unless-stopped
db:
image: postgres:17
container_name: arctyk_db
environment:
POSTGRES_DB: ${DB_NAME}
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
ports:
- "5433:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
volumes:
postgres_data:
static_volume:
media_volume:
This configuration ensures:
- The web service builds your Django app and runs via Gunicorn + UvicornWorker.
- The db service runs PostgreSQL 17 on port 5433.
- Static and media files persist via Docker volumes.
Django Settings Overview¶
Arctyk ITSM’s helpdesk/settings.py automatically loads configuration from your .env. You rarely need to modify this file directly — just adjust the environment values.
Key settings linked to your .env:
| Setting | Description | Example |
|---|---|---|
DEBUG | Enables or disables debug mode | False |
SECRET_KEY | Unique Django secret key | your-strong-secret-key |
ALLOWED_HOSTS | Allowed domains | localhost, arctyk.local |
DATABASES | Database connection details | Loaded from .env |
EMAIL_* | SMTP configuration | Loaded from .env |
TIME_ZONE | Django timezone | America/Toronto |
Database Configuration¶
Arctyk ITSM uses PostgreSQL as its default database. Your connection is fully defined in .env, and mapped in docker-compose.yml under the db service.
If your PostgreSQL server runs externally or on a different port, update:
To apply changes:
You can verify the connection inside the web container:
Email Configuration¶
Email enables features like:
- Ticket creation/assignment notifications
- Password reset emails
- Daily summaries
Use the SMTP backend (recommended for production):
EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST=smtp.office365.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=helpdesk@yourdomain.com
EMAIL_HOST_PASSWORD=yourpassword
DEFAULT_FROM_EMAIL=helpdesk@yourdomain.com
To test your setup:
Optional Features¶
Arctyk ITSM includes modular integrations you can enable as needed. Set the following in your .env file:
| Feature | Variable | Default | Description |
|---|---|---|---|
| Jira Integration | ENABLE_JIRA | False | Connect tickets with Jira issues |
| Zendesk Bridge | ENABLE_ZENDESK | False | Sync with existing Zendesk data |
| Power Platform | ENABLE_POWER_PLATFORM | False | Allow Power Automate / Power Apps API access |
| Scheduled Tasks | ENABLE_CELERY | True | Enable Celery for background jobs |
| Change Logging | ENABLE_CHANGELOG | True | Track changes to assets and tickets |
Security Recommendations¶
- Set
DEBUG=False - Use a long, unique
SECRET_KEY - Limit
ALLOWED_HOSTSto your actual domains - Serve over HTTPS behind NGINX
- Keep
.envand database volumes out of version control - Use a dedicated deploy user for CI/CD
- Schedule regular backups for:
/var/lib/postgresql/data/code/media.envand config files
Next Steps¶
- Continue to Deployment → for production setup.
- Or explore the User Guide → to start using Arctyk ITSM.