Letterfeed
Convert email newsletters into RSS feeds
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 → Advanced → Base64 import and paste the content below:
ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy45XCJcblxuc2VydmljZXM6XG4gIGJhY2tlbmQ6XG4gICAgaW1hZ2U6IGdoY3IuaW8vbGVvbm11c2NvZGVuL2xldHRlcmZlZWQtYmFja2VuZDpsYXRlc3RcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgTEVUVEVSRkVFRF9BUFBfQkFTRV9VUkw6ICR7TEVUVEVSRkVFRF9BUFBfQkFTRV9VUkx9XG4gICAgICBMRVRURVJGRUVEX0JBQ0tFTkRfVVJMOiAke0xFVFRFUkZFRURfQkFDS0VORF9VUkx9XG4gICAgICBMRVRURVJGRUVEX0RBVEFCQVNFX1VSTDogJHtMRVRURVJGRUVEX0RBVEFCQVNFX1VSTH1cbiAgICAgIExFVFRFUkZFRURfSU1BUF9TRVJWRVI6ICR7TEVUVEVSRkVFRF9JTUFQX1NFUlZFUn1cbiAgICAgIExFVFRFUkZFRURfSU1BUF9VU0VSTkFNRTogJHtMRVRURVJGRUVEX0lNQVBfVVNFUk5BTUV9XG4gICAgICBMRVRURVJGRUVEX0lNQVBfUEFTU1dPUkQ6ICR7TEVUVEVSRkVFRF9JTUFQX1BBU1NXT1JEfVxuICAgICAgTEVUVEVSRkVFRF9TRUFSQ0hfRk9MREVSOiAke0xFVFRFUkZFRURfU0VBUkNIX0ZPTERFUn1cbiAgICAgIExFVFRFUkZFRURfTU9WRV9UT19GT0xERVI6ICR7TEVUVEVSRkVFRF9NT1ZFX1RPX0ZPTERFUn1cbiAgICAgIExFVFRFUkZFRURfTUFSS19BU19SRUFEOiAke0xFVFRFUkZFRURfTUFSS19BU19SRUFEfVxuICAgICAgTEVUVEVSRkVFRF9FTUFJTF9DSEVDS19JTlRFUlZBTDogJHtMRVRURVJGRUVEX0VNQUlMX0NIRUNLX0lOVEVSVkFMfVxuICAgICAgTEVUVEVSRkVFRF9BVVRPX0FERF9ORVdfU0VOREVSUzogJHtMRVRURVJGRUVEX0FVVE9fQUREX05FV19TRU5ERVJTfVxuICAgICAgTEVUVEVSRkVFRF9TRUNSRVRfS0VZOiAke0xFVFRFUkZFRURfU0VDUkVUX0tFWX1cbiAgICAgIExFVFRFUkZFRURfQVVUSF9VU0VSTkFNRTogJHtMRVRURVJGRUVEX0FVVEhfVVNFUk5BTUV9XG4gICAgICBMRVRURVJGRUVEX0FVVEhfUEFTU1dPUkQ6ICR7TEVUVEVSRkVFRF9BVVRIX1BBU1NXT1JEfVxuICAgIHZvbHVtZXM6XG4gICAgICAtIGxldHRlcmZlZWRfZGF0YTovZGF0YVxuXG4gIGZyb250ZW5kOlxuICAgIGltYWdlOiBnaGNyLmlvL2xlb25tdXNjb2Rlbi9sZXR0ZXJmZWVkLWZyb250ZW5kOmxhdGVzdFxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBMRVRURVJGRUVEX0FQUF9CQVNFX1VSTDogJHtMRVRURVJGRUVEX0FQUF9CQVNFX1VSTH1cbiAgICAgIExFVFRFUkZFRURfQkFDS0VORF9VUkw6ICR7TEVUVEVSRkVFRF9CQUNLRU5EX1VSTH1cbiAgICBleHBvc2U6XG4gICAgICAtIDMwMDBcbiAgICBkZXBlbmRzX29uOlxuICAgICAgLSBiYWNrZW5kXG5cbnZvbHVtZXM6XG4gIGxldHRlcmZlZWRfZGF0YTpcbiIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXG5hdXRoX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5cbltjb25maWddXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcImZyb250ZW5kXCJcbnBvcnQgPSAzMDAwXG5ob3N0ID0gXCIke21haW5fZG9tYWlufVwiXG5cbltjb25maWcuZW52XVxuTEVUVEVSRkVFRF9BUFBfQkFTRV9VUkwgPSBcImh0dHBzOi8vJHttYWluX2RvbWFpbn1cIlxuTEVUVEVSRkVFRF9CQUNLRU5EX1VSTCA9IFwiaHR0cDovL2JhY2tlbmQ6ODAwMFwiXG5MRVRURVJGRUVEX0RBVEFCQVNFX1VSTCA9IFwic3FsaXRlOi8vLy9kYXRhL2xldHRlcmZlZWQuZGJcIlxuXG5MRVRURVJGRUVEX0lNQVBfU0VSVkVSID0gXCJcIlxuTEVUVEVSRkVFRF9JTUFQX1VTRVJOQU1FID0gXCJcIlxuTEVUVEVSRkVFRF9JTUFQX1BBU1NXT1JEID0gXCJcIlxuXG5MRVRURVJGRUVEX1NFQVJDSF9GT0xERVIgPSBcIklOQk9YXCJcbkxFVFRFUkZFRURfTU9WRV9UT19GT0xERVIgPSBcIlwiXG5MRVRURVJGRUVEX01BUktfQVNfUkVBRCA9IFwidHJ1ZVwiXG5MRVRURVJGRUVEX0VNQUlMX0NIRUNLX0lOVEVSVkFMID0gXCIxNVwiXG5MRVRURVJGRUVEX0FVVE9fQUREX05FV19TRU5ERVJTID0gXCJmYWxzZVwiXG5cbkxFVFRFUkZFRURfU0VDUkVUX0tFWSA9IFwiJHtzZWNyZXRfa2V5fVwiXG5MRVRURVJGRUVEX0FVVEhfVVNFUk5BTUUgPSBcImFkbWluXCJcbkxFVFRFUkZFRURfQVVUSF9QQVNTV09SRCA9IFwiJHthdXRoX3Bhc3N3b3JkfVwiXG5cbltbY29uZmlnLm1vdW50c11dXG5uYW1lID0gXCJsZXR0ZXJmZWVkX2RhdGFcIlxubW91bnRQYXRoID0gXCIvZGF0YVwiIgp9Links
Tags
email, self-hosted, productivity
Version: latest