[{"data":1,"prerenderedAt":475},["ShallowReactive",2],{"project-19876710":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":46,"post_text":48,"what":49,"said":88,"maker_in_thread":221,"shape":231,"grid":235,"attempts":436,"same_week":437,"maker_shows":39,"maker_hidden":467,"reader_version":468,"card":469},"19876710","WildDuck","Self-hosted modern email server","title","Show HN: WildDuck – Self-hosted modern email server","https:\u002F\u002Fwildduck.email\u002F","wildduck.email","andris9",1557486677,2019,222,81,170,2195,8,"notable","infrastructure","self-hosted email server","other",[24,25,26,27,28],"self-hosted email","mail server","imap server","smtp server","mongodb","mixed",0.137,{"positive":32,"neutral":33,"mixed":34,"critical":18},11,13,1,33,{"performance":37,"idea":40,"privacy":41,"design":43,"docs":44,"execution":45},{"positive":38,"critical":39},0,3,{"positive":39,"critical":38},{"positive":38,"critical":42},2,{"positive":39,"critical":39},{"positive":38,"critical":38},{"positive":34,"critical":38},[34,34,34,38,39,38,39,38,38,39,34,38,34,47,38,34,39,38,39,38,39,38,34,38,38,47,38,38,47,39,38,38,38,47,47,39,47,39,47,47],5,null,{"problem":50,"audience":48,"pricing":48,"motivation":48,"time_to_build":48,"stack":58,"openness":86,"stage":87,"team_size":87},{"value":51,"source":52,"evidence":53},"Running a self-hosted email server without the complexity of plugging many Unix mail components together","commenter",[54],{"id":55,"by":56,"text":57},"19880241","nicolaslem","Back when I was hosting my emails myself, my main complaint was that it required plugging many pieces together, in a traditional Unix fashion. This was before configuration…",[59,70,79],{"value":60,"source":61,"evidence":62},"Node.js","maker",[63,67],{"id":64,"by":65,"text":66},"19885045","markvdb","> While WildDuck is more secure by definition than most alternatives > ... > You can run WildDuck on any system that supports Node.js, Node.js and more secure by definition? That…",{"id":68,"by":11,"text":69},"19886429","For secure by definition I meant: * written in memory safe language * no special permissions needed (besides binding to privileged ports at start but there are workarounds) so no…",{"value":71,"source":61,"evidence":72},"MongoDB",[73,76],{"id":74,"by":11,"text":75},"19884148","For messages no, for attachments yes. WildDuck parses stored messages and separates attachments from rest of message data. Deduplicated attachments are then stored to MongoDB as…",{"id":77,"by":11,"text":78},"19886490","1. no. WildDuck is built to use MongoDB sharding to be able to easily scale both vertically and horizontally without single point of failures - each component of WildDuck (DB,…",{"value":80,"source":52,"evidence":81},"Redis",[82],{"id":83,"by":84,"text":85},"19881082","js4ever","Wow I was looking for something like that since ages. Best part, it's open source an made with Node.js\u002FRedis, a stack I deeply love :)","open_source","unknown",{"praise":89,"objections":109,"requests":144,"questions":166,"alternatives":185},[90,102],{"value":91,"source":52,"evidence":92},"Modern all-in-one self-hosted email solution fills a long-wanted gap",[93,94,98],{"id":83,"by":84,"text":85},{"id":95,"by":96,"text":97},"19883591","srameshc","Thanks, this is so timely. I was looking for something like this for weeks. All I want is IMAP server which can be managed via IMAP client api.",{"id":99,"by":100,"text":101},"19883835","dead_mall","I feel like self hosted emails is gonna be the next big thing, kinda like the pi-hole trend. This is awesome",{"value":103,"source":52,"evidence":104},"Estonian project, nice GUI",[105],{"id":106,"by":107,"text":108},"19885195","scblzn","Made in Estonia as I see. Congrats ! Very cool project, I really like the GUI part.",[110,118,129],{"value":111,"source":52,"evidence":112},"Node.js is a questionable basis for claimed security",[113,114],{"id":64,"by":65,"text":66},{"id":115,"by":116,"text":117},"19895642","masukomi","v8 may be badass. but the quality of many of the libraries in the node ecosystem is .... questionable at best. Lots of newbs with no clues about security throwing out packages…",{"value":119,"source":52,"evidence":120},"Storing mail binaries in MongoDB questioned versus filesystem",[121,125],{"id":122,"by":123,"text":124},"19885546","Tepix","Always interesting to see new MTAs! I'm not convinced that storing mails (including attachments) in MongoDB is a good solution. What's wrong with the filesystem? It's designed…",{"id":126,"by":127,"text":128},"19885826","mboehm","Well, scaling a filesystem does not really sound easy to me. Scaling a dbms is rather common, I guess. I rather question, why do they store their binaries in mongodb? imho, s3…",{"value":130,"source":52,"evidence":131},"Self-hosted email deliverability is poor from VPS and residential IPs",[132,136,140],{"id":133,"by":134,"text":135},"19883861","55555","I would love to set this up but I've seen too many posts on the front page of HN about how gmail is blocking their incoming mail and they are powerless to do anything about it.",{"id":137,"by":138,"text":139},"19883996","nothrabannosir","> hosting on any of the notable VPS providers (DO, Linode, OVH, etc) has had fine deliverability in my experience, though emails may occasionally get flagged as spam. I can share…",{"id":141,"by":142,"text":143},"19884943","fanpuns","My mail from DO doesn't get rejected, but ends up 100% of the time in spam.",[145,152,159],{"value":146,"source":52,"evidence":147},"JMAP support",[148],{"id":149,"by":150,"text":151},"19881407","toomuchtodo","Is JMAP support planned?",{"value":153,"source":52,"evidence":154},"Catch-all address configuration",[155],{"id":156,"by":157,"text":158},"19885661","Ente","I would love to try this. Is there a way to configure catch-all addresses for domains?",{"value":160,"source":52,"evidence":161},"SQL database support instead of MongoDB",[162],{"id":163,"by":164,"text":165},"19885252","SillyPosition","Nice! I recently migrated my home server from Ubuntu to freebsd and was lazy to migrate my postfix\u002Fdovecot\u002Fsieve\u002Fall-the-other-parts and eventually kept it running in a VM…",[167,174,181],{"value":168,"source":52,"evidence":169},"How spam filtering is handled",[170],{"id":171,"by":172,"text":173},"19883852","mgamache","How do you handle spam filtering for self hosted servers? I know there are black lists for SMTP servers, but I mean the content based filters that are updated based on recent…",{"value":175,"source":52,"evidence":176},"How to send email with the API",[177],{"id":178,"by":179,"text":180},"19881251","amolo","Cool project. Been looking for something like this for ages. But still cant figure out from the docs how to send email.",{"value":182,"source":52,"evidence":183},"Migration from postfix\u002Fdovecot",[184],{"id":163,"by":164,"text":165},[186,193,200,207,214],{"value":187,"source":52,"evidence":188},"Poste.io",[189],{"id":190,"by":191,"text":192},"19881732","efesak","See poste.io, it solves exactly this problem. (I've created poste because I administer multiple smaller mailserevers and thus scratching my own itch)",{"value":194,"source":52,"evidence":195},"Mailu",[196],{"id":197,"by":198,"text":199},"19883621","lifty","mailu.io is an open source alternative to poste.io and bundles a classing email stack in an easy to use package. But it’s still quite complex under the hood. There is also an…",{"value":201,"source":52,"evidence":202},"Mailcow",[203],{"id":204,"by":205,"text":206},"19885322","F_r_k","What's the difference with mailcow (a fully dockerized email solution) ?",{"value":208,"source":52,"evidence":209},"Mail-in-a-Box",[210],{"id":211,"by":212,"text":213},"19884655","gscott","I use https:\u002F\u002Fmailinabox.email\u002F it does pretty much everything for you very easy just host on linode.com.",{"value":215,"source":52,"evidence":216},"Forward Email",[217],{"id":218,"by":219,"text":220},"19884176","niftylettuce","See also https:\u002F\u002Fforwardemail.net. Thank you Andris for making this possible.",{"comments":18,"answered":222,"key":223},7,[224,225,228],{"id":68,"text":69},{"id":226,"text":227},"19898381","Using maildir (the current standard for mail storage) with any kind of remote file system is not the best environment to have. Maildir stores every email into a separate file and…",{"id":229,"text":230},"19881617","No, at least not any time soon. JMAP is a beast that should not have been invented. It tries to convert TCP\u002FIMAP (already a bad protocol by todays standards) into HTTP\u002FJSON, just…",{"commenters":232,"max_depth":222,"maker_replies":18,"first_comment_mins":233,"lifespan_hours":234},56,390,169,[236,238,242,243,245,249,250,252,254,256,259,261,265,268,271,273,275,277,281,285,288,290,293,296,299,302,303,305,307,310,313,316,318,319,323,325,326,328,330,331,334,336,339,343,344,346,347,349,352,355,358,360,364,366,369,372,375,377,378,380,383,386,389,391,394,396,399,402,403,405,407,411,413,415,417,420,422,424,426,430,433],[133,38,34,237,134,38],"project\u002Fcritical\u002Fperformance",[239,38,39,240,241,38],"19883905","project\u002Fneutral\u002Fperformance","StudentStuff",[137,38,34,237,138,38],[244,38,39,240,241,38],"19884323",[246,38,38,247,248,38],"19885737","commenter\u002Fneutral\u002Fnone","h1d",[141,38,34,237,142,38],[251,38,38,247,248,38],"19885739",[253,38,38,247,241,38],"19890866",[255,38,38,247,248,38],"19890925",[257,38,39,240,258,38],"19884069","jasonjayr",[260,38,38,247,241,38],"19884314",[262,38,38,263,264,38],"19885048","other\u002Fneutral\u002Fnone","tambre",[266,38,38,247,267,38],"19885152","richjdsmith",[269,38,39,240,270,38],"19884418","ekianjo",[272,38,38,247,241,38],"19884441",[274,38,38,247,270,38],"19891158",[276,38,38,247,241,38],"19894700",[278,38,38,279,280,38],"19892303","other\u002Fneutral\u002Fperformance","eps",[282,38,39,283,284,38],"19884126","project\u002Fneutral\u002Fidea","grahamburger",[286,38,39,240,287,38],"19905197","sliken",[64,34,34,289,65,38],"project\u002Fcritical\u002Fprivacy",[291,34,38,247,292,38],"19885101","pictur",[294,34,38,247,295,38],"19885133","stingraycharles",[297,34,38,247,298,38],"19885210","vince14",[300,34,38,247,301,38],"19885387","Tankenstein",[115,34,34,289,116,38],[68,34,38,304,11,34],"maker\u002Fneutral\u002Fprivacy",[99,42,47,306,100,38],"project\u002Fpositive\u002Fidea",[308,42,38,263,309,38],"19883877","acidburnNSA",[311,42,38,263,312,38],"19884380","diegoperini",[314,42,38,263,315,38],"19886530","icedchai",[122,39,34,317,123,38],"project\u002Fcritical\u002Fdesign",[126,39,34,317,127,38],[320,39,47,321,322,38],"19886366","project\u002Fpositive\u002Fdesign","nijave",[324,39,38,247,123,38],"19897256",[226,39,38,317,11,34],[327,39,38,247,123,38],"19938835",[55,329,39,283,56,38],4,[190,329,38,263,191,38],[332,329,38,333,280,38],"19886808","other\u002Fpositive\u002Fnone",[197,329,39,335,198,38],"project\u002Fneutral\u002Fnone",[337,329,38,263,338,38],"19883810","jseliger",[340,329,38,341,342,38],"19884573","other\u002Fcritical\u002Fdocs","reaperducer",[211,329,38,263,212,38],[345,329,34,317,248,38],"19885734",[149,47,39,335,150,38],[229,47,38,348,11,34],"maker\u002Fneutral\u002Fidea",[350,47,38,263,351,38],"19882365","papaf",[353,47,38,263,354,38],"19884202","chrismorgan",[356,47,38,263,357,38],"19884426","Aeolun",[359,47,38,263,354,38],"19884504",[361,362,47,321,363,38],"19883661",6,"Felz",[74,362,38,365,11,34],"maker\u002Fneutral\u002Fdesign",[367,222,38,263,368,38],"19884959","konart",[370,222,38,263,371,38],"19885128","elken",[373,222,38,247,374,38],"19885221","zingmars",[376,222,38,263,371,38],"19885496",[106,18,47,321,107,38],[171,379,39,335,172,38],9,[381,379,38,263,382,38],"19883941","geocrasher",[384,379,38,247,385,38],"19885153","indigo945",[387,379,38,263,388,38],"19883984","mark242",[390,379,38,247,172,38],"19884054",[392,379,38,263,393,38],"19885950","stevekemp",[395,379,38,263,248,38],"19885751",[397,379,38,263,398,38],"19885797","dmoo",[163,400,47,401,164,38],10,"project\u002Fpositive\u002Fnone",[77,400,38,365,11,34],[218,32,47,404,219,38],"maker\u002Fpositive\u002Fnone",[83,406,47,306,84,38],12,[408,33,39,409,410,38],"19881433","project\u002Fneutral\u002Fdesign","indigodaddy",[412,33,38,409,11,34],"19881537",[414,33,47,404,410,38],"19884066",[95,416,47,306,96,38],14,[178,418,39,419,179,38],15,"project\u002Fmixed\u002Fdocs",[204,421,39,283,205,38],16,[423,421,38,409,11,34],"19886467",[156,425,47,401,157,38],17,[427,428,39,335,429,38],"19883239",18,"mamon",[431,428,38,432,11,34],"19883785","project\u002Fneutral\u002Fdocs",[434,428,47,435,357,38],"19884430","project\u002Fpositive\u002Fexecution",[],[438,443,447,452,457,462],{"id":439,"name":440,"points":441,"category":442},"19910691","30 Hour Jobs",558,"web_saas",{"id":444,"name":445,"points":446,"category":442},"19883876","benhoyt.com",475,{"id":448,"name":449,"points":450,"category":451},"19886754","Python Machine Learning",350,"learning_science",{"id":453,"name":454,"points":455,"category":456},"19892758","Koonchi",275,"creative",{"id":458,"name":459,"points":460,"category":461},"19888481","GradType",202,"security_privacy",{"id":463,"name":464,"points":465,"category":466},"19904605","Eigengrau's Generator",153,"games",false,"v2",{"id":470,"name":5,"line":6,"ai":467,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":471,"top":18,"kw":472,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":473,"url":9,"mix":474,"praise":91,"objection":111,"sub":21},19876710,0.14,[24,25,26,27,28],"1110303003101501303030100500530005535355",[32,33,34,18],1794036577417]