[GH-ISSUE #1661] Self Hosted Installation, first login, confirmation email never received impossible to use the software #471

Open
opened 2026-02-26 18:47:11 +03:00 by kerem · 30 comments
Owner

Originally created by @ralfdigitalagency on GitHub (Feb 19, 2025).
Original GitHub issue: https://github.com/documenso/documenso/issues/1661

Issue Description

Image

Self Hosted Installation, first login, confirmation email never received impossible to use the software.
Any help?

Thx

Steps to Reproduce

No response

Expected Behavior

No response

Current Behavior

No response

Screenshots (optional)

No response

Operating System [e.g., Windows 10]

No response

Browser [e.g., Chrome, Firefox]

No response

Version [e.g., 2.0.1]

No response

Please check the boxes that apply to this issue report.

  • I have searched the existing issues to make sure this is not a duplicate.
  • I have provided steps to reproduce the issue.
  • I have included relevant environment information.
  • I have included any relevant screenshots.
  • I understand that this is a voluntary contribution and that there is no guarantee of resolution.
  • I want to work on creating a PR for this issue if approved
Originally created by @ralfdigitalagency on GitHub (Feb 19, 2025). Original GitHub issue: https://github.com/documenso/documenso/issues/1661 ### Issue Description ![Image](https://github.com/user-attachments/assets/d950e531-0f96-4eef-925f-1d4d71460779) Self Hosted Installation, first login, confirmation email never received impossible to use the software. Any help? Thx ### Steps to Reproduce _No response_ ### Expected Behavior _No response_ ### Current Behavior _No response_ ### Screenshots (optional) _No response_ ### Operating System [e.g., Windows 10] _No response_ ### Browser [e.g., Chrome, Firefox] _No response_ ### Version [e.g., 2.0.1] _No response_ ### Please check the boxes that apply to this issue report. - [x] I have searched the existing issues to make sure this is not a duplicate. - [ ] I have provided steps to reproduce the issue. - [ ] I have included relevant environment information. - [x] I have included any relevant screenshots. - [x] I understand that this is a voluntary contribution and that there is no guarantee of resolution. - [ ] I want to work on creating a PR for this issue if approved
Author
Owner

@github-actions[bot] commented on GitHub (Feb 19, 2025):

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:2669987876 --> @github-actions[bot] commented on GitHub (Feb 19, 2025): 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

@ralfdigitalagency commented on GitHub (Feb 19, 2025):

I followed this suggestions: with NO resolution

https://github.com/documenso/documenso/issues/1307

<!-- gh-comment-id:2670032958 --> @ralfdigitalagency commented on GitHub (Feb 19, 2025): I followed this suggestions: with NO resolution https://github.com/documenso/documenso/issues/1307
Author
Owner

@crazyyzarc commented on GitHub (Feb 20, 2025):

I don't receive any confirmation e-mails for registration either, but I do receive e-mails to reset my passwords.

Image

<!-- gh-comment-id:2671229181 --> @crazyyzarc commented on GitHub (Feb 20, 2025): I don't receive any confirmation e-mails for registration either, but I do receive e-mails to reset my passwords. ![Image](https://github.com/user-attachments/assets/3a540c34-0b62-4520-aef1-94555f3bb690)
Author
Owner

@ralfdigitalagency commented on GitHub (Feb 20, 2025):

I dont', how you did it? I am stuck now being able to login on the homepage

<!-- gh-comment-id:2671477614 --> @ralfdigitalagency commented on GitHub (Feb 20, 2025): I dont', how you did it? I am stuck now being able to login on the homepage
Author
Owner

@crazyyzarc commented on GitHub (Feb 20, 2025):

Show me your docker compose / .env . What's app url and do you have a reverse proxy?

<!-- gh-comment-id:2671522724 --> @crazyyzarc commented on GitHub (Feb 20, 2025): Show me your docker compose / .env . What's app url and do you have a reverse proxy?
Author
Owner

@ralfdigitalagency commented on GitHub (Feb 20, 2025):

https://share.zight.com/nOu42RLd
I use caddy as reverse proxy and Documenso is deployed with Coolify
@crazyyzarc thanks

<!-- gh-comment-id:2671547004 --> @ralfdigitalagency commented on GitHub (Feb 20, 2025): https://share.zight.com/nOu42RLd I use caddy as reverse proxy and Documenso is deployed with Coolify @crazyyzarc thanks
Author
Owner

@crazyyzarc commented on GitHub (Feb 20, 2025):

My docker-compose.yml

services:
  database:
    container_name: documenso-db
    hostname: documenso-db
    env_file: .env
    environment:
      POSTGRES_DB: documenso_db
      POSTGRES_USER: documenso_user
      POSTGRES_PASSWORD: documenso_pw
    image: postgres:15
    #    ports:
    #      - "54320"
    #      - "5432"
    expose:
      - "54320"
      - "5432"
    healthcheck:
      test:
        - CMD-SHELL
        - pg_isready -d documenso_db -U documenso_user
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - ./documenso_db:/var/lib/postgresql/data
    networks:
      - documenso

  documenso:
    container_name: documenso-app
    hostname: documenso-app
    env_file: .env
    image: documenso/documenso:latest
    depends_on:
      database:
        condition: service_healthy
    ports:
      - 3000:3000
      - 3001:3001
    volumes:
      - ./documenso_data:/opt/documenso/
    networks:
      - documenso

networks:
  documenso:
    name: documenso
    driver: bridge

My .env

# [[AUTH]]
NEXTAUTH_URL="https://sign.local.intern"
NEXTAUTH_SECRET='key1'

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

# [[URLS]]
NEXT_PUBLIC_WEBAPP_URL="https://sign.local.intern"
NEXT_PUBLIC_MARKETING_URL="https://sign.local.intern"
# 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://sign.local.intern"

# [[DATABASE]]
NEXT_PRIVATE_DIRECT_DATABASE_URL='postgres://documenso_user:documenso_pw@documenso-db:5432/documenso_db'
NEXT_PRIVATE_DATABASE_URL='postgres://documenso_user:documenso_pw@documenso-db:5432/documenso_db'

POSTGRES_USER='documenso_user'
# This password shouldn't contain special characters like '%', '$' or '@' to avoid issues.
POSTGRES_PASSWORD='documenso_pw'
POSTGRES_DB='documenso_db'

# [[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.local.internal"
# OPTIONAL: Defines the port to use for sending emails.
# 465 is not working right now, use STARTTLS on 587 instead
NEXT_PRIVATE_SMTP_PORT=25
# OPTIONAL: Defines the username to use with the SMTP server.
#NEXT_PRIVATE_SMTP_USERNAME=""
# 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="true"
# 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="notification@test.intern.com"
# 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
<!-- gh-comment-id:2671630401 --> @crazyyzarc commented on GitHub (Feb 20, 2025): My docker-compose.yml ``` services: database: container_name: documenso-db hostname: documenso-db env_file: .env environment: POSTGRES_DB: documenso_db POSTGRES_USER: documenso_user POSTGRES_PASSWORD: documenso_pw image: postgres:15 # ports: # - "54320" # - "5432" expose: - "54320" - "5432" healthcheck: test: - CMD-SHELL - pg_isready -d documenso_db -U documenso_user interval: 10s timeout: 5s retries: 5 volumes: - ./documenso_db:/var/lib/postgresql/data networks: - documenso documenso: container_name: documenso-app hostname: documenso-app env_file: .env image: documenso/documenso:latest depends_on: database: condition: service_healthy ports: - 3000:3000 - 3001:3001 volumes: - ./documenso_data:/opt/documenso/ networks: - documenso networks: documenso: name: documenso driver: bridge ``` My .env ``` # [[AUTH]] NEXTAUTH_URL="https://sign.local.intern" NEXTAUTH_SECRET='key1' # [[CRYPTO]] # Application Key for symmetric encryption and decryption # REQUIRED: This should be a random string of at least 32 characters NEXT_PRIVATE_ENCRYPTION_KEY='key2' # REQUIRED: This should be a random string of at least 32 characters NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY='key3' # [[URLS]] NEXT_PUBLIC_WEBAPP_URL="https://sign.local.intern" NEXT_PUBLIC_MARKETING_URL="https://sign.local.intern" # 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://sign.local.intern" # [[DATABASE]] NEXT_PRIVATE_DIRECT_DATABASE_URL='postgres://documenso_user:documenso_pw@documenso-db:5432/documenso_db' NEXT_PRIVATE_DATABASE_URL='postgres://documenso_user:documenso_pw@documenso-db:5432/documenso_db' POSTGRES_USER='documenso_user' # This password shouldn't contain special characters like '%', '$' or '@' to avoid issues. POSTGRES_PASSWORD='documenso_pw' POSTGRES_DB='documenso_db' # [[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.local.internal" # OPTIONAL: Defines the port to use for sending emails. # 465 is not working right now, use STARTTLS on 587 instead NEXT_PRIVATE_SMTP_PORT=25 # OPTIONAL: Defines the username to use with the SMTP server. #NEXT_PRIVATE_SMTP_USERNAME="" # 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="true" # 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="notification@test.intern.com" # 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 ```
Author
Owner

@ralfdigitalagency commented on GitHub (Feb 20, 2025):

How can I add/amend those? I installed Coolify and I don't know were to access docker-compose.yml and .env

<!-- gh-comment-id:2672744946 --> @ralfdigitalagency commented on GitHub (Feb 20, 2025): How can I add/amend those? I installed Coolify and I don't know were to access docker-compose.yml and .env
Author
Owner

@ukthatsawesome commented on GitHub (Feb 25, 2025):

Hi @ralfdigitalagency did you find any solution? I am facing the same issue on a newer docker installation for latest image.

<!-- gh-comment-id:2682219664 --> @ukthatsawesome commented on GitHub (Feb 25, 2025): Hi @ralfdigitalagency did you find any solution? I am facing the same issue on a newer docker installation for latest image.
Author
Owner

@sanikolaev commented on GitHub (Feb 25, 2025):

Same here. I see this in the log (container output), but no email:

documenso-production-documenso-1  | Submitting job to endpoint: http://localhost:82/api/jobs/send.signup.confirmation.email/cm7kn3v0c0001r620d9h8t8op
<!-- gh-comment-id:2682375410 --> @sanikolaev commented on GitHub (Feb 25, 2025): Same here. I see this in the log (container output), but no email: ``` documenso-production-documenso-1 | Submitting job to endpoint: http://localhost:82/api/jobs/send.signup.confirmation.email/cm7kn3v0c0001r620d9h8t8op ```
Author
Owner

@ralfdigitalagency commented on GitHub (Feb 25, 2025):

Hi @ralfdigitalagency did you find any solution? I am facing the same issue on a newer docker installation for latest image.

No solution so far, nobody came back to me with a solution

<!-- gh-comment-id:2683555764 --> @ralfdigitalagency commented on GitHub (Feb 25, 2025): > Hi [@ralfdigitalagency](https://github.com/ralfdigitalagency) did you find any solution? I am facing the same issue on a newer docker installation for latest image. No solution so far, nobody came back to me with a solution
Author
Owner

@sanikolaev commented on GitHub (Feb 26, 2025):

@ralfdigitalagency I couldn't pinpoint the exact issue, but this was very helpful: https://github.com/documenso/documenso/issues/1167#issuecomment-2422944602. With this setup, I managed to get the email working.

<!-- gh-comment-id:2683852607 --> @sanikolaev commented on GitHub (Feb 26, 2025): @ralfdigitalagency I couldn't pinpoint the exact issue, but this was very helpful: https://github.com/documenso/documenso/issues/1167#issuecomment-2422944602. With this setup, I managed to get the email working.
Author
Owner

@emnbdx commented on GitHub (Feb 26, 2025):

Hi, i have exactly same issue.

Mail for reset password are sent but not the one for email confirmation

<!-- gh-comment-id:2684551318 --> @emnbdx commented on GitHub (Feb 26, 2025): Hi, i have exactly same issue. Mail for reset password are sent but not the one for email confirmation
Author
Owner

@Sarmingsteiner commented on GitHub (Feb 26, 2025):

Hi, i have exactly same issue.

Mail for reset password are sent but not the one for email confirmation

+1

<!-- gh-comment-id:2684639640 --> @Sarmingsteiner commented on GitHub (Feb 26, 2025): > Hi, i have exactly same issue. > > Mail for reset password are sent but not the one for email confirmation +1
Author
Owner

@ralfdigitalagency commented on GitHub (Feb 26, 2025):

@ralfdigitalagency I couldn't pinpoint the exact issue, but this was very helpful: #1167 (comment). With this setup, I managed to get the email working.

Using those docker-compose.yml and .env will solve my issue too?

<!-- gh-comment-id:2684740615 --> @ralfdigitalagency commented on GitHub (Feb 26, 2025): > [@ralfdigitalagency](https://github.com/ralfdigitalagency) I couldn't pinpoint the exact issue, but this was very helpful: [#1167 (comment)](https://github.com/documenso/documenso/issues/1167#issuecomment-2422944602). With this setup, I managed to get the email working. Using those docker-compose.yml and .env will solve my issue too?
Author
Owner

@Sarmingsteiner commented on GitHub (Feb 26, 2025):

Update: I removed all the " and ' in the yaml configuration file, and now it works!

<!-- gh-comment-id:2684868859 --> @Sarmingsteiner commented on GitHub (Feb 26, 2025): Update: I removed all the `"` and `'` in the yaml configuration file, and now it works!
Author
Owner

@ralfdigitalagency commented on GitHub (Feb 26, 2025):

Still not working I inserted in the env file also the email codes nothing

<!-- gh-comment-id:2686429498 --> @ralfdigitalagency commented on GitHub (Feb 26, 2025): Still not working I inserted in the env file also the email codes nothing
Author
Owner

@crazyyzarc commented on GitHub (Feb 27, 2025):

Update: I removed all the " and ' in the yaml configuration file, and now it works!

also don't work for me :(

<!-- gh-comment-id:2688086666 --> @crazyyzarc commented on GitHub (Feb 27, 2025): > Update: I removed all the `"` and `'` in the yaml configuration file, and now it works! also don't work for me :(
Author
Owner

@ukthatsawesome commented on GitHub (Mar 4, 2025):

Thank you @sanikolaev this worked for me. I realized couple of things that I updated that worked for me.

  1. Comment out the Environment variables you aren't using.
  2. Do not use " or ' in .env file.
  3. Make sure to have certificate key and file properly set up. (very important)
  4. Instead of using 465, use 587
  5. Keep the NEXT_PRIVATE_SMTP_SECURE and NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS to false.
  6. Make sure all the URLS for webapp, internal webapp and marketing url point to the same url.

I will now test if my settings has any issues while using the application. Hopefully, none!

<!-- gh-comment-id:2696216941 --> @ukthatsawesome commented on GitHub (Mar 4, 2025): Thank you @sanikolaev this worked for me. I realized couple of things that I updated that worked for me. 1. Comment out the Environment variables you aren't using. 2. Do not use " or ' in .env file. 3. Make sure to have certificate key and file properly set up. (very important) 4. Instead of using 465, use 587 5. Keep the NEXT_PRIVATE_SMTP_SECURE and NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS to false. 6. Make sure all the URLS for webapp, internal webapp and marketing url point to the same url. I will now test if my settings has any issues while using the application. Hopefully, none!
Author
Owner

@crazyyzarc commented on GitHub (Mar 5, 2025):

Thank you @sanikolaev this worked for me. I realized couple of things that I updated that worked for me.

1. Comment out the Environment variables you aren't using. ✅
3. Do not use " or ' in .env file. ✅
4. Make sure to have certificate key and file properly set up. (very important) (⚠️ file signing cert is optional, see .env comments)
5. Instead of using 465, use 587 ✅
6. Keep the NEXT_PRIVATE_SMTP_SECURE and NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS to false. (⚠️ IGNORE_TLS is true, because I use port 25/tcp for smtp)
7. Make sure all the URLS for webapp, internal webapp and marketing url point to the same url.> ✅

I will now test if my settings has any issues while using the application. Hopefully, none!

Same. Only Password reset mails.

Image
Image

<!-- gh-comment-id:2700651162 --> @crazyyzarc commented on GitHub (Mar 5, 2025): > Thank you [@sanikolaev](https://github.com/sanikolaev) this worked for me. I realized couple of things that I updated that worked for me. > > 1. Comment out the Environment variables you aren't using. ✅ > 3. Do not use " or ' in .env file. ✅ > 4. Make sure to have certificate key and file properly set up. (very important) (⚠️ file signing cert is optional, see .env comments) > 5. Instead of using 465, use 587 ✅ > 6. Keep the NEXT_PRIVATE_SMTP_SECURE and NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS to false. (⚠️ IGNORE_TLS is true, because I use port 25/tcp for smtp) > 7. Make sure all the URLS for webapp, internal webapp and marketing url point to the same url.> ✅ > I will now test if my settings has any issues while using the application. Hopefully, none! Same. Only Password reset mails. ![Image](https://github.com/user-attachments/assets/54370e68-e840-4954-9fa5-51233a7763bc) ![Image](https://github.com/user-attachments/assets/e1ad5bcc-b44a-4624-960b-0ede02c8bcaf)
Author
Owner

@crazyyzarc commented on GitHub (Mar 17, 2025):

I finally found out. First of all: I use a nginx reverse proxy.
It is important that the internal URLs parameter¹ go to the internal URL (Port 3000) and the public URL² goes to the reverse proxy (443 or whatelse).

¹ NEXT_PRIVATE_INTERNAL_WEBAPP_URL + NEXT_AUTH_URL
² NEXT_PUBLIC_WEBAPP_URL

<!-- gh-comment-id:2728595324 --> @crazyyzarc commented on GitHub (Mar 17, 2025): I finally found out. First of all: I use a nginx reverse proxy. It is important that the internal URLs parameter¹ go to the internal URL (Port 3000) and the public URL² goes to the reverse proxy (443 or whatelse). ¹ NEXT_PRIVATE_INTERNAL_WEBAPP_URL + NEXT_AUTH_URL ² NEXT_PUBLIC_WEBAPP_URL
Author
Owner

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

Still not working I inserted in the env file also the email codes nothing

Did you ever figure this out?

<!-- gh-comment-id:2833141879 --> @Novapixel1010 commented on GitHub (Apr 27, 2025): > Still not working I inserted in the env file also the email codes nothing Did you ever figure this out?
Author
Owner

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

Update: I removed all the " and ' in the yaml configuration file, and now it works!

also don't work for me :(

Did you ever get this to work

@crazyyzarc

<!-- gh-comment-id:2833143275 --> @Novapixel1010 commented on GitHub (Apr 27, 2025): > > Update: I removed all the `"` and `'` in the yaml configuration file, and now it works! > > also don't work for me :( Did you ever get this to work @crazyyzarc
Author
Owner

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

Here is two setups that is working I am using Portainer but this should work via cli too.

First one

docker-compse

services:
  database:
    image: postgres:15
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER}']
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - database3:/var/lib/postgresql/data

  documenso:
    image: documenso/documenso:latest
    depends_on:
      database:
        condition: service_healthy
    environment:
      - NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
      - NEXT_PRIVATE_ENCRYPTION_KEY=${NEXT_PRIVATE_ENCRYPTION_KEY}
      - NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=${NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY}
      - NEXTAUTH_URL=${NEXTAUTH_URL}
      - NEXT_PUBLIC_WEBAPP_URL=${NEXT_PUBLIC_WEBAPP_URL}
      - NEXT_PRIVATE_INTERNAL_WEBAPP_URL=${NEXT_PRIVATE_INTERNAL_WEBAPP_URL}
      - NEXT_PRIVATE_DATABASE_URL=${NEXT_PRIVATE_DATABASE_URL}
      - NEXT_PRIVATE_DIRECT_DATABASE_URL=${NEXT_PRIVATE_DIRECT_DATABASE_URL}
      - NEXT_PUBLIC_UPLOAD_TRANSPORT=${NEXT_PUBLIC_UPLOAD_TRANSPORT}
      - NEXT_PRIVATE_UPLOAD_ENDPOINT=${NEXT_PRIVATE_UPLOAD_ENDPOINT}
      - NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE=${NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE}
      - NEXT_PRIVATE_UPLOAD_REGION=${NEXT_PRIVATE_UPLOAD_REGION}
      - NEXT_PRIVATE_UPLOAD_BUCKET=${NEXT_PRIVATE_UPLOAD_BUCKET}
      - NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID=${NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID}
      - NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY=${NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY}
      - NEXT_PRIVATE_SMTP_TRANSPORT=${NEXT_PRIVATE_SMTP_TRANSPORT}
      - NEXT_PRIVATE_SMTP_HOST=${NEXT_PRIVATE_SMTP_HOST}
      - NEXT_PRIVATE_SMTP_PORT=${NEXT_PRIVATE_SMTP_PORT}
      - NEXT_PRIVATE_SMTP_USERNAME=${NEXT_PRIVATE_SMTP_USERNAME}
      - NEXT_PRIVATE_SMTP_PASSWORD=${NEXT_PRIVATE_SMTP_PASSWORD}
      - NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS=${NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS}
      - NEXT_PRIVATE_SMTP_SECURE=${NEXT_PRIVATE_SMTP_SECURE}
      - NEXT_PRIVATE_SMTP_FROM_NAME=${NEXT_PRIVATE_SMTP_FROM_NAME}
      - NEXT_PRIVATE_SMTP_FROM_ADDRESS=${NEXT_PRIVATE_SMTP_FROM_ADDRESS}
      - NEXT_PRIVATE_SMTP_SERVICE=${NEXT_PRIVATE_SMTP_SERVICE}
      - NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=${NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT}
      - NEXT_PUBLIC_DISABLE_SIGNUP=${NEXT_PUBLIC_DISABLE_SIGNUP}
      - NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=${NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH}
      - NEXT_PRIVATE_SIGNING_PASSPHRASE=${NEXT_PRIVATE_SIGNING_PASSPHRASE}
    ports:
      - ${PORT:-3000}:3000
    volumes:
      - /opt/documenso/cert.p12:/opt/documenso/cert.p12

volumes:
  database3:

.env file

NEXTAUTH_SECRET=EMugJaJ+BKAYgMWJRYRbU8jtvljG89X3W8YhKL2Zcc0=
NEXT_PRIVATE_ENCRYPTION_KEY=EMugJaJ+BKAYgMWJRYRbU8jtvljG89X3W8YhKL2Zcc0=
NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=1SzLQ2NKYcmt3yXGo77KE26mdYjKmEjNyQCAlhCfNgA=
NEXT_PRIVATE_SIGNING_PASSPHRASE=novetechlab
NEXTAUTH_URL=https://signing.in.com
NEXT_PUBLIC_WEBAPP_URL=https://signing.in.com
NEXT_PRIVATE_INTERNAL_WEBAPP_URL=http://documenso:3000
NEXT_PRIVATE_DATABASE_URL=postgresql://documenso:changeme@database:5432/documenso
NEXT_PRIVATE_DIRECT_DATABASE_URL=postgresql://documenso:changeme@database:5432/documenso
NEXT_PRIVATE_SMTP_TRANSPORT=smtp-auth
NEXT_PRIVATE_SMTP_HOST=smtp.in.com
NEXT_PRIVATE_SMTP_PORT=1030
NEXT_PRIVATE_SMTP_USERNAME=documenso@in.com
NEXT_PRIVATE_SMTP_PASSWORD=dummy
NEXT_PRIVATE_SMTP_SECURE=false
NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS=true
NEXT_PRIVATE_SMTP_FROM_NAME=Documenso
NEXT_PRIVATE_SMTP_FROM_ADDRESS=documenso@domain.com
NEXT_PUBLIC_UPLOAD_TRANSPORT=database
NEXT_PRIVATE_UPLOAD_ENDPOINT=
NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE=
NEXT_PRIVATE_UPLOAD_REGION=
NEXT_PRIVATE_UPLOAD_BUCKET=
NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID=
NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY=
POSTGRES_USER=documenso
POSTGRES_PASSWORD=changeme
POSTGRES_DB=documenso
PORT=3038
NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=10485760
NEXT_PUBLIC_DISABLE_SIGNUP=
NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=

I use dns server coredns to point smtp.in.com to 192.168.1.213 where my mailpit container is

docker-compose for mailpit

services:
  mailpit:
    image: axllent/mailpit

    container_name: mailpit
    restart: unless-stopped
    volumes:
      - ./data:/data
    ports:
      - 8025:8025
      - 1030:1025
      - 1110:1110
    environment:
      MP_MAX_MESSAGES: 5000
      MP_DATABASE: /data/mailpit.db

make sure the port you expose for smtp is open. 😆 🤦‍♂ I spent two hours to figure that out. If your debian or ubuntu

sudo ufw allow 1030
<!-- gh-comment-id:2833158420 --> @Novapixel1010 commented on GitHub (Apr 27, 2025): Here is two setups that is working I am using Portainer but this should work via cli too. # First one ## docker-compse ```yaml services: database: image: postgres:15 environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} healthcheck: test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER}'] interval: 10s timeout: 5s retries: 5 volumes: - database3:/var/lib/postgresql/data documenso: image: documenso/documenso:latest depends_on: database: condition: service_healthy environment: - NEXTAUTH_SECRET=${NEXTAUTH_SECRET} - NEXT_PRIVATE_ENCRYPTION_KEY=${NEXT_PRIVATE_ENCRYPTION_KEY} - NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=${NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY} - NEXTAUTH_URL=${NEXTAUTH_URL} - NEXT_PUBLIC_WEBAPP_URL=${NEXT_PUBLIC_WEBAPP_URL} - NEXT_PRIVATE_INTERNAL_WEBAPP_URL=${NEXT_PRIVATE_INTERNAL_WEBAPP_URL} - NEXT_PRIVATE_DATABASE_URL=${NEXT_PRIVATE_DATABASE_URL} - NEXT_PRIVATE_DIRECT_DATABASE_URL=${NEXT_PRIVATE_DIRECT_DATABASE_URL} - NEXT_PUBLIC_UPLOAD_TRANSPORT=${NEXT_PUBLIC_UPLOAD_TRANSPORT} - NEXT_PRIVATE_UPLOAD_ENDPOINT=${NEXT_PRIVATE_UPLOAD_ENDPOINT} - NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE=${NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE} - NEXT_PRIVATE_UPLOAD_REGION=${NEXT_PRIVATE_UPLOAD_REGION} - NEXT_PRIVATE_UPLOAD_BUCKET=${NEXT_PRIVATE_UPLOAD_BUCKET} - NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID=${NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID} - NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY=${NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY} - NEXT_PRIVATE_SMTP_TRANSPORT=${NEXT_PRIVATE_SMTP_TRANSPORT} - NEXT_PRIVATE_SMTP_HOST=${NEXT_PRIVATE_SMTP_HOST} - NEXT_PRIVATE_SMTP_PORT=${NEXT_PRIVATE_SMTP_PORT} - NEXT_PRIVATE_SMTP_USERNAME=${NEXT_PRIVATE_SMTP_USERNAME} - NEXT_PRIVATE_SMTP_PASSWORD=${NEXT_PRIVATE_SMTP_PASSWORD} - NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS=${NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS} - NEXT_PRIVATE_SMTP_SECURE=${NEXT_PRIVATE_SMTP_SECURE} - NEXT_PRIVATE_SMTP_FROM_NAME=${NEXT_PRIVATE_SMTP_FROM_NAME} - NEXT_PRIVATE_SMTP_FROM_ADDRESS=${NEXT_PRIVATE_SMTP_FROM_ADDRESS} - NEXT_PRIVATE_SMTP_SERVICE=${NEXT_PRIVATE_SMTP_SERVICE} - NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=${NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT} - NEXT_PUBLIC_DISABLE_SIGNUP=${NEXT_PUBLIC_DISABLE_SIGNUP} - NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=${NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH} - NEXT_PRIVATE_SIGNING_PASSPHRASE=${NEXT_PRIVATE_SIGNING_PASSPHRASE} ports: - ${PORT:-3000}:3000 volumes: - /opt/documenso/cert.p12:/opt/documenso/cert.p12 volumes: database3: ``` ## .env file ```env NEXTAUTH_SECRET=EMugJaJ+BKAYgMWJRYRbU8jtvljG89X3W8YhKL2Zcc0= NEXT_PRIVATE_ENCRYPTION_KEY=EMugJaJ+BKAYgMWJRYRbU8jtvljG89X3W8YhKL2Zcc0= NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=1SzLQ2NKYcmt3yXGo77KE26mdYjKmEjNyQCAlhCfNgA= NEXT_PRIVATE_SIGNING_PASSPHRASE=novetechlab NEXTAUTH_URL=https://signing.in.com NEXT_PUBLIC_WEBAPP_URL=https://signing.in.com NEXT_PRIVATE_INTERNAL_WEBAPP_URL=http://documenso:3000 NEXT_PRIVATE_DATABASE_URL=postgresql://documenso:changeme@database:5432/documenso NEXT_PRIVATE_DIRECT_DATABASE_URL=postgresql://documenso:changeme@database:5432/documenso NEXT_PRIVATE_SMTP_TRANSPORT=smtp-auth NEXT_PRIVATE_SMTP_HOST=smtp.in.com NEXT_PRIVATE_SMTP_PORT=1030 NEXT_PRIVATE_SMTP_USERNAME=documenso@in.com NEXT_PRIVATE_SMTP_PASSWORD=dummy NEXT_PRIVATE_SMTP_SECURE=false NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS=true NEXT_PRIVATE_SMTP_FROM_NAME=Documenso NEXT_PRIVATE_SMTP_FROM_ADDRESS=documenso@domain.com NEXT_PUBLIC_UPLOAD_TRANSPORT=database NEXT_PRIVATE_UPLOAD_ENDPOINT= NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE= NEXT_PRIVATE_UPLOAD_REGION= NEXT_PRIVATE_UPLOAD_BUCKET= NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID= NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY= POSTGRES_USER=documenso POSTGRES_PASSWORD=changeme POSTGRES_DB=documenso PORT=3038 NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=10485760 NEXT_PUBLIC_DISABLE_SIGNUP= NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH= ``` I use dns server coredns to point `smtp.in.com` to `192.168.1.213` where my mailpit container is ## docker-compose for mailpit ```yaml services: mailpit: image: axllent/mailpit container_name: mailpit restart: unless-stopped volumes: - ./data:/data ports: - 8025:8025 - 1030:1025 - 1110:1110 environment: MP_MAX_MESSAGES: 5000 MP_DATABASE: /data/mailpit.db ``` make sure the port you expose for smtp is open. 😆 🤦‍♂ I spent two hours to figure that out. If your debian or ubuntu ```shell sudo ufw allow 1030 ```
Author
Owner

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

second option

No need to setup dns with this option everything in a single docker-compose

docker-compose

services:
  database:
    image: postgres:15
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER}']
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - database:/var/lib/postgresql/data

  documenso:
    image: documenso/documenso:latest
    depends_on:
      database:
        condition: service_healthy
    environment:
      - NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
      - NEXT_PRIVATE_ENCRYPTION_KEY=${NEXT_PRIVATE_ENCRYPTION_KEY}
      - NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=${NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY}
      - NEXTAUTH_URL=${NEXTAUTH_URL}
      - NEXT_PUBLIC_WEBAPP_URL=${NEXT_PUBLIC_WEBAPP_URL}
      - NEXT_PRIVATE_INTERNAL_WEBAPP_URL=${NEXT_PRIVATE_INTERNAL_WEBAPP_URL}
      - NEXT_PRIVATE_DATABASE_URL=${NEXT_PRIVATE_DATABASE_URL}
      - NEXT_PRIVATE_DIRECT_DATABASE_URL=${NEXT_PRIVATE_DIRECT_DATABASE_URL}
      - NEXT_PUBLIC_UPLOAD_TRANSPORT=${NEXT_PUBLIC_UPLOAD_TRANSPORT}
      - NEXT_PRIVATE_UPLOAD_ENDPOINT=${NEXT_PRIVATE_UPLOAD_ENDPOINT}
      - NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE=${NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE}
      - NEXT_PRIVATE_UPLOAD_REGION=${NEXT_PRIVATE_UPLOAD_REGION}
      - NEXT_PRIVATE_UPLOAD_BUCKET=${NEXT_PRIVATE_UPLOAD_BUCKET}
      - NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID=${NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID}
      - NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY=${NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY}
      - NEXT_PRIVATE_SMTP_TRANSPORT=${NEXT_PRIVATE_SMTP_TRANSPORT}
      - NEXT_PRIVATE_SMTP_HOST=${NEXT_PRIVATE_SMTP_HOST}
      - NEXT_PRIVATE_SMTP_PORT=${NEXT_PRIVATE_SMTP_PORT}
      - NEXT_PRIVATE_SMTP_USERNAME=${NEXT_PRIVATE_SMTP_USERNAME}
      - NEXT_PRIVATE_SMTP_PASSWORD=${NEXT_PRIVATE_SMTP_PASSWORD}
      - NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS=${NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS}
      - NEXT_PRIVATE_SMTP_SECURE=${NEXT_PRIVATE_SMTP_SECURE}
      - NEXT_PRIVATE_SMTP_FROM_NAME=${NEXT_PRIVATE_SMTP_FROM_NAME}
      - NEXT_PRIVATE_SMTP_FROM_ADDRESS=${NEXT_PRIVATE_SMTP_FROM_ADDRESS}
      - NEXT_PRIVATE_SMTP_SERVICE=${NEXT_PRIVATE_SMTP_SERVICE}
      - NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=${NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT}
      - NEXT_PUBLIC_DISABLE_SIGNUP=${NEXT_PUBLIC_DISABLE_SIGNUP}
      - NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=${NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH}
      - NEXT_PRIVATE_SIGNING_PASSPHRASE=${NEXT_PRIVATE_SIGNING_PASSPHRASE}
    ports:
      - ${PORT:-3000}:3000
    volumes:
      - /opt/documenso/cert.p12:/opt/documenso/cert.p12

  mailpit:
    image: axllent/mailpit
    container_name: mailpit
    restart: unless-stopped
    volumes:
      - ./data:/data
    ports:
      - 8025:8025
      - 1030:1025
      - 1110:1110
    environment:
      MP_MAX_MESSAGES: 5000
      MP_DATABASE: /data/mailpit.db
      MP_POP3_AUTH: "john:password-for-email1"

volumes:
  database:

env file

NEXTAUTH_SECRET=EMugJaJ+BKAYgMWJRYRbU8jtvljG89X3W8YhKL2Zcc0=
NEXT_PRIVATE_ENCRYPTION_KEY=EMugJaJ+BKAYgMWJRYRbU8jtvljG89X3W8YhKL2Zcc0=
NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=1SzLQ2NKYcmt3yXGo77KE26mdYjKmEjNyQCAlhCfNgA=
NEXT_PRIVATE_SIGNING_PASSPHRASE=novetechlab
NEXTAUTH_URL=https://signing.in.com
NEXT_PUBLIC_WEBAPP_URL=https://signing.in.com
NEXT_PRIVATE_INTERNAL_WEBAPP_URL=http://documenso:3000
NEXT_PRIVATE_DATABASE_URL=postgresql://documenso:changeme@database:5432/documenso
NEXT_PRIVATE_DIRECT_DATABASE_URL=postgresql://documenso:changeme@database:5432/documenso
NEXT_PRIVATE_SMTP_TRANSPORT=smtp-auth
NEXT_PRIVATE_SMTP_HOST=mailpit
NEXT_PRIVATE_SMTP_PORT=1025
NEXT_PRIVATE_SMTP_USERNAME=documenso@in.com
NEXT_PRIVATE_SMTP_PASSWORD=dummy
NEXT_PRIVATE_SMTP_SECURE=false
NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS=true
NEXT_PRIVATE_SMTP_FROM_NAME=Documenso
NEXT_PRIVATE_SMTP_FROM_ADDRESS=documenso@domain.com
NEXT_PUBLIC_UPLOAD_TRANSPORT=database
NEXT_PRIVATE_UPLOAD_ENDPOINT=
NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE=
NEXT_PRIVATE_UPLOAD_REGION=
NEXT_PRIVATE_UPLOAD_BUCKET=
NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID=
NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY=
POSTGRES_USER=documenso
POSTGRES_PASSWORD=changeme
POSTGRES_DB=documenso
PORT=3038
NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=10485760
NEXT_PUBLIC_DISABLE_SIGNUP=
NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=
<!-- gh-comment-id:2833163953 --> @Novapixel1010 commented on GitHub (Apr 27, 2025): # second option No need to setup dns with this option everything in a single docker-compose ## docker-compose ```yaml services: database: image: postgres:15 environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} healthcheck: test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER}'] interval: 10s timeout: 5s retries: 5 volumes: - database:/var/lib/postgresql/data documenso: image: documenso/documenso:latest depends_on: database: condition: service_healthy environment: - NEXTAUTH_SECRET=${NEXTAUTH_SECRET} - NEXT_PRIVATE_ENCRYPTION_KEY=${NEXT_PRIVATE_ENCRYPTION_KEY} - NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=${NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY} - NEXTAUTH_URL=${NEXTAUTH_URL} - NEXT_PUBLIC_WEBAPP_URL=${NEXT_PUBLIC_WEBAPP_URL} - NEXT_PRIVATE_INTERNAL_WEBAPP_URL=${NEXT_PRIVATE_INTERNAL_WEBAPP_URL} - NEXT_PRIVATE_DATABASE_URL=${NEXT_PRIVATE_DATABASE_URL} - NEXT_PRIVATE_DIRECT_DATABASE_URL=${NEXT_PRIVATE_DIRECT_DATABASE_URL} - NEXT_PUBLIC_UPLOAD_TRANSPORT=${NEXT_PUBLIC_UPLOAD_TRANSPORT} - NEXT_PRIVATE_UPLOAD_ENDPOINT=${NEXT_PRIVATE_UPLOAD_ENDPOINT} - NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE=${NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE} - NEXT_PRIVATE_UPLOAD_REGION=${NEXT_PRIVATE_UPLOAD_REGION} - NEXT_PRIVATE_UPLOAD_BUCKET=${NEXT_PRIVATE_UPLOAD_BUCKET} - NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID=${NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID} - NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY=${NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY} - NEXT_PRIVATE_SMTP_TRANSPORT=${NEXT_PRIVATE_SMTP_TRANSPORT} - NEXT_PRIVATE_SMTP_HOST=${NEXT_PRIVATE_SMTP_HOST} - NEXT_PRIVATE_SMTP_PORT=${NEXT_PRIVATE_SMTP_PORT} - NEXT_PRIVATE_SMTP_USERNAME=${NEXT_PRIVATE_SMTP_USERNAME} - NEXT_PRIVATE_SMTP_PASSWORD=${NEXT_PRIVATE_SMTP_PASSWORD} - NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS=${NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS} - NEXT_PRIVATE_SMTP_SECURE=${NEXT_PRIVATE_SMTP_SECURE} - NEXT_PRIVATE_SMTP_FROM_NAME=${NEXT_PRIVATE_SMTP_FROM_NAME} - NEXT_PRIVATE_SMTP_FROM_ADDRESS=${NEXT_PRIVATE_SMTP_FROM_ADDRESS} - NEXT_PRIVATE_SMTP_SERVICE=${NEXT_PRIVATE_SMTP_SERVICE} - NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=${NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT} - NEXT_PUBLIC_DISABLE_SIGNUP=${NEXT_PUBLIC_DISABLE_SIGNUP} - NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=${NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH} - NEXT_PRIVATE_SIGNING_PASSPHRASE=${NEXT_PRIVATE_SIGNING_PASSPHRASE} ports: - ${PORT:-3000}:3000 volumes: - /opt/documenso/cert.p12:/opt/documenso/cert.p12 mailpit: image: axllent/mailpit container_name: mailpit restart: unless-stopped volumes: - ./data:/data ports: - 8025:8025 - 1030:1025 - 1110:1110 environment: MP_MAX_MESSAGES: 5000 MP_DATABASE: /data/mailpit.db MP_POP3_AUTH: "john:password-for-email1" volumes: database: ``` ## env file ```env NEXTAUTH_SECRET=EMugJaJ+BKAYgMWJRYRbU8jtvljG89X3W8YhKL2Zcc0= NEXT_PRIVATE_ENCRYPTION_KEY=EMugJaJ+BKAYgMWJRYRbU8jtvljG89X3W8YhKL2Zcc0= NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=1SzLQ2NKYcmt3yXGo77KE26mdYjKmEjNyQCAlhCfNgA= NEXT_PRIVATE_SIGNING_PASSPHRASE=novetechlab NEXTAUTH_URL=https://signing.in.com NEXT_PUBLIC_WEBAPP_URL=https://signing.in.com NEXT_PRIVATE_INTERNAL_WEBAPP_URL=http://documenso:3000 NEXT_PRIVATE_DATABASE_URL=postgresql://documenso:changeme@database:5432/documenso NEXT_PRIVATE_DIRECT_DATABASE_URL=postgresql://documenso:changeme@database:5432/documenso NEXT_PRIVATE_SMTP_TRANSPORT=smtp-auth NEXT_PRIVATE_SMTP_HOST=mailpit NEXT_PRIVATE_SMTP_PORT=1025 NEXT_PRIVATE_SMTP_USERNAME=documenso@in.com NEXT_PRIVATE_SMTP_PASSWORD=dummy NEXT_PRIVATE_SMTP_SECURE=false NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS=true NEXT_PRIVATE_SMTP_FROM_NAME=Documenso NEXT_PRIVATE_SMTP_FROM_ADDRESS=documenso@domain.com NEXT_PUBLIC_UPLOAD_TRANSPORT=database NEXT_PRIVATE_UPLOAD_ENDPOINT= NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE= NEXT_PRIVATE_UPLOAD_REGION= NEXT_PRIVATE_UPLOAD_BUCKET= NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID= NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY= POSTGRES_USER=documenso POSTGRES_PASSWORD=changeme POSTGRES_DB=documenso PORT=3038 NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=10485760 NEXT_PUBLIC_DISABLE_SIGNUP= NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH= ```
Author
Owner

@mngsgoncalves commented on GitHub (Jul 3, 2025):

I'm having problems with this as well. Had to set the account manually as verified in the database.

Password recover e-mail works just fine.

<!-- gh-comment-id:3032393434 --> @mngsgoncalves commented on GitHub (Jul 3, 2025): I'm having problems with this as well. Had to set the account manually as verified in the database. Password recover e-mail works just fine.
Author
Owner

@NDCallahan commented on GitHub (Jul 29, 2025):

Update: I removed all the " and ' in the yaml configuration file, and now it works!

also don't work for me :(

Me either.

<!-- gh-comment-id:3133354543 --> @NDCallahan commented on GitHub (Jul 29, 2025): > > Update: I removed all the `"` and `'` in the yaml configuration file, and now it works! > > also don't work for me :( Me either.
Author
Owner

@crazyyzarc commented on GitHub (Jul 30, 2025):

Update: I removed all the " and ' in the yaml configuration file, and now it works!

also don't work for me :(

Me either.

@NDCallahan @mngsgoncalves do you see my configuration? https://github.com/documenso/documenso/issues/1661#issuecomment-2728595324

<!-- gh-comment-id:3135348979 --> @crazyyzarc commented on GitHub (Jul 30, 2025): > > > Update: I removed all the `"` and `'` in the yaml configuration file, and now it works! > > > > > > also don't work for me :( > > Me either. @NDCallahan @mngsgoncalves do you see my configuration? https://github.com/documenso/documenso/issues/1661#issuecomment-2728595324
Author
Owner

@NDCallahan commented on GitHub (Jul 30, 2025):

Update: I removed all the " and ' in the yaml configuration file, and now it works!

also don't work for me :(

Me either.

@NDCallahan @mngsgoncalves do you see my configuration? #1661 (comment)

Totally missed this one. Adding this worked for me.

<!-- gh-comment-id:3137234064 --> @NDCallahan commented on GitHub (Jul 30, 2025): > > > > Update: I removed all the `"` and `'` in the yaml configuration file, and now it works! > > > > > > > > > also don't work for me :( > > > > > > Me either. > > [@NDCallahan](https://github.com/NDCallahan) [@mngsgoncalves](https://github.com/mngsgoncalves) do you see my configuration? [#1661 (comment)](https://github.com/documenso/documenso/issues/1661#issuecomment-2728595324) Totally missed this one. Adding this worked for me.
Author
Owner

@mondsen commented on GitHub (Feb 8, 2026):

I finally found out. First of all: I use a nginx reverse proxy. It is important that the internal URLs parameter¹ go to the internal URL (Port 3000) and the public URL² goes to the reverse proxy (443 or whatelse).

¹ NEXT_PRIVATE_INTERNAL_WEBAPP_URL + NEXT_AUTH_URL ² NEXT_PUBLIC_WEBAPP_URL

I just want to let everybody with my setup know, that this also worked for me with Caddy as reverse proxy.
I've tried a lot before, but nothing worked. Then I assigned dedicated container names to the docker containers of documenso (documenso-db and documenso-app) and use only "documenso-app" in the internal URLs and only the public facing FQDN in the NEXT_PUBLIC_WEBAPP_URL.

Very grateful for this.

<!-- gh-comment-id:3866790434 --> @mondsen commented on GitHub (Feb 8, 2026): > I finally found out. First of all: I use a nginx reverse proxy. It is important that the internal URLs parameter¹ go to the internal URL (Port 3000) and the public URL² goes to the reverse proxy (443 or whatelse). > > ¹ NEXT_PRIVATE_INTERNAL_WEBAPP_URL + NEXT_AUTH_URL ² NEXT_PUBLIC_WEBAPP_URL I just want to let everybody with my setup know, that this also worked for me with Caddy as reverse proxy. I've tried a lot before, but nothing worked. Then I assigned dedicated container names to the docker containers of documenso (documenso-db and documenso-app) and use only "documenso-app" in the internal URLs and only the public facing FQDN in the NEXT_PUBLIC_WEBAPP_URL. Very grateful for this.
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#471
No description provided.