From 535e90f31287e978a8741b5643ba36107a712ffc Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Fri, 23 Jan 2026 16:11:15 -0800 Subject: [PATCH 1/4] feat: Expose settings and defaults for sending invite links --- docs/configuration.md | 4 ++++ docs/quickstart.md | 18 +++++++++++++++--- on-prem/.env.example | 5 +++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index 9b059e1..4fda044 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -35,6 +35,7 @@ These have defaults but you'll likely want to customize them. | `SMTP_PORT` | int | `587` | SMTP server port | | `SMTP_SECURE` | bool | `false` | Whether SMTP uses TLS | | `AUTOMATED_REPORTS_EMAIL_FROM` | string | `Currents Report ` | From address for automated report emails | +| `INVITE_EMAIL_FROM` | string | `Currents App ` | From address for invitation emails | | `FILE_STORAGE_ENDPOINT` | string | `http://localhost:9000` | Object storage endpoint (external access) | | `FILE_STORAGE_BUCKET` | string | `currents` | Object storage bucket name | | `FILE_STORAGE_ACCESS_KEY_ID` | string | `${RUSTFS_ACCESS_KEY}` | Object storage access key ID | @@ -64,6 +65,9 @@ Less commonly changed settings with sensible defaults. | `FILE_STORAGE_INTERNAL_ENDPOINT` | string | `http://host.docker.internal:9000` | Object storage internal endpoint | | `FILE_STORAGE_FORCE_PATH_STYLE` | bool | _(commented)_ | Use path-style S3 URLs (auto-set to `true` when using RustFS profile) | | `AUTOMATED_REPORTS_EMAIL_BCC` | string | _(empty)_ | BCC address for automated reports | +| `INVITE_EMAIL_BCC` | string | _(empty)_ | BCC address for invitation emails | +| `INVITE_EXPIRATION_DAYS` | int | `14` | Number of days before invitations expire | +| `EMAIL_LINKS_BASE_URL` | string | `${APP_BASE_URL}` | Base URL for links in emails (derived from APP_BASE_URL) | ### Docker Compose Configuration diff --git a/docs/quickstart.md b/docs/quickstart.md index 0bec565..2ae88ae 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -122,9 +122,21 @@ SMTP_SECURE=false SMTP_USER=your-smtp-username SMTP_PASS=your-smtp-password -# From address for automated emails -AUTOMATED_REPORTS_EMAIL_FROM=Currents Report -``` +# From addresses for outgoing emails +AUTOMATED_REPORTS_EMAIL_FROM="Currents Report " +INVITE_EMAIL_FROM="Currents App " +``` + +> ⚠️ **Important: FROM Address Configuration** +> +> You **must** change the FROM addresses to use a domain your SMTP provider is authorized to send from. The format is `"Display Name "`. +> +> If you leave the default `example.com` addresses, emails will be rejected with DMARC errors: +> ``` +> 5.7.26 Unauthenticated email from example.com is not accepted due to domain's DMARC policy +> ``` +> +> **For testing:** If using a sandbox (e.g., Mailgun sandbox), use your sandbox domain like `no-reply@sandboxXXXXX.mailgun.org`. Emails may land in spam, but they will be delivered. > **Note:** `SMTP_SECURE=false` uses STARTTLS (explicit TLS) which starts unencrypted then upgrades to TLS—this is the standard for port 587 and recommended for most providers. Set `SMTP_SECURE=true` for implicit TLS connections (port 465), which establish TLS immediately without upgrading. diff --git a/on-prem/.env.example b/on-prem/.env.example index 8db0054..7d852d2 100644 --- a/on-prem/.env.example +++ b/on-prem/.env.example @@ -63,6 +63,8 @@ CURRENTS_RECORD_API_URL=http://localhost:1234 SMTP_PORT=587 SMTP_SECURE=false AUTOMATED_REPORTS_EMAIL_FROM="Currents Report " +INVITE_EMAIL_FROM="Currents App " + ## RustFS (optional) RUSTFS_ACCESS_KEY=rustfs-access-key @@ -102,6 +104,7 @@ DASHBOARD_URL=${APP_BASE_URL} BETTER_AUTH_URL=${APP_BASE_URL} AUTOMATED_REPORTS_CURRENTS_DASHBOARD_HOSTNAME=${APP_BASE_URL} GITLAB_REDIRECT_URL=${APP_BASE_URL}/integrations/gitlab/callback +EMAIL_LINKS_BASE_URL=${APP_BASE_URL} # Redis (default points to redis service in compose network) @@ -114,6 +117,8 @@ FILE_STORAGE_INTERNAL_ENDPOINT="http://host.docker.internal:9000" # Email (additional settings) AUTOMATED_REPORTS_EMAIL_BCC= +INVITE_EMAIL_BCC= +INVITE_EXPIRATION_DAYS= # Observability (Coralogix) # CORALOGIX_API_ENDPOINT= From 48eea6621b6ae2a8d1ee96224b51178325e38a3d Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Fri, 23 Jan 2026 16:17:27 -0800 Subject: [PATCH 2/4] chore: fix example env path matching for smoke test workflow --- .github/workflows/smoke-test-services.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/smoke-test-services.yml b/.github/workflows/smoke-test-services.yml index 1e0e6eb..70c4db9 100644 --- a/.github/workflows/smoke-test-services.yml +++ b/.github/workflows/smoke-test-services.yml @@ -8,13 +8,13 @@ on: - 'on-prem/docker-compose.*.yml' - 'on-prem/templates/**' - 'on-prem/scripts/**' - - '.env.example' + - 'on-prem/.env.example' pull_request: paths: - 'on-prem/docker-compose.*.yml' - 'on-prem/templates/**' - 'on-prem/scripts/**' - - '.env.example' + - 'on-prem/.env.example' workflow_dispatch: jobs: From a1d0a8732d12577fd6103aa3cc801cef1019bed0 Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Mon, 26 Jan 2026 09:24:13 -0800 Subject: [PATCH 3/4] chore: add more links to docs --- docs/backup-restore.md | 2 +- docs/index.md | 10 +++++++--- docs/quickstart.md | 15 ++++++++++----- docs/upgrading.md | 1 + 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/docs/backup-restore.md b/docs/backup-restore.md index 1cc4c5c..fda316c 100644 --- a/docs/backup-restore.md +++ b/docs/backup-restore.md @@ -130,7 +130,7 @@ docker compose start Before restoring, ensure you have: - Your backed up `.env` file (or recreate with the same credentials) -- Your `docker-compose.yml` file (or clone the repository and run setup) +- Your `docker-compose.yml` file (or [clone the repository](https://github.com/currents-dev/docker) and run setup) ### Full Restore diff --git a/docs/index.md b/docs/index.md index 39882f6..821a4bd 100644 --- a/docs/index.md +++ b/docs/index.md @@ -17,6 +17,8 @@ Docker Compose configuration for self-hosted Currents deployment. ## Quick Setup +Clone the [currents-dev/docker repository](https://github.com/currents-dev/docker) and run setup: + ```bash git clone https://github.com/currents-dev/docker.git currents-docker cd currents-docker/on-prem @@ -24,13 +26,15 @@ cd currents-docker/on-prem docker compose up -d ``` +You can also [browse the repository on GitHub](https://github.com/currents-dev/docker/tree/main/on-prem) to explore configuration files. + ## Configuration Profiles | Profile | Services Included | Use Case | |---------|-------------------|----------| -| `full` | Redis, MongoDB, ClickHouse, RustFS | Running everything locally | -| `database` | Redis, MongoDB, ClickHouse | Using external S3-compatible storage | -| `cache` | Redis | Using external MongoDB, ClickHouse, and S3 | +| [`full`](https://github.com/currents-dev/docker/blob/main/on-prem/docker-compose.full.yml) | Redis, MongoDB, ClickHouse, RustFS | Running everything locally | +| [`database`](https://github.com/currents-dev/docker/blob/main/on-prem/docker-compose.database.yml) | Redis, MongoDB, ClickHouse | Using external S3-compatible storage | +| [`cache`](https://github.com/currents-dev/docker/blob/main/on-prem/docker-compose.cache.yml) | Redis | Using external MongoDB, ClickHouse, and S3 | ## Additional Resources diff --git a/docs/quickstart.md b/docs/quickstart.md index 2ae88ae..7ac8861 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -11,11 +11,15 @@ This guide walks you through setting up Currents on-premises using Docker Compos ## Step 1: Clone the Repository +Clone the [currents-dev/docker repository](https://github.com/currents-dev/docker): + ```bash git clone https://github.com/currents-dev/docker.git currents-docker cd currents-docker/on-prem ``` +> **Tip:** You can [browse the repository on GitHub](https://github.com/currents-dev/docker/tree/main/on-prem) to explore the configuration files before cloning. + ## Step 2: Create Environment File A `.env` file is required to run the services. You have two options: @@ -41,15 +45,15 @@ If you prefer to configure manually: cp .env.example .env ``` -Then edit `.env` to fill in the required secrets. See [Configuration Reference](./configuration.md) for generation commands. +Then edit `.env` to fill in the required secrets. See the [`.env.example` file](https://github.com/currents-dev/docker/blob/main/on-prem/.env.example) for all available variables and [Configuration Reference](./configuration.md) for generation commands. ### Configuration Profiles | Profile | File | Services Included | Use Case | |---------|------|-------------------|----------| -| `full` | `docker-compose.full.yml` | Redis, MongoDB, ClickHouse, RustFS | Running everything locally | -| `database` | `docker-compose.database.yml` | Redis, MongoDB, ClickHouse | Using external S3-compatible storage | -| `cache` | `docker-compose.cache.yml` | Redis | Using external MongoDB, ClickHouse, and S3 | +| `full` | [`docker-compose.full.yml`](https://github.com/currents-dev/docker/blob/main/on-prem/docker-compose.full.yml) | Redis, MongoDB, ClickHouse, RustFS | Running everything locally | +| `database` | [`docker-compose.database.yml`](https://github.com/currents-dev/docker/blob/main/on-prem/docker-compose.database.yml) | Redis, MongoDB, ClickHouse | Using external S3-compatible storage | +| `cache` | [`docker-compose.cache.yml`](https://github.com/currents-dev/docker/blob/main/on-prem/docker-compose.cache.yml) | Redis | Using external MongoDB, ClickHouse, and S3 | ## Step 3: Configure Environment @@ -517,6 +521,7 @@ DC_CLICKHOUSE_VOLUME=clickhouse-data ## Next Steps - Review the [Configuration Reference](./configuration.md) for all available options +- Set up [Backup & Restore](./backup-restore.md) procedures for production use +- Read the [Upgrading Guide](./upgrading.md) to learn how to update to new versions - Configure [Logging for Production](./logging.md) to ensure proper log management - Read the [Support Policy](./support.md) to understand support boundaries -- Set up monitoring and backups for production use diff --git a/docs/upgrading.md b/docs/upgrading.md index 6e049b2..5d1d4b3 100644 --- a/docs/upgrading.md +++ b/docs/upgrading.md @@ -150,6 +150,7 @@ If services fail with missing configuration errors: ./scripts/check-env.sh # Compare your .env with .env.example for new required variables +# See: https://github.com/currents-dev/docker/blob/main/on-prem/.env.example diff <(grep -v '^#' .env | grep '=' | cut -d'=' -f1 | sort) \ <(grep -v '^#' .env.example | grep '=' | cut -d'=' -f1 | sort) ``` From eaf31844fefcdd5a728287b4a76392f9f951a2d5 Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Mon, 26 Jan 2026 09:37:25 -0800 Subject: [PATCH 4/4] chore: Add reference to helm charts --- README.md | 2 ++ docs/README.md | 2 ++ docs/index.md | 2 ++ 3 files changed, 6 insertions(+) diff --git a/README.md b/README.md index e99cc97..68c5cd4 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,8 @@ cd on-prem docker compose up -d ``` +> For Kubernetes deployments and scaled production environments, we recommend using the [Currents Helm Chart](https://currents-dev.github.io/helm-charts/docs/) instead. + ## Development - [On-Prem Development Guide](on-prem/README.md) — Architecture, scripts, and contribution guidelines diff --git a/docs/README.md b/docs/README.md index 376a2ba..b099fdb 100644 --- a/docs/README.md +++ b/docs/README.md @@ -6,6 +6,8 @@ Currents on-premise installation using Docker Compose provides a containerized d The Docker Compose configuration is modular, allowing you to choose which data services to run locally versus connecting to external managed services. +> For Kubernetes deployments and scaled production environments, see the [Currents Helm Chart](https://currents-dev.github.io/helm-charts/docs/) documentation. + ## Resources - [🚀 Quickstart Guide](./quickstart.md) diff --git a/docs/index.md b/docs/index.md index 821a4bd..d437aa7 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,6 +6,8 @@ title: Currents On-Prem Documentation Docker Compose configuration for self-hosted Currents deployment. +> For Kubernetes deployments and scaled production environments, see the [Currents Helm Chart](https://currents-dev.github.io/helm-charts/docs/) documentation. + ## Getting Started - [Quickstart Guide](quickstart.md) — Get up and running with Docker Compose