[GH-ISSUE #1307] Email #368

Open
opened 2026-02-26 18:46:42 +03:00 by kerem · 43 comments
Owner

Originally created by @omoses43 on GitHub (Aug 27, 2024).
Original GitHub issue: https://github.com/documenso/documenso/issues/1307

Not receiving a reset password email or an email to confirm my account

Originally created by @omoses43 on GitHub (Aug 27, 2024). Original GitHub issue: https://github.com/documenso/documenso/issues/1307 Not receiving a reset password email or an email to confirm my account
Author
Owner

@github-actions[bot] commented on GitHub (Aug 27, 2024):

Thank you for opening your first issue and for being a part of the open signing revolution!

One of our team members will review it and get back to you as soon as it possible 💚

Meanwhile, please feel free to hop into our community in Discord

<!-- gh-comment-id:2313276852 --> @github-actions[bot] commented on GitHub (Aug 27, 2024): Thank you for opening your first issue and for being a part of the open signing revolution! <br /> One of our team members will review it and get back to you as soon as it possible 💚 <br /> Meanwhile, please feel free to hop into our community in [Discord](https://documen.so/discord)
Author
Owner

@Dvalin21 commented on GitHub (Aug 28, 2024):

Not receiving a reset password email or an email to confirm my account

I've been having that same issue. I haven't gotten a response here or discord

<!-- gh-comment-id:2314266206 --> @Dvalin21 commented on GitHub (Aug 28, 2024): > Not receiving a reset password email or an email to confirm my account I've been having that same issue. I haven't gotten a response here or discord
Author
Owner

@illia-stv commented on GitHub (Sep 8, 2024):

Same problem😪

<!-- gh-comment-id:2336633098 --> @illia-stv commented on GitHub (Sep 8, 2024): Same problem😪
Author
Owner

@illia-stv commented on GitHub (Sep 8, 2024):

Alright, I didn't have a SMTP server so I needed to just download MailHog (an email testing tool) and run it. By default, it runs on 0.0.0.0:1025, so you just need to set NEXT_PRIVATE_SMTP_HOST="0.0.0.0" and NEXT_PRIVATE_SMTP_PORT=1025 in the .env file. Then, you can catch the confirmation email in the MailHog web app, which runs on 127.0.0.1:8025. That’s how I solved the problem for myself.

<!-- gh-comment-id:2336725031 --> @illia-stv commented on GitHub (Sep 8, 2024): Alright, I didn't have a SMTP server so I needed to just download [MailHog](https://github.com/mailhog/MailHog) (an email testing tool) and run it. By default, it runs on `0.0.0.0:1025`, so you just need to set `NEXT_PRIVATE_SMTP_HOST="0.0.0.0"` and `NEXT_PRIVATE_SMTP_PORT=1025` in the `.env` file. Then, you can catch the confirmation email in the MailHog web app, which runs on `127.0.0.1:8025`. That’s how I solved the problem for myself.
Author
Owner

@Dvalin21 commented on GitHub (Sep 9, 2024):

Alright, I didn't have a SMTP server so I needed to just downloaded MailHog (an email testing tool) and run it. By default, it runs on 0.0.0.0:1025, so you just need to set NEXT_PRIVATE_SMTP_HOST="0.0.0.0" and NEXT_PRIVATE_SMTP_PORT=1025 in the .env file. Then, you can catch the confirmation email in the MailHog web app, which runs on 127.0.0.1:8025. That’s how I solved the problem for myself.

I may have to try that. Its just crazy you have to go around about way to just to get it to send an email to confirm your account.

<!-- gh-comment-id:2338665758 --> @Dvalin21 commented on GitHub (Sep 9, 2024): > Alright, I didn't have a SMTP server so I needed to just downloaded [MailHog](https://github.com/mailhog/MailHog) (an email testing tool) and run it. By default, it runs on `0.0.0.0:1025`, so you just need to set `NEXT_PRIVATE_SMTP_HOST="0.0.0.0"` and `NEXT_PRIVATE_SMTP_PORT=1025` in the .env file. Then, you can catch the confirmation email in the MailHog web app, which runs on `127.0.0.1:8025`. That’s how I solved the problem for myself. I may have to try that. Its just crazy you have to go around about way to just to get it to send an email to confirm your account.
Author
Owner

@ephraimduncan commented on GitHub (Sep 21, 2024):

If you're not receiving reset password emails or account confirmation emails, run npm run d in your terminal. This will starts the necessary services, including the email server with Inbucket.

Once running, you can access the incoming mail server at http://localhost:9000/. Check this interface to see if the reset password and account confirmation emails are being processed correctly.

<!-- gh-comment-id:2365339402 --> @ephraimduncan commented on GitHub (Sep 21, 2024): If you're not receiving reset password emails or account confirmation emails, run `npm run d` in your terminal. This will starts the necessary services, including the email server with `Inbucket`. Once running, you can access the incoming mail server at `http://localhost:9000/`. Check this interface to see if the reset password and account confirmation emails are being processed correctly.
Author
Owner

@parasiteoflife commented on GitHub (Sep 23, 2024):

I don't think that will fix the problem in my case because my problem is not the lack of an email server, I have one setup that has been tested to send and receive mail, I don't need Inbucket or at least I shouldn't need it.
Anyway, this is the output:

npm warn ERESOLVE overriding peer dependency
npm warn While resolving: openai@4.63.0
npm warn Found: zod@3.22.3
npm warn node_modules/@trigger.dev/cli/node_modules/zod
npm warn   zod@"3.22.3" from @trigger.dev/cli@2.3.19
npm warn   node_modules/@trigger.dev/cli
npm warn     dev @trigger.dev/cli@"^2.3.18" from the root project
npm warn
npm warn Could not resolve dependency:
npm warn peerOptional zod@"^3.23.8" from openai@4.63.0
npm warn node_modules/@trigger.dev/cli/node_modules/openai
npm warn   openai@"^4.5.0" from @trigger.dev/cli@2.3.19
npm warn   node_modules/@trigger.dev/cli
npm warn
npm warn Conflicting peer dependency: zod@3.23.8
npm warn node_modules/zod
npm warn   peerOptional zod@"^3.23.8" from openai@4.63.0
npm warn   node_modules/@trigger.dev/cli/node_modules/openai
npm warn     openai@"^4.5.0" from @trigger.dev/cli@2.3.19
npm warn     node_modules/@trigger.dev/cli
npm error code E404
npm error 404 Not Found - GET https://registry.npmjs.org/@documenso%2fassets - Not found
npm error 404
npm error 404  '@documenso/assets@*' is not in this registry.
npm error 404
npm error 404 Note that you can also install from a
npm error 404 tarball, folder, http url, or git url.
<!-- gh-comment-id:2369315941 --> @parasiteoflife commented on GitHub (Sep 23, 2024): I don't think that will fix the problem in my case because my problem is not the lack of an email server, I have one setup that has been tested to send and receive mail, I don't need Inbucket or at least I shouldn't need it. Anyway, this is the output: ``` npm warn ERESOLVE overriding peer dependency npm warn While resolving: openai@4.63.0 npm warn Found: zod@3.22.3 npm warn node_modules/@trigger.dev/cli/node_modules/zod npm warn zod@"3.22.3" from @trigger.dev/cli@2.3.19 npm warn node_modules/@trigger.dev/cli npm warn dev @trigger.dev/cli@"^2.3.18" from the root project npm warn npm warn Could not resolve dependency: npm warn peerOptional zod@"^3.23.8" from openai@4.63.0 npm warn node_modules/@trigger.dev/cli/node_modules/openai npm warn openai@"^4.5.0" from @trigger.dev/cli@2.3.19 npm warn node_modules/@trigger.dev/cli npm warn npm warn Conflicting peer dependency: zod@3.23.8 npm warn node_modules/zod npm warn peerOptional zod@"^3.23.8" from openai@4.63.0 npm warn node_modules/@trigger.dev/cli/node_modules/openai npm warn openai@"^4.5.0" from @trigger.dev/cli@2.3.19 npm warn node_modules/@trigger.dev/cli npm error code E404 npm error 404 Not Found - GET https://registry.npmjs.org/@documenso%2fassets - Not found npm error 404 npm error 404 '@documenso/assets@*' is not in this registry. npm error 404 npm error 404 Note that you can also install from a npm error 404 tarball, folder, http url, or git url. ```
Author
Owner

@ephraimduncan commented on GitHub (Sep 24, 2024):

@parasiteoflife Can you try running npm run reset:hard && npm run d and still see if the issue persists?

<!-- gh-comment-id:2370351457 --> @ephraimduncan commented on GitHub (Sep 24, 2024): @parasiteoflife Can you try running `npm run reset:hard && npm run d` and still see if the issue persists?
Author
Owner

@parasiteoflife commented on GitHub (Sep 24, 2024):

/app $ npm run reset:hard && npm run d

> @documenso/root@1.7.1-rc.3 reset:hard
> npm run clean && npm i && npm run prisma:generate


> @documenso/root@1.7.1-rc.3 clean
> turbo run clean && rimraf node_modules

sh: turbo: not found
/app $ npm i turbo
npm warn ERESOLVE overriding peer dependency
npm warn While resolving: openai@4.63.0
npm warn Found: zod@3.22.3
npm warn node_modules/@trigger.dev/cli/node_modules/zod
npm warn   zod@"3.22.3" from @trigger.dev/cli@2.3.19
npm warn   node_modules/@trigger.dev/cli
npm warn     dev @trigger.dev/cli@"^2.3.18" from the root project
npm warn
npm warn Could not resolve dependency:
npm warn peerOptional zod@"^3.23.8" from openai@4.63.0
npm warn node_modules/@trigger.dev/cli/node_modules/openai
npm warn   openai@"^4.5.0" from @trigger.dev/cli@2.3.19
npm warn   node_modules/@trigger.dev/cli
npm warn
npm warn Conflicting peer dependency: zod@3.23.8
npm warn node_modules/zod
npm warn   peerOptional zod@"^3.23.8" from openai@4.63.0
npm warn   node_modules/@trigger.dev/cli/node_modules/openai
npm warn     openai@"^4.5.0" from @trigger.dev/cli@2.3.19
npm warn     node_modules/@trigger.dev/cli
npm error code E404
npm error 404 Not Found - GET https://registry.npmjs.org/@documenso%2fassets - Not found
npm error 404
npm error 404  '@documenso/assets@*' is not in this registry.
npm error 404
npm error 404 Note that you can also install from a
npm error 404 tarball, folder, http url, or git url.

npm error A complete log of this run can be found in: /home/nextjs/.npm/_logs/2024-09-24T07_51_19_491Z-debug-0.log
<!-- gh-comment-id:2370550657 --> @parasiteoflife commented on GitHub (Sep 24, 2024): ``` /app $ npm run reset:hard && npm run d > @documenso/root@1.7.1-rc.3 reset:hard > npm run clean && npm i && npm run prisma:generate > @documenso/root@1.7.1-rc.3 clean > turbo run clean && rimraf node_modules sh: turbo: not found ``` ``` /app $ npm i turbo npm warn ERESOLVE overriding peer dependency npm warn While resolving: openai@4.63.0 npm warn Found: zod@3.22.3 npm warn node_modules/@trigger.dev/cli/node_modules/zod npm warn zod@"3.22.3" from @trigger.dev/cli@2.3.19 npm warn node_modules/@trigger.dev/cli npm warn dev @trigger.dev/cli@"^2.3.18" from the root project npm warn npm warn Could not resolve dependency: npm warn peerOptional zod@"^3.23.8" from openai@4.63.0 npm warn node_modules/@trigger.dev/cli/node_modules/openai npm warn openai@"^4.5.0" from @trigger.dev/cli@2.3.19 npm warn node_modules/@trigger.dev/cli npm warn npm warn Conflicting peer dependency: zod@3.23.8 npm warn node_modules/zod npm warn peerOptional zod@"^3.23.8" from openai@4.63.0 npm warn node_modules/@trigger.dev/cli/node_modules/openai npm warn openai@"^4.5.0" from @trigger.dev/cli@2.3.19 npm warn node_modules/@trigger.dev/cli npm error code E404 npm error 404 Not Found - GET https://registry.npmjs.org/@documenso%2fassets - Not found npm error 404 npm error 404 '@documenso/assets@*' is not in this registry. npm error 404 npm error 404 Note that you can also install from a npm error 404 tarball, folder, http url, or git url. npm error A complete log of this run can be found in: /home/nextjs/.npm/_logs/2024-09-24T07_51_19_491Z-debug-0.log ```
Author
Owner

@jokoburger commented on GitHub (Sep 28, 2024):

I'm having the same issue, that no verification mail is sent out. (Docker compose installation & SMTP credentials are correct).
The logs are non really helping. (Also tried using npm run dx && npm run dev)

I already have port 9000 in use on the host. Is there a way to access the SMTP UI on another port?

Logs:
2024-09-28T15:27:43.822369742Z Eligible jobs: [ 'Send Confirmation Email' ] 2024-09-28T15:27:43.917264804Z Submitting job to endpoint: http://192.168.178.148:4701/api/jobs/send.signup.confirmation.email/**** 2024-09-28T15:27:43.929658265Z [JOBS]: Triggering job send.signup.confirmation.email with payload { email: 'name@mymail.de' } 2024-09-28T15:27:44.918459761Z [JOBS]: Job send.signup.confirmation.email failed Error: Failed to send the confirmation email 2024-09-28T15:27:44.918630369Z at u (/app/apps/web/.next/server/chunks/9783.js:1:31543) 2024-09-28T15:27:44.918687989Z at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2024-09-28T15:27:44.918742879Z at async Object.handler (/app/apps/web/.next/server/chunks/9783.js:1:19365) 2024-09-28T15:27:44.918777728Z at async /app/apps/web/.next/server/chunks/9783.js:1:15444 2024-09-28T15:27:44.918810878Z at async K (/app/node_modules/next/dist/compiled/next-server/pages-api.runtime.prod.js:20:16853) 2024-09-28T15:27:44.918852168Z at async U.render (/app/node_modules/next/dist/compiled/next-server/pages-api.runtime.prod.js:20:17492) 2024-09-28T15:27:44.918888408Z at async NextNodeServer.runApi (/app/node_modules/next/dist/server/next-server.js:600:9) 2024-09-28T15:27:44.918931287Z at async NextNodeServer.handleCatchallRenderRequest (/app/node_modules/next/dist/server/next-server.js:269:37) 2024-09-28T15:27:44.918968097Z at async NextNodeServer.handleRequestImpl (/app/node_modules/next/dist/server/base-server.js:816:17) 2024-09-28T15:27:44.919001997Z at async invokeRender (/app/node_modules/next/dist/server/lib/router-server.js:174:21) 2024-09-28T15:27:44.936032365Z Submitting job to endpoint: http://192.168.178.148:4701/api/jobs/send.signup.confirmation.email/cm1mb2zvi0002nq2nlv4y5p6r 2024-09-28T15:27:44.945276959Z [JOBS]: Triggering job send.signup.confirmation.email with payload { email: 'name@mymail.de' }

Thanks in advance! :)

<!-- gh-comment-id:2380713079 --> @jokoburger commented on GitHub (Sep 28, 2024): I'm having the same issue, that no verification mail is sent out. (Docker compose installation & SMTP credentials are correct). The logs are non really helping. (Also tried using npm run dx && npm run dev) I already have port 9000 in use on the host. Is there a way to access the SMTP UI on another port? **Logs**: `2024-09-28T15:27:43.822369742Z Eligible jobs: [ 'Send Confirmation Email' ] 2024-09-28T15:27:43.917264804Z Submitting job to endpoint: http://192.168.178.148:4701/api/jobs/send.signup.confirmation.email/**** 2024-09-28T15:27:43.929658265Z [JOBS]: Triggering job send.signup.confirmation.email with payload { email: 'name@mymail.de' } 2024-09-28T15:27:44.918459761Z [JOBS]: Job send.signup.confirmation.email failed Error: Failed to send the confirmation email 2024-09-28T15:27:44.918630369Z at u (/app/apps/web/.next/server/chunks/9783.js:1:31543) 2024-09-28T15:27:44.918687989Z at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2024-09-28T15:27:44.918742879Z at async Object.handler (/app/apps/web/.next/server/chunks/9783.js:1:19365) 2024-09-28T15:27:44.918777728Z at async /app/apps/web/.next/server/chunks/9783.js:1:15444 2024-09-28T15:27:44.918810878Z at async K (/app/node_modules/next/dist/compiled/next-server/pages-api.runtime.prod.js:20:16853) 2024-09-28T15:27:44.918852168Z at async U.render (/app/node_modules/next/dist/compiled/next-server/pages-api.runtime.prod.js:20:17492) 2024-09-28T15:27:44.918888408Z at async NextNodeServer.runApi (/app/node_modules/next/dist/server/next-server.js:600:9) 2024-09-28T15:27:44.918931287Z at async NextNodeServer.handleCatchallRenderRequest (/app/node_modules/next/dist/server/next-server.js:269:37) 2024-09-28T15:27:44.918968097Z at async NextNodeServer.handleRequestImpl (/app/node_modules/next/dist/server/base-server.js:816:17) 2024-09-28T15:27:44.919001997Z at async invokeRender (/app/node_modules/next/dist/server/lib/router-server.js:174:21) 2024-09-28T15:27:44.936032365Z Submitting job to endpoint: http://192.168.178.148:4701/api/jobs/send.signup.confirmation.email/cm1mb2zvi0002nq2nlv4y5p6r 2024-09-28T15:27:44.945276959Z [JOBS]: Triggering job send.signup.confirmation.email with payload { email: 'name@mymail.de' } ` Thanks in advance! :)
Author
Owner

@parasiteoflife commented on GitHub (Sep 30, 2024):

Finally got it to work with real SMTP server, you don't need to run dev.

In the env variables NEXT_PRIVATE_INTERNAL_WEBAPP_URL should be set to your public URL, so same as NEXT_PUBLIC_WEBAPP_URL, using localhost and port doesn't work.
Also, using NEXT_PRIVATE_SMTP_PORT="465" and NEXT_PRIVATE_SMTP_SECURE="true" doesn't work either, you have to use STARTTLS (port 587) and set that env to false.

<!-- gh-comment-id:2382952572 --> @parasiteoflife commented on GitHub (Sep 30, 2024): Finally got it to work with real SMTP server, you don't need to run dev. In the env variables `NEXT_PRIVATE_INTERNAL_WEBAPP_URL` should be set to your public URL, so same as `NEXT_PUBLIC_WEBAPP_URL`, using localhost and port doesn't work. Also, using `NEXT_PRIVATE_SMTP_PORT="465"` and `NEXT_PRIVATE_SMTP_SECURE="true"` doesn't work either, you have to use STARTTLS (port 587) and set that env to false.
Author
Owner

@jokoburger commented on GitHub (Sep 30, 2024):

I tried the adjustment and redeployed the containers but the issue still persists.
Can you share the complete environment settings?

I also tested my Mailserver and it's working.

<!-- gh-comment-id:2383966682 --> @jokoburger commented on GitHub (Sep 30, 2024): I tried the adjustment and redeployed the containers but the issue still persists. Can you share the complete environment settings? I also tested my Mailserver and it's working.
Author
Owner

@parasiteoflife commented on GitHub (Oct 1, 2024):

I just saw the logs you posted show an error, in my case I didn't receive any error, just the email was never sent.

These are my mail env vars:

# [[SMTP]]
# OPTIONAL: Defines the transport to use for sending emails. Available options: smtp-auth (default) | smtp-api | mailchannels
NEXT_PRIVATE_SMTP_TRANSPORT="smtp-auth"
# OPTIONAL: Defines the host to use for sending emails.
NEXT_PRIVATE_SMTP_HOST="mail.domain.com"
# OPTIONAL: Defines the port to use for sending emails.
# 465 is not working right now, use STARTTLS on 587 instead
NEXT_PRIVATE_SMTP_PORT="587"
# OPTIONAL: Defines the username to use with the SMTP server.
NEXT_PRIVATE_SMTP_USERNAME="sign@domain.com"
# OPTIONAL: Defines the password to use with the SMTP server.
NEXT_PRIVATE_SMTP_PASSWORD='somepassword'
# OPTIONAL: Defines the API key user to use with the SMTP server.
NEXT_PRIVATE_SMTP_APIKEY_USER=
# OPTIONAL: Defines the API key to use with the SMTP server.
NEXT_PRIVATE_SMTP_APIKEY=
# OPTIONAL: Defines whether to force the use of TLS.
#TLS is not working right now, set it to "false" and use STARTTLS
NEXT_PRIVATE_SMTP_SECURE="false"
# OPTIONAL: if this is true and NEXT_PRIVATE_SMTP_SECURE is false then TLS is not used even if the server supports STARTTLS extension
NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS="false"
# REQUIRED: Defines the sender name to use for the from address.
NEXT_PRIVATE_SMTP_FROM_NAME="Sign"
# REQUIRED: Defines the email address to use as the from address.
NEXT_PRIVATE_SMTP_FROM_ADDRESS="sign@domain.com"

If you are using double quotes to surround your password try with single quotes.

<!-- gh-comment-id:2387220218 --> @parasiteoflife commented on GitHub (Oct 1, 2024): I just saw the logs you posted show an error, in my case I didn't receive any error, just the email was never sent. These are my mail env vars: ``` # [[SMTP]] # OPTIONAL: Defines the transport to use for sending emails. Available options: smtp-auth (default) | smtp-api | mailchannels NEXT_PRIVATE_SMTP_TRANSPORT="smtp-auth" # OPTIONAL: Defines the host to use for sending emails. NEXT_PRIVATE_SMTP_HOST="mail.domain.com" # OPTIONAL: Defines the port to use for sending emails. # 465 is not working right now, use STARTTLS on 587 instead NEXT_PRIVATE_SMTP_PORT="587" # OPTIONAL: Defines the username to use with the SMTP server. NEXT_PRIVATE_SMTP_USERNAME="sign@domain.com" # OPTIONAL: Defines the password to use with the SMTP server. NEXT_PRIVATE_SMTP_PASSWORD='somepassword' # OPTIONAL: Defines the API key user to use with the SMTP server. NEXT_PRIVATE_SMTP_APIKEY_USER= # OPTIONAL: Defines the API key to use with the SMTP server. NEXT_PRIVATE_SMTP_APIKEY= # OPTIONAL: Defines whether to force the use of TLS. #TLS is not working right now, set it to "false" and use STARTTLS NEXT_PRIVATE_SMTP_SECURE="false" # OPTIONAL: if this is true and NEXT_PRIVATE_SMTP_SECURE is false then TLS is not used even if the server supports STARTTLS extension NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS="false" # REQUIRED: Defines the sender name to use for the from address. NEXT_PRIVATE_SMTP_FROM_NAME="Sign" # REQUIRED: Defines the email address to use as the from address. NEXT_PRIVATE_SMTP_FROM_ADDRESS="sign@domain.com" ``` If you are using double quotes to surround your password try with single quotes.
Author
Owner

@Dvalin21 commented on GitHub (Oct 2, 2024):

Exactly, no errors saying it wasn't sent. I would get the same result when trying to send with gmail

On Tue, Oct 1, 2024 at 5:50 PM parasiteoflife @.***>
wrote:

I just saw the logs you posted show an error, in my case I didn't receive
any error, just the email was never sent.

These are my mail env vars:

SMTP

OPTIONAL: Defines the transport to use for sending emails. Available options: smtp-auth (default) | smtp-api | mailchannels

NEXT_PRIVATE_SMTP_TRANSPORT="smtp-auth"

OPTIONAL: Defines the host to use for sending emails.

NEXT_PRIVATE_SMTP_HOST="mail.domain.com"

OPTIONAL: Defines the port to use for sending emails.

465 is not working right now, use STARTTLS on 587 instead

NEXT_PRIVATE_SMTP_PORT="587"

OPTIONAL: Defines the username to use with the SMTP server.

@.***"

OPTIONAL: Defines the password to use with the SMTP server.

NEXT_PRIVATE_SMTP_PASSWORD='somepassword'

OPTIONAL: Defines the API key user to use with the SMTP server.

NEXT_PRIVATE_SMTP_APIKEY_USER=

OPTIONAL: Defines the API key to use with the SMTP server.

NEXT_PRIVATE_SMTP_APIKEY=

OPTIONAL: Defines whether to force the use of TLS.

#TLS is not working right now, set it to "false" and use STARTTLS
NEXT_PRIVATE_SMTP_SECURE="false"

OPTIONAL: if this is true and NEXT_PRIVATE_SMTP_SECURE is false then TLS is not used even if the server supports STARTTLS extension

NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS="false"

REQUIRED: Defines the sender name to use for the from address.

NEXT_PRIVATE_SMTP_FROM_NAME="Sign"

REQUIRED: Defines the email address to use as the from address.

@.***"

If you are using double quotes to surround your password try with single
quotes.


Reply to this email directly, view it on GitHub
https://github.com/documenso/documenso/issues/1307#issuecomment-2387220218,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABY7PVIUOEHE5JPLPA3PSVTZZMRMZAVCNFSM6AAAAABNGXJC6KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOBXGIZDAMRRHA
.
You are receiving this because you commented.Message ID:
@.***>

<!-- gh-comment-id:2387506962 --> @Dvalin21 commented on GitHub (Oct 2, 2024): Exactly, no errors saying it wasn't sent. I would get the same result when trying to send with gmail On Tue, Oct 1, 2024 at 5:50 PM parasiteoflife ***@***.***> wrote: > I just saw the logs you posted show an error, in my case I didn't receive > any error, just the email was never sent. > > These are my mail env vars: > > # [[SMTP]] > # OPTIONAL: Defines the transport to use for sending emails. Available options: smtp-auth (default) | smtp-api | mailchannels > NEXT_PRIVATE_SMTP_TRANSPORT="smtp-auth" > # OPTIONAL: Defines the host to use for sending emails. > NEXT_PRIVATE_SMTP_HOST="mail.domain.com" > # OPTIONAL: Defines the port to use for sending emails. > # 465 is not working right now, use STARTTLS on 587 instead > NEXT_PRIVATE_SMTP_PORT="587" > # OPTIONAL: Defines the username to use with the SMTP server. > ***@***.***" > # OPTIONAL: Defines the password to use with the SMTP server. > NEXT_PRIVATE_SMTP_PASSWORD='somepassword' > # OPTIONAL: Defines the API key user to use with the SMTP server. > NEXT_PRIVATE_SMTP_APIKEY_USER= > # OPTIONAL: Defines the API key to use with the SMTP server. > NEXT_PRIVATE_SMTP_APIKEY= > # OPTIONAL: Defines whether to force the use of TLS. > #TLS is not working right now, set it to "false" and use STARTTLS > NEXT_PRIVATE_SMTP_SECURE="false" > # OPTIONAL: if this is true and NEXT_PRIVATE_SMTP_SECURE is false then TLS is not used even if the server supports STARTTLS extension > NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS="false" > # REQUIRED: Defines the sender name to use for the from address. > NEXT_PRIVATE_SMTP_FROM_NAME="Sign" > # REQUIRED: Defines the email address to use as the from address. > ***@***.***" > > If you are using double quotes to surround your password try with single > quotes. > > — > Reply to this email directly, view it on GitHub > <https://github.com/documenso/documenso/issues/1307#issuecomment-2387220218>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/ABY7PVIUOEHE5JPLPA3PSVTZZMRMZAVCNFSM6AAAAABNGXJC6KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOBXGIZDAMRRHA> > . > You are receiving this because you commented.Message ID: > ***@***.***> >
Author
Owner

@jokoburger commented on GitHub (Oct 3, 2024):

Thanks for the env vars!
Also tried it and also using single quotes around all all variables. Everything else in configured the same way but still same error message

<!-- gh-comment-id:2392201483 --> @jokoburger commented on GitHub (Oct 3, 2024): Thanks for the env vars! Also tried it and also using single quotes around all all variables. Everything else in configured the same way but still same error message
Author
Owner

@RosaEinhorn commented on GitHub (Oct 10, 2024):

I am having the same issue. Mails are not sent. There is no error in the logs, it just says:

Submitting job to endpoint: http://host:3000/api/jobs/send.signup.confirmation.email/cm23benwk0000qo28te6x1sjf

Any idea on how to further debug the mail config?

<!-- gh-comment-id:2405053089 --> @RosaEinhorn commented on GitHub (Oct 10, 2024): I am having the same issue. Mails are not sent. There is no error in the logs, it just says: ``` Submitting job to endpoint: http://host:3000/api/jobs/send.signup.confirmation.email/cm23benwk0000qo28te6x1sjf ``` Any idea on how to further debug the mail config?
Author
Owner

@Dvalin21 commented on GitHub (Oct 11, 2024):

I am having the same issue. Mails are not sent. There is no error in the logs, it just says:

Submitting job to endpoint: http://host:3000/api/jobs/send.signup.confirmation.email/cm23benwk0000qo28te6x1sjf

Any idea on how to further debug the mail config?

From what I can see we can't get any further logs as we can remote into the container. I deleted my last comment as I put the wrong issue in the wrong post. I've been getting the same issue. Says sent, but no email received and no error logs.

<!-- gh-comment-id:2406519438 --> @Dvalin21 commented on GitHub (Oct 11, 2024): > I am having the same issue. Mails are not sent. There is no error in the logs, it just says: > > ``` > Submitting job to endpoint: http://host:3000/api/jobs/send.signup.confirmation.email/cm23benwk0000qo28te6x1sjf > ``` > > Any idea on how to further debug the mail config? From what I can see we can't get any further logs as we can remote into the container. I deleted my last comment as I put the wrong issue in the wrong post. I've been getting the same issue. Says sent, but no email received and no error logs.
Author
Owner

@Dvalin21 commented on GitHub (Oct 11, 2024):

NEXT_PRIVATE_INTERNAL_WEBAPP_URL

Tried this tonight, still not working for me.

<!-- gh-comment-id:2406539229 --> @Dvalin21 commented on GitHub (Oct 11, 2024): > NEXT_PRIVATE_INTERNAL_WEBAPP_URL Tried this tonight, still not working for me.
Author
Owner

@Dvalin21 commented on GitHub (Oct 11, 2024):

Finally got it to work with real SMTP server, you don't need to run dev.

In the env variables NEXT_PRIVATE_INTERNAL_WEBAPP_URL should be set to your public URL, so same as NEXT_PUBLIC_WEBAPP_URL, using localhost and port doesn't work. Also, using NEXT_PRIVATE_SMTP_PORT="465" and NEXT_PRIVATE_SMTP_SECURE="true" doesn't work either, you have to use STARTTLS (port 587) and set that env to false.

After a little more changing, I got something a little different than before. Instead of getting the "Submitting job to endpoint: http://localhost:port/api/jobs/send.signup.confirmation.email/whatever it is" I got "NEXT_PUBLIC_MARKETING_URL=/api/jobs/send.signup.confirmation.email/whatever it is" What do you have for your NEXT_PUBLIC_MARKETING_URL?

<!-- gh-comment-id:2406591140 --> @Dvalin21 commented on GitHub (Oct 11, 2024): > Finally got it to work with real SMTP server, you don't need to run dev. > > In the env variables `NEXT_PRIVATE_INTERNAL_WEBAPP_URL` should be set to your public URL, so same as `NEXT_PUBLIC_WEBAPP_URL`, using localhost and port doesn't work. Also, using `NEXT_PRIVATE_SMTP_PORT="465"` and `NEXT_PRIVATE_SMTP_SECURE="true"` doesn't work either, you have to use STARTTLS (port 587) and set that env to false. After a little more changing, I got something a little different than before. Instead of getting the "Submitting job to endpoint: http://localhost:port/api/jobs/send.signup.confirmation.email/whatever it is" I got "NEXT_PUBLIC_MARKETING_URL=/api/jobs/send.signup.confirmation.email/whatever it is" What do you have for your NEXT_PUBLIC_MARKETING_URL?
Author
Owner

@RosaEinhorn commented on GitHub (Oct 11, 2024):

It is set as in the example compose:

- NEXT_PUBLIC_MARKETING_URL=${NEXT_PUBLIC_MARKETING_URL:-https://documenso.com}

and I have no value in my .env, so it should be https://documenso.com I guess.

<!-- gh-comment-id:2406643007 --> @RosaEinhorn commented on GitHub (Oct 11, 2024): It is set as in the [example compose](https://raw.githubusercontent.com/documenso/documenso/release/docker/production/compose.yml): ``` - NEXT_PUBLIC_MARKETING_URL=${NEXT_PUBLIC_MARKETING_URL:-https://documenso.com} ``` and I have no value in my .env, so it should be https://documenso.com I guess.
Author
Owner

@Dvalin21 commented on GitHub (Oct 11, 2024):

It is set as in the example compose:

- NEXT_PUBLIC_MARKETING_URL=${NEXT_PUBLIC_MARKETING_URL:-https://documenso.com}

and I have no value in my .env, so it should be https://documenso.com I guess.

Correct, but after making a few changes its the first time that I've seen it being mentioned in my logs. So I thought possibly there was another config for it in the compose and in the env

<!-- gh-comment-id:2406667605 --> @Dvalin21 commented on GitHub (Oct 11, 2024): > It is set as in the [example compose](https://raw.githubusercontent.com/documenso/documenso/release/docker/production/compose.yml): > > ``` > - NEXT_PUBLIC_MARKETING_URL=${NEXT_PUBLIC_MARKETING_URL:-https://documenso.com} > ``` > > and I have no value in my .env, so it should be https://documenso.com I guess. Correct, but after making a few changes its the first time that I've seen it being mentioned in my logs. So I thought possibly there was another config for it in the compose and in the env
Author
Owner

@Dvalin21 commented on GitHub (Oct 11, 2024):

Found my first error Error: No session found
documenso-app | at c (/app/apps/web/.next/server/chunks/2912.js:1:1190205)

<!-- gh-comment-id:2406672194 --> @Dvalin21 commented on GitHub (Oct 11, 2024): Found my first error Error: No session found documenso-app | at c (/app/apps/web/.next/server/chunks/2912.js:1:1190205)
Author
Owner

@RosaEinhorn commented on GitHub (Oct 11, 2024):

I am seeing the same error, but I think it is related to accessing Documenso without being logged in (having a valid session).

<!-- gh-comment-id:2407117451 --> @RosaEinhorn commented on GitHub (Oct 11, 2024): I am seeing the same error, but I think it is related to accessing Documenso without being logged in (having a valid session).
Author
Owner

@Dvalin21 commented on GitHub (Oct 11, 2024):

Finally got it to work with real SMTP server, you don't need to run dev.

In the env variables NEXT_PRIVATE_INTERNAL_WEBAPP_URL should be set to your public URL, so same as NEXT_PUBLIC_WEBAPP_URL, using localhost and port doesn't work. Also, using NEXT_PRIVATE_SMTP_PORT="465" and NEXT_PRIVATE_SMTP_SECURE="true" doesn't work either, you have to use STARTTLS (port 587) and set that env to false.

Can you share your complete .env setup? Thanks

<!-- gh-comment-id:2407873983 --> @Dvalin21 commented on GitHub (Oct 11, 2024): > Finally got it to work with real SMTP server, you don't need to run dev. > > In the env variables `NEXT_PRIVATE_INTERNAL_WEBAPP_URL` should be set to your public URL, so same as `NEXT_PUBLIC_WEBAPP_URL`, using localhost and port doesn't work. Also, using `NEXT_PRIVATE_SMTP_PORT="465"` and `NEXT_PRIVATE_SMTP_SECURE="true"` doesn't work either, you have to use STARTTLS (port 587) and set that env to false. Can you share your complete .env setup? Thanks
Author
Owner

@parasiteoflife commented on GitHub (Oct 12, 2024):

Maybe your env file is not being used. What are you using? Portainer or plain compose file? Also better nuke your current installation (remove the db volume/data) before re-deploying

I'm using Portainer:

Compose file (I'm not linking any ports because NPM access documenso through the docker network):

services:
  documenso-db:
    image: postgres:15
    container_name: documenso-db
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
      interval: 10s
      timeout: 5s
      retries: 5
    env_file: stack.env
    volumes:
      - type: bind
        source: /documenso/database
        target: /var/lib/postgresql/data
        read_only: false
    networks:
      documenso:

  documenso:
    image: documenso/documenso:latest
    container_name: documenso
    depends_on:
      documenso-db:
        condition: service_healthy
    env_file: stack.env
    #ports:
    #  - 3000:3000 #normal
    #  - 3001:3001 #marketing
    volumes:
      - type: bind
        source: /documenso/certificate.p12
        target: /cert-file/certificate.p12
        read_only: true
    networks:
      documenso:
      npm:
  
  documenso-minio:
    image: minio/minio:latest
    container_name: documenso-minio
    #ports:
    #  - 9002:9002 # server
    #  - 9001:9001 # console
    volumes:
      - type: bind
        source: /documenso/minio
        target: /data
        read_only: false
    env_file: stack.env
    command: server /data --console-address ":9001" --address ":9002"
    networks:
      documenso:

networks:
  documenso:
    name: documenso
    driver: bridge
  npm:
    name: npm
    external: true
# [[AUTH]]
NEXTAUTH_URL="https://documenso.domain.io"
NEXTAUTH_SECRET='long-password-1'

# [[CRYPTO]]
# Application Key for symmetric encryption and decryption
# REQUIRED: This should be a random string of at least 32 characters
NEXT_PRIVATE_ENCRYPTION_KEY='long-password-2'
# REQUIRED: This should be a random string of at least 32 characters
NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY='long-password-3'

# [[AUTH OPTIONAL]]
# Find documentation on setting up Google OAuth here:
# https://docs.documenso.com/developers/self-hosting/setting-up-oauth-providers#google-oauth-gmail
#NEXT_PRIVATE_GOOGLE_CLIENT_ID=""
#NEXT_PRIVATE_GOOGLE_CLIENT_SECRET=""

#NEXT_PRIVATE_OIDC_WELL_KNOWN=""
#NEXT_PRIVATE_OIDC_CLIENT_ID=""
#NEXT_PRIVATE_OIDC_CLIENT_SECRET=""
#NEXT_PRIVATE_OIDC_PROVIDER_LABEL="OIDC"
# This can be used to still allow signups for OIDC connections
# when signup is disabled via `NEXT_PUBLIC_DISABLE_SIGNUP`
#NEXT_PRIVATE_OIDC_ALLOW_SIGNUP=""
#NEXT_PRIVATE_OIDC_SKIP_VERIFY=""

# [[URLS]]
NEXT_PUBLIC_WEBAPP_URL="https://documenso.domain.io"
NEXT_PUBLIC_MARKETING_URL="https://documenso-marketing.domain.io"
# URL used by the web app to request itself (e.g. local background jobs)
# This can't be localhost:3000, it doesn't work, you have to use the public URL instead.
NEXT_PRIVATE_INTERNAL_WEBAPP_URL="https://documenso.domain.io"

# [[DATABASE]]
NEXT_PRIVATE_DATABASE_URL='postgres://documenso:LONG-PASSWORD-4@documenso-db:5432/documenso'
# Defines the URL to use for the database when running migrations and other commands that won't work with a connection pool.
NEXT_PRIVATE_DIRECT_DATABASE_URL='postgres://documenso:LONG-PASSWORD-4@documenso-db:5432/documenso'

POSTGRES_USER="documenso"
# This password shouldn't contain special characters like '%', '$' or '@' to avoid issues.
POSTGRES_PASSWORD='LONG-PASSWORD-4'
POSTGRES_DB="documenso"

# [[SIGNING]]
# The transport to use for document signing. Available options: local (default) | gcloud-hsm
NEXT_PRIVATE_SIGNING_TRANSPORT="local"
# OPTIONAL: The passphrase to use for the local file-based signing transport.
NEXT_PRIVATE_SIGNING_PASSPHRASE='p12-cert-password'
# OPTIONAL: The local file path to the .p12 file to use for the local signing transport.
NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH="/cert-file/certificate.p12"
# OPTIONAL: The base64-encoded contents of the .p12 file to use for the local signing transport.
NEXT_PRIVATE_SIGNING_LOCAL_FILE_CONTENTS=
# OPTIONAL: The path to the Google Cloud HSM key to use for the gcloud-hsm signing transport.
NEXT_PRIVATE_SIGNING_GCLOUD_HSM_KEY_PATH=
# OPTIONAL: The path to the Google Cloud HSM public certificate file to use for the gcloud-hsm signing transport.
NEXT_PRIVATE_SIGNING_GCLOUD_HSM_PUBLIC_CRT_FILE_PATH=
# OPTIONAL: The base64-encoded contents of the Google Cloud HSM public certificate file to use for the gcloud-hsm signing transport.
NEXT_PRIVATE_SIGNING_GCLOUD_HSM_PUBLIC_CRT_FILE_CONTENTS=
# OPTIONAL: The path to the Google Cloud Credentials file to use for the gcloud-hsm signing transport.
NEXT_PRIVATE_SIGNING_GCLOUD_APPLICATION_CREDENTIALS_CONTENTS=

# MINIO

# This one is commonly used in URLs so use special characters with care or only use letters, numbers, "." and "_".
MINIO_ROOT_USER="random-chars-1"
MINIO_ROOT_PASSWORD='long-password-5'
MINIO_API_CORS_ALLOW_ORIGIN="https://documenso.domain.io"
MINIO_SITE_REGION="wx-east-1"
MINIO_OPTS="--console-address :9001 --address :9002"

# [[STORAGE]]
# OPTIONAL: Defines the storage transport to use. Available options: database (default) | s3
NEXT_PUBLIC_UPLOAD_TRANSPORT="s3"
# OPTIONAL: Defines the endpoint to use for the S3 storage transport. Relevant when using third-party S3-compatible providers.
NEXT_PRIVATE_UPLOAD_ENDPOINT="https://s3.domain.io"
# OPTIONAL: Defines the force path style to use for the S3 storage transport. Relevant when using third-party S3-compatible providers.
# This will change it from using virtual hosts <bucket>.domain.io/<path> to fully qualified paths domain.io/<bucket>/<path>
NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE="true"
# OPTIONAL: Defines the region to use for the S3 storage transport. Defaults to us-east-1.
NEXT_PRIVATE_UPLOAD_REGION="wx-east-1"
# REQUIRED: Defines the bucket to use for the S3 storage transport.
NEXT_PRIVATE_UPLOAD_BUCKET="documenso"
# OPTIONAL: Defines the access key ID to use for the S3 storage transport.
NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID="random-chars-1"
# OPTIONAL: Defines the secret access key to use for the S3 storage transport.
NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY='long-password-5'

# [[SMTP]]
# OPTIONAL: Defines the transport to use for sending emails. Available options: smtp-auth (default) | smtp-api | mailchannels
NEXT_PRIVATE_SMTP_TRANSPORT="smtp-auth"
# OPTIONAL: Defines the host to use for sending emails.
NEXT_PRIVATE_SMTP_HOST="mail.domain.io"
# OPTIONAL: Defines the port to use for sending emails.
# 465 is not working right now, use STARTTLS on 587 instead
NEXT_PRIVATE_SMTP_PORT="587"
# OPTIONAL: Defines the username to use with the SMTP server.
NEXT_PRIVATE_SMTP_USERNAME="documenso@domain.io"
# OPTIONAL: Defines the password to use with the SMTP server.
NEXT_PRIVATE_SMTP_PASSWORD="app-password"
# OPTIONAL: Defines the API key user to use with the SMTP server.
NEXT_PRIVATE_SMTP_APIKEY_USER=
# OPTIONAL: Defines the API key to use with the SMTP server.
NEXT_PRIVATE_SMTP_APIKEY=
# OPTIONAL: Defines whether to force the use of TLS.
#TLS is not working right now, set it to "false" and use STARTTLS
NEXT_PRIVATE_SMTP_SECURE="false"
# OPTIONAL: if this is true and NEXT_PRIVATE_SMTP_SECURE is false then TLS is not used even if the server supports STARTTLS extension
NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS="false"
# REQUIRED: Defines the sender name to use for the from address.
NEXT_PRIVATE_SMTP_FROM_NAME="Documenso"
# REQUIRED: Defines the email address to use as the from address.
NEXT_PRIVATE_SMTP_FROM_ADDRESS="documenso@domain.io"
# OPTIONAL: The API key to use for Resend.com
NEXT_PRIVATE_RESEND_API_KEY=
# OPTIONAL: The API key to use for MailChannels.
NEXT_PRIVATE_MAILCHANNELS_API_KEY=
# OPTIONAL: The endpoint to use for the MailChannels API if using a proxy.
NEXT_PRIVATE_MAILCHANNELS_ENDPOINT=
# OPTIONAL: The domain to use for DKIM signing.
NEXT_PRIVATE_MAILCHANNELS_DKIM_DOMAIN=
# OPTIONAL: The selector to use for DKIM signing.
NEXT_PRIVATE_MAILCHANNELS_DKIM_SELECTOR=
# OPTIONAL: The private key to use for DKIM signing.
NEXT_PRIVATE_MAILCHANNELS_DKIM_PRIVATE_KEY=
# OPTIONAL: Displays the maximum document upload limit to the user in MBs
NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=50

# [[STRIPE]]
NEXT_PRIVATE_STRIPE_API_KEY=
NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET=
NEXT_PUBLIC_STRIPE_COMMUNITY_PLAN_MONTHLY_PRICE_ID=
NEXT_PUBLIC_STRIPE_ENTERPRISE_PLAN_MONTHLY_PRICE_ID=

# [[BACKGROUND JOBS]]
NEXT_PRIVATE_JOBS_PROVIDER="local"
NEXT_PRIVATE_TRIGGER_API_KEY=
NEXT_PRIVATE_TRIGGER_API_URL=
NEXT_PRIVATE_INNGEST_EVENT_KEY=

# [[FEATURES]]
# OPTIONAL: Leave blank to disable PostHog and feature flags.
# POSTHOG has to be hosted/exposed at NEXT_PUBLIC_WEBAPP_URL/ingest
NEXT_PUBLIC_POSTHOG_KEY=""
# OPTIONAL: Leave blank to disable billing.
NEXT_PUBLIC_FEATURE_BILLING_ENABLED=
# OPTIONAL: Leave blank to allow users to signup through /signup page.
NEXT_PUBLIC_DISABLE_SIGNUP=

# [[E2E Tests]]
E2E_TEST_AUTHENTICATE_USERNAME="Test User"
E2E_TEST_AUTHENTICATE_USER_EMAIL="testuser@mail.com"
E2E_TEST_AUTHENTICATE_USER_PASSWORD="test_Password123"

# This is only required for the marketing site
# [[REDIS]]
NEXT_PRIVATE_REDIS_URL=
NEXT_PRIVATE_REDIS_TOKEN=
<!-- gh-comment-id:2408477806 --> @parasiteoflife commented on GitHub (Oct 12, 2024): Maybe your env file is not being used. What are you using? Portainer or plain compose file? Also better nuke your current installation (remove the db volume/data) before re-deploying I'm using Portainer: Compose file (I'm not linking any ports because NPM access documenso through the docker network): ```yaml services: documenso-db: image: postgres:15 container_name: documenso-db healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"] interval: 10s timeout: 5s retries: 5 env_file: stack.env volumes: - type: bind source: /documenso/database target: /var/lib/postgresql/data read_only: false networks: documenso: documenso: image: documenso/documenso:latest container_name: documenso depends_on: documenso-db: condition: service_healthy env_file: stack.env #ports: # - 3000:3000 #normal # - 3001:3001 #marketing volumes: - type: bind source: /documenso/certificate.p12 target: /cert-file/certificate.p12 read_only: true networks: documenso: npm: documenso-minio: image: minio/minio:latest container_name: documenso-minio #ports: # - 9002:9002 # server # - 9001:9001 # console volumes: - type: bind source: /documenso/minio target: /data read_only: false env_file: stack.env command: server /data --console-address ":9001" --address ":9002" networks: documenso: networks: documenso: name: documenso driver: bridge npm: name: npm external: true ``` ```env # [[AUTH]] NEXTAUTH_URL="https://documenso.domain.io" NEXTAUTH_SECRET='long-password-1' # [[CRYPTO]] # Application Key for symmetric encryption and decryption # REQUIRED: This should be a random string of at least 32 characters NEXT_PRIVATE_ENCRYPTION_KEY='long-password-2' # REQUIRED: This should be a random string of at least 32 characters NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY='long-password-3' # [[AUTH OPTIONAL]] # Find documentation on setting up Google OAuth here: # https://docs.documenso.com/developers/self-hosting/setting-up-oauth-providers#google-oauth-gmail #NEXT_PRIVATE_GOOGLE_CLIENT_ID="" #NEXT_PRIVATE_GOOGLE_CLIENT_SECRET="" #NEXT_PRIVATE_OIDC_WELL_KNOWN="" #NEXT_PRIVATE_OIDC_CLIENT_ID="" #NEXT_PRIVATE_OIDC_CLIENT_SECRET="" #NEXT_PRIVATE_OIDC_PROVIDER_LABEL="OIDC" # This can be used to still allow signups for OIDC connections # when signup is disabled via `NEXT_PUBLIC_DISABLE_SIGNUP` #NEXT_PRIVATE_OIDC_ALLOW_SIGNUP="" #NEXT_PRIVATE_OIDC_SKIP_VERIFY="" # [[URLS]] NEXT_PUBLIC_WEBAPP_URL="https://documenso.domain.io" NEXT_PUBLIC_MARKETING_URL="https://documenso-marketing.domain.io" # URL used by the web app to request itself (e.g. local background jobs) # This can't be localhost:3000, it doesn't work, you have to use the public URL instead. NEXT_PRIVATE_INTERNAL_WEBAPP_URL="https://documenso.domain.io" # [[DATABASE]] NEXT_PRIVATE_DATABASE_URL='postgres://documenso:LONG-PASSWORD-4@documenso-db:5432/documenso' # Defines the URL to use for the database when running migrations and other commands that won't work with a connection pool. NEXT_PRIVATE_DIRECT_DATABASE_URL='postgres://documenso:LONG-PASSWORD-4@documenso-db:5432/documenso' POSTGRES_USER="documenso" # This password shouldn't contain special characters like '%', '$' or '@' to avoid issues. POSTGRES_PASSWORD='LONG-PASSWORD-4' POSTGRES_DB="documenso" # [[SIGNING]] # The transport to use for document signing. Available options: local (default) | gcloud-hsm NEXT_PRIVATE_SIGNING_TRANSPORT="local" # OPTIONAL: The passphrase to use for the local file-based signing transport. NEXT_PRIVATE_SIGNING_PASSPHRASE='p12-cert-password' # OPTIONAL: The local file path to the .p12 file to use for the local signing transport. NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH="/cert-file/certificate.p12" # OPTIONAL: The base64-encoded contents of the .p12 file to use for the local signing transport. NEXT_PRIVATE_SIGNING_LOCAL_FILE_CONTENTS= # OPTIONAL: The path to the Google Cloud HSM key to use for the gcloud-hsm signing transport. NEXT_PRIVATE_SIGNING_GCLOUD_HSM_KEY_PATH= # OPTIONAL: The path to the Google Cloud HSM public certificate file to use for the gcloud-hsm signing transport. NEXT_PRIVATE_SIGNING_GCLOUD_HSM_PUBLIC_CRT_FILE_PATH= # OPTIONAL: The base64-encoded contents of the Google Cloud HSM public certificate file to use for the gcloud-hsm signing transport. NEXT_PRIVATE_SIGNING_GCLOUD_HSM_PUBLIC_CRT_FILE_CONTENTS= # OPTIONAL: The path to the Google Cloud Credentials file to use for the gcloud-hsm signing transport. NEXT_PRIVATE_SIGNING_GCLOUD_APPLICATION_CREDENTIALS_CONTENTS= # MINIO # This one is commonly used in URLs so use special characters with care or only use letters, numbers, "." and "_". MINIO_ROOT_USER="random-chars-1" MINIO_ROOT_PASSWORD='long-password-5' MINIO_API_CORS_ALLOW_ORIGIN="https://documenso.domain.io" MINIO_SITE_REGION="wx-east-1" MINIO_OPTS="--console-address :9001 --address :9002" # [[STORAGE]] # OPTIONAL: Defines the storage transport to use. Available options: database (default) | s3 NEXT_PUBLIC_UPLOAD_TRANSPORT="s3" # OPTIONAL: Defines the endpoint to use for the S3 storage transport. Relevant when using third-party S3-compatible providers. NEXT_PRIVATE_UPLOAD_ENDPOINT="https://s3.domain.io" # OPTIONAL: Defines the force path style to use for the S3 storage transport. Relevant when using third-party S3-compatible providers. # This will change it from using virtual hosts <bucket>.domain.io/<path> to fully qualified paths domain.io/<bucket>/<path> NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE="true" # OPTIONAL: Defines the region to use for the S3 storage transport. Defaults to us-east-1. NEXT_PRIVATE_UPLOAD_REGION="wx-east-1" # REQUIRED: Defines the bucket to use for the S3 storage transport. NEXT_PRIVATE_UPLOAD_BUCKET="documenso" # OPTIONAL: Defines the access key ID to use for the S3 storage transport. NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID="random-chars-1" # OPTIONAL: Defines the secret access key to use for the S3 storage transport. NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY='long-password-5' # [[SMTP]] # OPTIONAL: Defines the transport to use for sending emails. Available options: smtp-auth (default) | smtp-api | mailchannels NEXT_PRIVATE_SMTP_TRANSPORT="smtp-auth" # OPTIONAL: Defines the host to use for sending emails. NEXT_PRIVATE_SMTP_HOST="mail.domain.io" # OPTIONAL: Defines the port to use for sending emails. # 465 is not working right now, use STARTTLS on 587 instead NEXT_PRIVATE_SMTP_PORT="587" # OPTIONAL: Defines the username to use with the SMTP server. NEXT_PRIVATE_SMTP_USERNAME="documenso@domain.io" # OPTIONAL: Defines the password to use with the SMTP server. NEXT_PRIVATE_SMTP_PASSWORD="app-password" # OPTIONAL: Defines the API key user to use with the SMTP server. NEXT_PRIVATE_SMTP_APIKEY_USER= # OPTIONAL: Defines the API key to use with the SMTP server. NEXT_PRIVATE_SMTP_APIKEY= # OPTIONAL: Defines whether to force the use of TLS. #TLS is not working right now, set it to "false" and use STARTTLS NEXT_PRIVATE_SMTP_SECURE="false" # OPTIONAL: if this is true and NEXT_PRIVATE_SMTP_SECURE is false then TLS is not used even if the server supports STARTTLS extension NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS="false" # REQUIRED: Defines the sender name to use for the from address. NEXT_PRIVATE_SMTP_FROM_NAME="Documenso" # REQUIRED: Defines the email address to use as the from address. NEXT_PRIVATE_SMTP_FROM_ADDRESS="documenso@domain.io" # OPTIONAL: The API key to use for Resend.com NEXT_PRIVATE_RESEND_API_KEY= # OPTIONAL: The API key to use for MailChannels. NEXT_PRIVATE_MAILCHANNELS_API_KEY= # OPTIONAL: The endpoint to use for the MailChannels API if using a proxy. NEXT_PRIVATE_MAILCHANNELS_ENDPOINT= # OPTIONAL: The domain to use for DKIM signing. NEXT_PRIVATE_MAILCHANNELS_DKIM_DOMAIN= # OPTIONAL: The selector to use for DKIM signing. NEXT_PRIVATE_MAILCHANNELS_DKIM_SELECTOR= # OPTIONAL: The private key to use for DKIM signing. NEXT_PRIVATE_MAILCHANNELS_DKIM_PRIVATE_KEY= # OPTIONAL: Displays the maximum document upload limit to the user in MBs NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=50 # [[STRIPE]] NEXT_PRIVATE_STRIPE_API_KEY= NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET= NEXT_PUBLIC_STRIPE_COMMUNITY_PLAN_MONTHLY_PRICE_ID= NEXT_PUBLIC_STRIPE_ENTERPRISE_PLAN_MONTHLY_PRICE_ID= # [[BACKGROUND JOBS]] NEXT_PRIVATE_JOBS_PROVIDER="local" NEXT_PRIVATE_TRIGGER_API_KEY= NEXT_PRIVATE_TRIGGER_API_URL= NEXT_PRIVATE_INNGEST_EVENT_KEY= # [[FEATURES]] # OPTIONAL: Leave blank to disable PostHog and feature flags. # POSTHOG has to be hosted/exposed at NEXT_PUBLIC_WEBAPP_URL/ingest NEXT_PUBLIC_POSTHOG_KEY="" # OPTIONAL: Leave blank to disable billing. NEXT_PUBLIC_FEATURE_BILLING_ENABLED= # OPTIONAL: Leave blank to allow users to signup through /signup page. NEXT_PUBLIC_DISABLE_SIGNUP= # [[E2E Tests]] E2E_TEST_AUTHENTICATE_USERNAME="Test User" E2E_TEST_AUTHENTICATE_USER_EMAIL="testuser@mail.com" E2E_TEST_AUTHENTICATE_USER_PASSWORD="test_Password123" # This is only required for the marketing site # [[REDIS]] NEXT_PRIVATE_REDIS_URL= NEXT_PRIVATE_REDIS_TOKEN= ```
Author
Owner

@Dvalin21 commented on GitHub (Oct 13, 2024):

Maybe your env file is not being used. What are you using? Portainer or plain compose file? Also better nuke your current installation (remove the db volume/data) before re-deploying

I'm using Portainer:

Compose file (I'm not linking any ports because NPM access documenso through the docker network):

I'm made some changes to fit yours, but still getting the same thing. What is the marketing url used for in the first place? Even when I set it in my env, it doesn't show up in the logs as being used as part of the confirmation email stuff.

<!-- gh-comment-id:2408831936 --> @Dvalin21 commented on GitHub (Oct 13, 2024): > Maybe your env file is not being used. What are you using? Portainer or plain compose file? Also better nuke your current installation (remove the db volume/data) before re-deploying > > I'm using Portainer: > > Compose file (I'm not linking any ports because NPM access documenso through the docker network): > I'm made some changes to fit yours, but still getting the same thing. What is the marketing url used for in the first place? Even when I set it in my env, it doesn't show up in the logs as being used as part of the confirmation email stuff.
Author
Owner

@Dvalin21 commented on GitHub (Oct 13, 2024):

ENV

# [[AUTH]]
NEXTAUTH_URL="https://domain.com"
NEXTAUTH_SECRET="secret"

# [[DATABASE]]
POSTGRES_USER="documenso"
POSTGRES_PASSWORD=password"
POSTGRES_DB="documenso"
NEXT_PRIVATE_DATABASE_URL="postgres://documenso:password@documenso-db:5432/documenso"
NEXT_PRIVATE_DIRECT_DATABASE_URL="postgres://documenso:password@documenso-db:5432/documenso"

# [[CRYPTO]]
# Application Key for symmetric encryption and decryption
# REQUIRED: This should be a random string of at least 32 characters
NEXT_PRIVATE_ENCRYPTION_KEY="key"

# REQUIRED: This should be a random string of at least 32 characters
NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY="key"

# [[URLS]]
NEXT_PUBLIC_WEBAPP_URL="https://domain.com"
NEXT_PRIVATE_INTERNAL_WEBAPP_URL="hhttps://domain.com"


NEXT_PUBLIC_MARKETING_URL="https://domain-marketing.com"
NEXT_PUBLIC_UPLOAD_TRANSPORT="database"


# [[SIGNING]]
# The transport to use for document signing. Available options: local (default) | gcloud-hsm
NEXT_PRIVATE_SIGNING_TRANSPORT="local"

# OPTIONAL: The passphrase to use for the local file-based signing transport.
NEXT_PRIVATE_SIGNING_PASSPHRASE=phrase

# OPTIONAL: The local file path to the .p12 file to use for the local signing transport.
NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=/opt/documenso/certificate.p12

# OPTIONAL: The base64-encoded contents of the .p12 file to use for the local signing transport.
#NEXT_PRIVATE_SIGNING_LOCAL_FILE_CONTENTS=/opt/documenso/


# [[SMTP]]
# OPTIONAL: Defines the transport to use for sending emails. Available options: smtp-auth (default)
NEXT_PRIVATE_SMTP_TRANSPORT="smtp-auth"
NEXT_PRIVATE_SMTP_HOST="mail.domain.com"
NEXT_PRIVATE_SMTP_PORT=587
NEXT_PRIVATE_SMTP_USERNAME="me@domain.com"
NEXT_PRIVATE_SMTP_PASSWORD='mypassword'
NEXT_PRIVATE_SMTP_SECURE="false"
# OPTIONAL: if this is true and NEXT_PRIVATE_SMTP_SECURE is false then TLS is not used even if the server supports STARTTLS extension
NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS="false"
# REQUIRED: Defines the sender name to use for the from address.
NEXT_PRIVATE_SMTP_FROM_NAME="Sign"
NEXT_PRIVATE_SMTP_FROM_ADDRESS="noreply@documenso.com"
# OPTIONAL: Displays the maximum document upload limit to the user in MBs
NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=50
NEXT_PRIVATE_JOBS_PROVIDER="local"

# [[FEATURES]]
# OPTIONAL: Leave blank to disable billing.
NEXT_PUBLIC_FEATURE_BILLING_ENABLED=
# OPTIONAL: Leave blank to allow users to signup through /signup page.
NEXT_PUBLIC_DISABLE_SIGNUP=

compose

services:
  database:
    container_name: documenso-db
    hostname: documenso-db
    env_file: .env
    image: postgres:15
    #    ports:
    #      - "54320"
    #      - "5432"
    expose:
      - "54320"
      - "5432"
    healthcheck:
      test:
        - CMD-SHELL
        - pg_isready -U documenso
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - /home/incus/documenso/db:/var/lib/postgresql/data
  documenso:
    container_name: documenso-app
    hostname: documenso-app
    env_file: .env
    image: documenso/documenso:latest
    depends_on:
      database:
        condition: service_healthy
    ports:
      - 3089:3000
      - 3001:3001
    volumes:
      - /home/incus/documenso/certificate.p12:/opt/documenso/certificate.p12
networks:
  documenso:
    name: documenso
    driver: bridge
<!-- gh-comment-id:2408836819 --> @Dvalin21 commented on GitHub (Oct 13, 2024): ENV ``` # [[AUTH]] NEXTAUTH_URL="https://domain.com" NEXTAUTH_SECRET="secret" # [[DATABASE]] POSTGRES_USER="documenso" POSTGRES_PASSWORD=password" POSTGRES_DB="documenso" NEXT_PRIVATE_DATABASE_URL="postgres://documenso:password@documenso-db:5432/documenso" NEXT_PRIVATE_DIRECT_DATABASE_URL="postgres://documenso:password@documenso-db:5432/documenso" # [[CRYPTO]] # Application Key for symmetric encryption and decryption # REQUIRED: This should be a random string of at least 32 characters NEXT_PRIVATE_ENCRYPTION_KEY="key" # REQUIRED: This should be a random string of at least 32 characters NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY="key" # [[URLS]] NEXT_PUBLIC_WEBAPP_URL="https://domain.com" NEXT_PRIVATE_INTERNAL_WEBAPP_URL="hhttps://domain.com" NEXT_PUBLIC_MARKETING_URL="https://domain-marketing.com" NEXT_PUBLIC_UPLOAD_TRANSPORT="database" # [[SIGNING]] # The transport to use for document signing. Available options: local (default) | gcloud-hsm NEXT_PRIVATE_SIGNING_TRANSPORT="local" # OPTIONAL: The passphrase to use for the local file-based signing transport. NEXT_PRIVATE_SIGNING_PASSPHRASE=phrase # OPTIONAL: The local file path to the .p12 file to use for the local signing transport. NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=/opt/documenso/certificate.p12 # OPTIONAL: The base64-encoded contents of the .p12 file to use for the local signing transport. #NEXT_PRIVATE_SIGNING_LOCAL_FILE_CONTENTS=/opt/documenso/ # [[SMTP]] # OPTIONAL: Defines the transport to use for sending emails. Available options: smtp-auth (default) NEXT_PRIVATE_SMTP_TRANSPORT="smtp-auth" NEXT_PRIVATE_SMTP_HOST="mail.domain.com" NEXT_PRIVATE_SMTP_PORT=587 NEXT_PRIVATE_SMTP_USERNAME="me@domain.com" NEXT_PRIVATE_SMTP_PASSWORD='mypassword' NEXT_PRIVATE_SMTP_SECURE="false" # OPTIONAL: if this is true and NEXT_PRIVATE_SMTP_SECURE is false then TLS is not used even if the server supports STARTTLS extension NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS="false" # REQUIRED: Defines the sender name to use for the from address. NEXT_PRIVATE_SMTP_FROM_NAME="Sign" NEXT_PRIVATE_SMTP_FROM_ADDRESS="noreply@documenso.com" # OPTIONAL: Displays the maximum document upload limit to the user in MBs NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=50 NEXT_PRIVATE_JOBS_PROVIDER="local" # [[FEATURES]] # OPTIONAL: Leave blank to disable billing. NEXT_PUBLIC_FEATURE_BILLING_ENABLED= # OPTIONAL: Leave blank to allow users to signup through /signup page. NEXT_PUBLIC_DISABLE_SIGNUP= ``` compose ``` services: database: container_name: documenso-db hostname: documenso-db env_file: .env image: postgres:15 # ports: # - "54320" # - "5432" expose: - "54320" - "5432" healthcheck: test: - CMD-SHELL - pg_isready -U documenso interval: 10s timeout: 5s retries: 5 volumes: - /home/incus/documenso/db:/var/lib/postgresql/data documenso: container_name: documenso-app hostname: documenso-app env_file: .env image: documenso/documenso:latest depends_on: database: condition: service_healthy ports: - 3089:3000 - 3001:3001 volumes: - /home/incus/documenso/certificate.p12:/opt/documenso/certificate.p12 networks: documenso: name: documenso driver: bridge ```
Author
Owner

@parasiteoflife commented on GitHub (Oct 13, 2024):

As far as I know the marketing site is not used for anything, the marketing site is what website https://documen.so shows. I think for the marketing site to be used there needs to be a certain env var and if that is used normal site is not fired up so you would use either one not both in the same container. Currently in my case even documenso-marketing.domain.io resolves to nothing.

How are you generating your keys? Almost all keys should be different, the only one that repeats is the DB user password you can try generate them with:

openssl rand -base64 64

Also iirc NEXT_PUBLIC_POSTHOG_KEY should be defined with an empty string.

I recommend you first try using inbucket to see if mails are sent using that, you just have to add the service to the compose file and change the host and port to documenso-inbucket and 2500.

  documenso-inbucket:
    image: inbucket/inbucket
    container_name: documenso-inbucket
    ports:
      - 9000:9000 # webui
      #- 2500:2500 # smtp
      #- 1100:1100 # pop3
    networks:
      documenso:
      npm:
<!-- gh-comment-id:2408888770 --> @parasiteoflife commented on GitHub (Oct 13, 2024): As far as I know the marketing site is not used for anything, the marketing site is what website https://documen.so shows. I think for the marketing site to be used there needs to be a certain env var and if that is used normal site is not fired up so you would use either one not both in the same container. Currently in my case even documenso-marketing.domain.io resolves to nothing. How are you generating your keys? Almost all keys should be different, the only one that repeats is the DB user password you can try generate them with: ``` openssl rand -base64 64 ``` Also iirc `NEXT_PUBLIC_POSTHOG_KEY` should be defined with an empty string. I recommend you first try using inbucket to see if mails are sent using that, you just have to add the service to the compose file and change the host and port to `documenso-inbucket` and `2500`. ```yaml documenso-inbucket: image: inbucket/inbucket container_name: documenso-inbucket ports: - 9000:9000 # webui #- 2500:2500 # smtp #- 1100:1100 # pop3 networks: documenso: npm: ```
Author
Owner

@Dvalin21 commented on GitHub (Oct 13, 2024):

As far as I know the marketing site is not used for anything, the marketing site is what website https://documen.so shows. I think for the marketing site to be used there needs to be a certain env var and if that is used normal site is not fired up so you would use either one not both in the same container. Currently in my case even documenso-marketing.domain.io resolves to nothing.

How are you generating your keys? Almost all keys should be different, the only one that repeats is the DB user password you can try generate them with:

openssl rand -base64 64

Also iirc NEXT_PUBLIC_POSTHOG_KEY should be defined with an empty string.

I recommend you first try using inbucket to see if mails are sent using that, you just have to add the service to the compose file and change the host and port to documenso-inbucket and 2500.

  documenso-inbucket:
    image: inbucket/inbucket
    container_name: documenso-inbucket
    ports:
      - 9000:9000 # webui
      #- 2500:2500 # smtp
      #- 1100:1100 # pop3
    networks:
      documenso:
      npm:

I've made sure all keys were different, but haven't tried the inbucket.

<!-- gh-comment-id:2408995103 --> @Dvalin21 commented on GitHub (Oct 13, 2024): > As far as I know the marketing site is not used for anything, the marketing site is what website https://documen.so shows. I think for the marketing site to be used there needs to be a certain env var and if that is used normal site is not fired up so you would use either one not both in the same container. Currently in my case even documenso-marketing.domain.io resolves to nothing. > > How are you generating your keys? Almost all keys should be different, the only one that repeats is the DB user password you can try generate them with: > > ``` > openssl rand -base64 64 > ``` > > Also iirc `NEXT_PUBLIC_POSTHOG_KEY` should be defined with an empty string. > > I recommend you first try using inbucket to see if mails are sent using that, you just have to add the service to the compose file and change the host and port to `documenso-inbucket` and `2500`. > > ```yaml > documenso-inbucket: > image: inbucket/inbucket > container_name: documenso-inbucket > ports: > - 9000:9000 # webui > #- 2500:2500 # smtp > #- 1100:1100 # pop3 > networks: > documenso: > npm: > ``` I've made sure all keys were different, but haven't tried the inbucket.
Author
Owner

@tmlmt commented on GitHub (Oct 13, 2024):

I had the same error and your conversation here made me try to add a few environment variables, and I finally received the confirmation email. What did the trick for me is to have all three of these variables set to my public url:

NEXTAUTH_URL='https://documenso.[redacted].com'
NEXT_PUBLIC_WEBAPP_URL='https://documenso.[redacted].com'
NEXT_PRIVATE_INTERNAL_WEBAPP_URL='https://documenso.[redacted].com'

I just had NEXT_PUBLIC_WEBAPP_URL before, and strangely enough I was received password reset and password reset success emails, but not the confirmation email...

<!-- gh-comment-id:2409181966 --> @tmlmt commented on GitHub (Oct 13, 2024): I had the same error and your conversation here made me try to add a few environment variables, and I finally received the confirmation email. What did the trick for me is to have all three of these variables set to my public url: ``` NEXTAUTH_URL='https://documenso.[redacted].com' NEXT_PUBLIC_WEBAPP_URL='https://documenso.[redacted].com' NEXT_PRIVATE_INTERNAL_WEBAPP_URL='https://documenso.[redacted].com' ``` I just had `NEXT_PUBLIC_WEBAPP_URL` before, and strangely enough I was received password reset and password reset success emails, but not the confirmation email...
Author
Owner

@RosaEinhorn commented on GitHub (Oct 14, 2024):

Thanks to everyone for helping to solve this issue (at least for me).
One part has been eye-opening to me which is this comment in @parasiteoflife's config:

URL used by the web app to request itself (e.g. local background jobs)

This can't be localhost:3000, it doesn't work, you have to use the public URL instead.

NEXT_PRIVATE_INTERNAL_WEBAPP_URL="https://documenso.domain.io"

I was trying to run documenso privately and access it through a tailscale (headscale) network. Hence I set the domains mentioned by @tmlmt to tailscale dns names. Now that I know that documenso calls its API "publicly" I am sure it was not able to resolve those domain names from inside the container (as the container does now know the tailscale dns).

The solution for me was to host documenso publicly (behind my reverse proxy) and set the domain names to publicly reachable domain names. This solved the issue immediately.

<!-- gh-comment-id:2410562663 --> @RosaEinhorn commented on GitHub (Oct 14, 2024): Thanks to everyone for helping to solve this issue (at least for me). One part has been eye-opening to me which is this comment in @parasiteoflife's config: > # URL used by the web app to request itself (e.g. local background jobs) > # This can't be localhost:3000, it doesn't work, you have to use the public URL instead. > NEXT_PRIVATE_INTERNAL_WEBAPP_URL="https://documenso.domain.io" I was trying to run documenso privately and access it through a tailscale (headscale) network. Hence I set the domains mentioned by @tmlmt to tailscale dns names. Now that I know that documenso calls its API "publicly" I am sure it was not able to resolve those domain names from inside the container (as the container does now know the tailscale dns). The solution for me was to host documenso publicly (behind my reverse proxy) and set the domain names to publicly reachable domain names. This solved the issue immediately.
Author
Owner

@Dvalin21 commented on GitHub (Oct 14, 2024):

@parasiteoflife Hey, got it working. Not really sure which part got it to work as for some reason the email came delayed. When I resent the confirmation email, it was instant. With that said, I would recommend all to use @parasiteoflife compose and env as a default template. The documentation on this application still needs work and a little confusing. Oh and I was able to use my gmail to send the confirmation.

<!-- gh-comment-id:2411324455 --> @Dvalin21 commented on GitHub (Oct 14, 2024): @parasiteoflife Hey, got it working. Not really sure which part got it to work as for some reason the email came delayed. When I resent the confirmation email, it was instant. With that said, I would recommend all to use @parasiteoflife compose and env as a default template. The documentation on this application still needs work and a little confusing. Oh and I was able to use my gmail to send the confirmation.
Author
Owner

@epheo commented on GitHub (Nov 5, 2024):

Changing private endpoint to public didn't do it alone.
Email webhook now works well once I replaced my public endpoint self-signed cert with one from a known Certificate Authority.

As a Documenso administrator I would like to be able to use a private endpoints for emails webhook instead of the public one.

<!-- gh-comment-id:2456615418 --> @epheo commented on GitHub (Nov 5, 2024): Changing private endpoint to public didn't do it alone. Email webhook now works well once I replaced my public endpoint self-signed cert with one from a known Certificate Authority. As a Documenso administrator I would like to be able to use a private endpoints for emails webhook instead of the public one.
Author
Owner

@xfang2024 commented on GitHub (Nov 8, 2024):

got the same problem, the logs showed confirmation letters submitted to the endpoint but the never received the letters.
Eligible jobs: [ 'Send Confirmation Email' ]
Submitting job to endpoint: http://localhost:3000/api/jobs/send.signup.confirmation.email/cm380gz2x0000ow34c9ju6ueq
i tried to change the internal web url to the public url, it's still not working.

<!-- gh-comment-id:2463515921 --> @xfang2024 commented on GitHub (Nov 8, 2024): got the same problem, the logs showed confirmation letters submitted to the endpoint but the never received the letters. Eligible jobs: [ 'Send Confirmation Email' ] Submitting job to endpoint: http://localhost:3000/api/jobs/send.signup.confirmation.email/cm380gz2x0000ow34c9ju6ueq i tried to change the internal web url to the public url, it's still not working.
Author
Owner

@altingrc commented on GitHub (Nov 16, 2024):

Same here. The fogot password email is sent successfully, but the verification email not...

Submitting job to endpoint: -http://duco-doc-eahdx5-3d33bc-167-71-39-42.traefik.me/api/jobs/send.signup.confirmation.email/cm3kid5if0000qf2135ev3zg0

<!-- gh-comment-id:2480715311 --> @altingrc commented on GitHub (Nov 16, 2024): Same here. The fogot password email is sent successfully, but the verification email not... `Submitting job to endpoint: -http://duco-doc-eahdx5-3d33bc-167-71-39-42.traefik.me/api/jobs/send.signup.confirmation.email/cm3kid5if0000qf2135ev3zg0`
Author
Owner

@etaxi341 commented on GitHub (Nov 18, 2024):

Any news on this? I can't get it to work... Reset Password works but not the verify Mail

<!-- gh-comment-id:2482707111 --> @etaxi341 commented on GitHub (Nov 18, 2024): Any news on this? I can't get it to work... Reset Password works but not the verify Mail
Author
Owner

@etaxi341 commented on GitHub (Nov 18, 2024):

Wow... I did not think that this would fix it... I have set the

NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://localhost:3000"
to
NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://[internal docker container ip]:3000"

and now it works

<!-- gh-comment-id:2483112567 --> @etaxi341 commented on GitHub (Nov 18, 2024): Wow... I did not think that this would fix it... I have set the NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://localhost:3000" to NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://[internal docker container ip]:3000" and now it works
Author
Owner

@Dvalin21 commented on GitHub (Nov 18, 2024):

Wow... I did not think that this would fix it... I have set the

NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://localhost:3000" to NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://:3000"

and now it works

Nice job!!

<!-- gh-comment-id:2484336324 --> @Dvalin21 commented on GitHub (Nov 18, 2024): > Wow... I did not think that this would fix it... I have set the > > NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://localhost:3000" to NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://:3000" > > and now it works Nice job!!
Author
Owner

@kool2zero commented on GitHub (Jan 8, 2025):

Parasite's reply worked for me. One thing that tripped me up for a bit was that I put the port as a number 587 instead of a string "587".

Also, certain hosting providers like host monster, seem to require the the name option in the transport function.

You would need to make the change in mailer.ts

Then rerun:
npm run build:web

<!-- gh-comment-id:2578686209 --> @kool2zero commented on GitHub (Jan 8, 2025): [Parasite's reply](https://github.com/documenso/documenso/issues/1307#issuecomment-2408477806) worked for me. One thing that tripped me up for a bit was that I put the port as a number 587 instead of a string "587". Also, certain hosting providers like host monster, [seem to require the the name option in the transport function](https://github.com/nodemailer/nodemailer/issues/677#issuecomment-2002092310). You would need to make the change in [mailer.ts](https://github.com/documenso/documenso/blob/main/packages/email/mailer.ts) Then rerun: `npm run build:web`
Author
Owner

@lelehier commented on GitHub (Mar 6, 2025):

Wow... I did not think that this would fix it... I have set the

NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://localhost:3000" to NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://[internal docker container ip]:3000"

and now it works

no way. I just got the confirmation mail. ._.

Thank you <3

<!-- gh-comment-id:2704006184 --> @lelehier commented on GitHub (Mar 6, 2025): > Wow... I did not think that this would fix it... I have set the > > NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://localhost:3000" to NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://[internal docker container ip]:3000" > > and now it works no way. I just got the confirmation mail. ._. Thank you <3
Author
Owner

@Dvalin21 commented on GitHub (Mar 6, 2025):

Wow... I did not think that this would fix it... I have set the
NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://localhost:3000" to NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://[internal docker container ip]:3000"
and now it works

no way. I just got the confirmation mail. ._.

Thank you <3

Is this in documentation?

<!-- gh-comment-id:2704791232 --> @Dvalin21 commented on GitHub (Mar 6, 2025): > > Wow... I did not think that this would fix it... I have set the > > NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://localhost:3000" to NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://[internal docker container ip]:3000" > > and now it works > > no way. I just got the confirmation mail. ._. > > Thank you <3 Is this in documentation?
Author
Owner

@Novapixel1010 commented on GitHub (Apr 27, 2025):

If anyone still trying to figure this out I made a post #1763

<!-- gh-comment-id:2833182440 --> @Novapixel1010 commented on GitHub (Apr 27, 2025): If anyone still trying to figure this out I made a post #1763
Author
Owner

@lntrpdx commented on GitHub (Jan 22, 2026):

Wow... I did not think that this would fix it... I have set the

NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://localhost:3000" to NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://[internal docker container ip]:3000"

and now it works

Adding some additional info for those who are not successful with this change, I figured that it only works with the default PORT set to 3000, if you set the env variable PORT to [custom_port] different than 3000 and set NEXT_PRIVATE_INTERNAL_WEBAPP_URL to http://documenso:[custom_port] , it has not been working for me, reverting back to 3000 worked.

<!-- gh-comment-id:3785143826 --> @lntrpdx commented on GitHub (Jan 22, 2026): > Wow... I did not think that this would fix it... I have set the > > NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://localhost:3000" to NEXT_PRIVATE_INTERNAL_WEBAPP_URL="http://[internal docker container ip]:3000" > > and now it works Adding some additional info for those who are not successful with this change, I figured that it only works with the default PORT set to 3000, if you set the env variable PORT to [custom_port] different than 3000 and set NEXT_PRIVATE_INTERNAL_WEBAPP_URL to http://documenso:[custom_port] , it has not been working for me, reverting back to 3000 worked.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/documenso#368
No description provided.