Dokploy

Letterfeed

Convert email newsletters into RSS feeds

Letterfeed logo

Configuration

version: "3.9"

services:
  backend:
    image: ghcr.io/leonmuscoden/letterfeed-backend:latest
    restart: unless-stopped
    environment:
      LETTERFEED_APP_BASE_URL: ${LETTERFEED_APP_BASE_URL}
      LETTERFEED_BACKEND_URL: ${LETTERFEED_BACKEND_URL}
      LETTERFEED_DATABASE_URL: ${LETTERFEED_DATABASE_URL}
      LETTERFEED_IMAP_SERVER: ${LETTERFEED_IMAP_SERVER}
      LETTERFEED_IMAP_USERNAME: ${LETTERFEED_IMAP_USERNAME}
      LETTERFEED_IMAP_PASSWORD: ${LETTERFEED_IMAP_PASSWORD}
      LETTERFEED_SEARCH_FOLDER: ${LETTERFEED_SEARCH_FOLDER}
      LETTERFEED_MOVE_TO_FOLDER: ${LETTERFEED_MOVE_TO_FOLDER}
      LETTERFEED_MARK_AS_READ: ${LETTERFEED_MARK_AS_READ}
      LETTERFEED_EMAIL_CHECK_INTERVAL: ${LETTERFEED_EMAIL_CHECK_INTERVAL}
      LETTERFEED_AUTO_ADD_NEW_SENDERS: ${LETTERFEED_AUTO_ADD_NEW_SENDERS}
      LETTERFEED_SECRET_KEY: ${LETTERFEED_SECRET_KEY}
      LETTERFEED_AUTH_USERNAME: ${LETTERFEED_AUTH_USERNAME}
      LETTERFEED_AUTH_PASSWORD: ${LETTERFEED_AUTH_PASSWORD}
    volumes:
      - letterfeed_data:/data

  frontend:
    image: ghcr.io/leonmuscoden/letterfeed-frontend:latest
    restart: unless-stopped
    environment:
      LETTERFEED_APP_BASE_URL: ${LETTERFEED_APP_BASE_URL}
      LETTERFEED_BACKEND_URL: ${LETTERFEED_BACKEND_URL}
    expose:
      - 3000
    depends_on:
      - backend

volumes:
  letterfeed_data:
[variables]
main_domain = "${domain}"
secret_key = "${password:64}"
auth_password = "${password:32}"

[config]

[[config.domains]]
serviceName = "frontend"
port = 3000
host = "${main_domain}"

[config.env]
LETTERFEED_APP_BASE_URL = "https://${main_domain}"
LETTERFEED_BACKEND_URL = "http://backend:8000"
LETTERFEED_DATABASE_URL = "sqlite:////data/letterfeed.db"

LETTERFEED_IMAP_SERVER = ""
LETTERFEED_IMAP_USERNAME = ""
LETTERFEED_IMAP_PASSWORD = ""

LETTERFEED_SEARCH_FOLDER = "INBOX"
LETTERFEED_MOVE_TO_FOLDER = ""
LETTERFEED_MARK_AS_READ = "true"
LETTERFEED_EMAIL_CHECK_INTERVAL = "15"
LETTERFEED_AUTO_ADD_NEW_SENDERS = "false"

LETTERFEED_SECRET_KEY = "${secret_key}"
LETTERFEED_AUTH_USERNAME = "admin"
LETTERFEED_AUTH_PASSWORD = "${auth_password}"

[[config.mounts]]
name = "letterfeed_data"
mountPath = "/data"

Base64

To import this template in Dokploy: create a Compose service → AdvancedBase64 import and paste the content below:

ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy45XCJcblxuc2VydmljZXM6XG4gIGJhY2tlbmQ6XG4gICAgaW1hZ2U6IGdoY3IuaW8vbGVvbm11c2NvZGVuL2xldHRlcmZlZWQtYmFja2VuZDpsYXRlc3RcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgTEVUVEVSRkVFRF9BUFBfQkFTRV9VUkw6ICR7TEVUVEVSRkVFRF9BUFBfQkFTRV9VUkx9XG4gICAgICBMRVRURVJGRUVEX0JBQ0tFTkRfVVJMOiAke0xFVFRFUkZFRURfQkFDS0VORF9VUkx9XG4gICAgICBMRVRURVJGRUVEX0RBVEFCQVNFX1VSTDogJHtMRVRURVJGRUVEX0RBVEFCQVNFX1VSTH1cbiAgICAgIExFVFRFUkZFRURfSU1BUF9TRVJWRVI6ICR7TEVUVEVSRkVFRF9JTUFQX1NFUlZFUn1cbiAgICAgIExFVFRFUkZFRURfSU1BUF9VU0VSTkFNRTogJHtMRVRURVJGRUVEX0lNQVBfVVNFUk5BTUV9XG4gICAgICBMRVRURVJGRUVEX0lNQVBfUEFTU1dPUkQ6ICR7TEVUVEVSRkVFRF9JTUFQX1BBU1NXT1JEfVxuICAgICAgTEVUVEVSRkVFRF9TRUFSQ0hfRk9MREVSOiAke0xFVFRFUkZFRURfU0VBUkNIX0ZPTERFUn1cbiAgICAgIExFVFRFUkZFRURfTU9WRV9UT19GT0xERVI6ICR7TEVUVEVSRkVFRF9NT1ZFX1RPX0ZPTERFUn1cbiAgICAgIExFVFRFUkZFRURfTUFSS19BU19SRUFEOiAke0xFVFRFUkZFRURfTUFSS19BU19SRUFEfVxuICAgICAgTEVUVEVSRkVFRF9FTUFJTF9DSEVDS19JTlRFUlZBTDogJHtMRVRURVJGRUVEX0VNQUlMX0NIRUNLX0lOVEVSVkFMfVxuICAgICAgTEVUVEVSRkVFRF9BVVRPX0FERF9ORVdfU0VOREVSUzogJHtMRVRURVJGRUVEX0FVVE9fQUREX05FV19TRU5ERVJTfVxuICAgICAgTEVUVEVSRkVFRF9TRUNSRVRfS0VZOiAke0xFVFRFUkZFRURfU0VDUkVUX0tFWX1cbiAgICAgIExFVFRFUkZFRURfQVVUSF9VU0VSTkFNRTogJHtMRVRURVJGRUVEX0FVVEhfVVNFUk5BTUV9XG4gICAgICBMRVRURVJGRUVEX0FVVEhfUEFTU1dPUkQ6ICR7TEVUVEVSRkVFRF9BVVRIX1BBU1NXT1JEfVxuICAgIHZvbHVtZXM6XG4gICAgICAtIGxldHRlcmZlZWRfZGF0YTovZGF0YVxuXG4gIGZyb250ZW5kOlxuICAgIGltYWdlOiBnaGNyLmlvL2xlb25tdXNjb2Rlbi9sZXR0ZXJmZWVkLWZyb250ZW5kOmxhdGVzdFxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBMRVRURVJGRUVEX0FQUF9CQVNFX1VSTDogJHtMRVRURVJGRUVEX0FQUF9CQVNFX1VSTH1cbiAgICAgIExFVFRFUkZFRURfQkFDS0VORF9VUkw6ICR7TEVUVEVSRkVFRF9CQUNLRU5EX1VSTH1cbiAgICBleHBvc2U6XG4gICAgICAtIDMwMDBcbiAgICBkZXBlbmRzX29uOlxuICAgICAgLSBiYWNrZW5kXG5cbnZvbHVtZXM6XG4gIGxldHRlcmZlZWRfZGF0YTpcbiIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXG5hdXRoX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5cbltjb25maWddXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcImZyb250ZW5kXCJcbnBvcnQgPSAzMDAwXG5ob3N0ID0gXCIke21haW5fZG9tYWlufVwiXG5cbltjb25maWcuZW52XVxuTEVUVEVSRkVFRF9BUFBfQkFTRV9VUkwgPSBcImh0dHBzOi8vJHttYWluX2RvbWFpbn1cIlxuTEVUVEVSRkVFRF9CQUNLRU5EX1VSTCA9IFwiaHR0cDovL2JhY2tlbmQ6ODAwMFwiXG5MRVRURVJGRUVEX0RBVEFCQVNFX1VSTCA9IFwic3FsaXRlOi8vLy9kYXRhL2xldHRlcmZlZWQuZGJcIlxuXG5MRVRURVJGRUVEX0lNQVBfU0VSVkVSID0gXCJcIlxuTEVUVEVSRkVFRF9JTUFQX1VTRVJOQU1FID0gXCJcIlxuTEVUVEVSRkVFRF9JTUFQX1BBU1NXT1JEID0gXCJcIlxuXG5MRVRURVJGRUVEX1NFQVJDSF9GT0xERVIgPSBcIklOQk9YXCJcbkxFVFRFUkZFRURfTU9WRV9UT19GT0xERVIgPSBcIlwiXG5MRVRURVJGRUVEX01BUktfQVNfUkVBRCA9IFwidHJ1ZVwiXG5MRVRURVJGRUVEX0VNQUlMX0NIRUNLX0lOVEVSVkFMID0gXCIxNVwiXG5MRVRURVJGRUVEX0FVVE9fQUREX05FV19TRU5ERVJTID0gXCJmYWxzZVwiXG5cbkxFVFRFUkZFRURfU0VDUkVUX0tFWSA9IFwiJHtzZWNyZXRfa2V5fVwiXG5MRVRURVJGRUVEX0FVVEhfVVNFUk5BTUUgPSBcImFkbWluXCJcbkxFVFRFUkZFRURfQVVUSF9QQVNTV09SRCA9IFwiJHthdXRoX3Bhc3N3b3JkfVwiXG5cbltbY29uZmlnLm1vdW50c11dXG5uYW1lID0gXCJsZXR0ZXJmZWVkX2RhdGFcIlxubW91bnRQYXRoID0gXCIvZGF0YVwiIgp9

Tags

email, self-hosted, productivity


Version: latest

On this page