{"users":[{"id":115923,"username":"Discourse","name":null,"avatar_template":"/user_avatar/meta.discourse.org/discourse/{size}/148734_2.png","admin":true,"trust_level":4},{"id":191411,"username":"Lxk520","name":"Lxk520","avatar_template":"/user_avatar/meta.discourse.org/lxk520/{size}/550353_2.png","trust_level":1},{"id":24426,"username":"enigmaty","name":"","avatar_template":"/user_avatar/meta.discourse.org/enigmaty/{size}/65626_2.png","trust_level":2},{"id":60917,"username":"mesatenista","name":"Edmar Holanda","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/m/5f9b8f/{size}.png","trust_level":1},{"id":84520,"username":"OdysLam","name":"Odysseas Lamtzidis","avatar_template":"/user_avatar/meta.discourse.org/odyslam/{size}/194433_2.png","trust_level":2},{"id":15209,"username":"pfaffman","name":"Jay Pfaffman","avatar_template":"/user_avatar/meta.discourse.org/pfaffman/{size}/120154_2.png","flair_name":"support-experts","flair_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_group_id":142,"trust_level":4},{"id":145010,"username":"Twissell","name":"","avatar_template":"/user_avatar/meta.discourse.org/twissell/{size}/366765_2.png","trust_level":1},{"id":129914,"username":"dlambert","name":"Derek","avatar_template":"/user_avatar/meta.discourse.org/dlambert/{size}/295355_2.png","trust_level":1},{"id":12454,"username":"Richie","name":"Richie Rich","avatar_template":"/user_avatar/meta.discourse.org/richie/{size}/115110_2.png","trust_level":2},{"id":89208,"username":"kynic","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/k/b487fb/{size}.png","trust_level":2},{"id":37716,"username":"Mr.X_Mr.X","name":"","avatar_template":"/user_avatar/meta.discourse.org/mr.x_mr.x/{size}/126610_2.png","trust_level":2},{"id":189531,"username":"jesse_c","name":"Jesse","avatar_template":"/user_avatar/meta.discourse.org/jesse_c/{size}/545099_2.png","trust_level":0},{"id":15019,"username":"5minpause","name":"5minpause","avatar_template":"/user_avatar/meta.discourse.org/5minpause/{size}/116074_2.png","trust_level":1},{"id":75906,"username":"neounix","name":"Dark Matter","avatar_template":"/user_avatar/meta.discourse.org/neounix/{size}/215617_2.png","trust_level":2},{"id":27384,"username":"merefield","name":"Robert","avatar_template":"/user_avatar/meta.discourse.org/merefield/{size}/176214_2.png","trust_level":3},{"id":35474,"username":"Canapin","name":"Coin-coin le Canapin","avatar_template":"/user_avatar/meta.discourse.org/canapin/{size}/119591_2.png","trust_level":3},{"id":2377,"username":"mcdanlj","name":"Michael K Johnson","avatar_template":"/user_avatar/meta.discourse.org/mcdanlj/{size}/131829_2.png","trust_level":2},{"id":7720,"username":"rahim123","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/r/df705f/{size}.png","trust_level":2},{"id":63143,"username":"Ed_S","name":"Ed S","avatar_template":"/user_avatar/meta.discourse.org/ed_s/{size}/134015_2.png","trust_level":3},{"id":13375,"username":"markersocial","name":"","avatar_template":"/user_avatar/meta.discourse.org/markersocial/{size}/170136_2.png","trust_level":2},{"id":16697,"username":"mpalmer","name":"Matt Palmer","avatar_template":"/user_avatar/meta.discourse.org/mpalmer/{size}/45740_2.png","trust_level":2},{"id":108275,"username":"markcoley","name":"Mark Coley","avatar_template":"/user_avatar/meta.discourse.org/markcoley/{size}/242366_2.png","trust_level":1},{"id":109684,"username":"f1r4s","name":"Eddie","avatar_template":"/user_avatar/meta.discourse.org/f1r4s/{size}/245347_2.png","trust_level":2},{"id":32726,"username":"gwmngilfen","name":"Greg","avatar_template":"/user_avatar/meta.discourse.org/gwmngilfen/{size}/302925_2.png","trust_level":2},{"id":8722,"username":"Falco","name":"Falco","avatar_template":"/user_avatar/meta.discourse.org/falco/{size}/179432_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":4},{"id":109156,"username":"Stigin","name":"Stigin","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/s/49beb7/{size}.png","trust_level":1},{"id":16290,"username":"bekircem","name":"","avatar_template":"/user_avatar/meta.discourse.org/bekircem/{size}/44582_2.png","trust_level":2},{"id":117867,"username":"Fabrice","name":"","avatar_template":"/user_avatar/meta.discourse.org/fabrice/{size}/265087_2.png","trust_level":2},{"id":129813,"username":"shyguy","name":"","avatar_template":"/user_avatar/meta.discourse.org/shyguy/{size}/295079_2.png","trust_level":2},{"id":15568,"username":"fefrei","name":"Felix Freiberger","avatar_template":"/user_avatar/meta.discourse.org/fefrei/{size}/119538_2.png","trust_level":2},{"id":24453,"username":"ewanly","name":"EW 👌","avatar_template":"/user_avatar/meta.discourse.org/ewanly/{size}/62854_2.png","trust_level":2},{"id":32,"username":"codinghorror","name":"Jeff Atwood","avatar_template":"/user_avatar/meta.discourse.org/codinghorror/{size}/110067_2.png","admin":true,"trust_level":2},{"id":17621,"username":"jomaxro","name":"Joshua Rosenfeld","avatar_template":"/user_avatar/meta.discourse.org/jomaxro/{size}/126216_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":15291,"username":"philh","name":"","avatar_template":"/user_avatar/meta.discourse.org/philh/{size}/532740_2.png","trust_level":2},{"id":135057,"username":"fokx","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/f/958977/{size}.png","trust_level":2},{"id":135392,"username":"NateDhaliwal","name":"Nate Dhaliwal","avatar_template":"/user_avatar/meta.discourse.org/natedhaliwal/{size}/313494_2.png","flair_name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111","flair_group_id":73,"trust_level":3},{"id":182632,"username":"dodger","name":"dodger","avatar_template":"/user_avatar/meta.discourse.org/dodger/{size}/522280_2.png","trust_level":1},{"id":182437,"username":"lion","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/l/57b2e6/{size}.png","trust_level":1},{"id":27495,"username":"thaidb","name":"thaidb","avatar_template":"/user_avatar/meta.discourse.org/thaidb/{size}/68488_2.png","trust_level":2},{"id":4457,"username":"Lee_Ars","name":"Lee_Ars","avatar_template":"/user_avatar/meta.discourse.org/lee_ars/{size}/1597_2.png","trust_level":2},{"id":10365,"username":"brahn","name":"Brahn","avatar_template":"/user_avatar/meta.discourse.org/brahn/{size}/109267_2.png","trust_level":2},{"id":141713,"username":"jayme","name":"Jayme ","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/j/b38774/{size}.png","trust_level":2},{"id":57788,"username":"nathank","name":"Nathan Kershaw","avatar_template":"/user_avatar/meta.discourse.org/nathank/{size}/290039_2.png","flair_name":"support-advocates","flair_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/e/4/e4038d4d9848de2eabab38e17b8bdb69da154024.svg","flair_bg_color":"FFFFFF","flair_group_id":148,"trust_level":4},{"id":183536,"username":"DevTeVe","name":"DevTek Ve","avatar_template":"/user_avatar/meta.discourse.org/devteve/{size}/487601_2.png","trust_level":3},{"id":72263,"username":"denvergeeks","name":"","avatar_template":"/user_avatar/meta.discourse.org/denvergeeks/{size}/327671_2.png","trust_level":2},{"id":82960,"username":"manuel","name":"Manuel Kostka","avatar_template":"/user_avatar/meta.discourse.org/manuel/{size}/468169_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":171937,"username":"alltiagocom","name":"Tiago","avatar_template":"/user_avatar/meta.discourse.org/alltiagocom/{size}/492709_2.png","trust_level":2},{"id":184333,"username":"Jhustle","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/j/a88e4f/{size}.png","trust_level":0},{"id":28775,"username":"chrisc","name":"Chris Croome","avatar_template":"/user_avatar/meta.discourse.org/chrisc/{size}/119982_2.png","trust_level":2},{"id":109932,"username":"bar10dr","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/b/b38774/{size}.png","trust_level":2},{"id":118140,"username":"zengyunsi","name":"运思 曾","avatar_template":"/user_avatar/meta.discourse.org/zengyunsi/{size}/265722_2.png","trust_level":1},{"id":119102,"username":"Lhc_fl","name":"Linca","avatar_template":"/user_avatar/meta.discourse.org/lhc_fl/{size}/268115_2.png","trust_level":2},{"id":113402,"username":"go_ahead","name":"go ahead","avatar_template":"/user_avatar/meta.discourse.org/go_ahead/{size}/254371_2.png","trust_level":2},{"id":79292,"username":"honeymoose","name":"HoneyMoose","avatar_template":"/user_avatar/meta.discourse.org/honeymoose/{size}/198718_2.png","trust_level":2},{"id":183069,"username":"J_admin","name":"","avatar_template":"/user_avatar/meta.discourse.org/j_admin/{size}/523343_2.png","trust_level":1},{"id":147473,"username":"hel_Sinki","name":"hel Sinki","avatar_template":"/user_avatar/meta.discourse.org/hel_sinki/{size}/525916_2.png","trust_level":2},{"id":406,"username":"RGJ","name":"Richard - Communiteq","avatar_template":"/user_avatar/meta.discourse.org/rgj/{size}/523185_2.png","flair_name":"support-experts","flair_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_group_id":142,"trust_level":4},{"id":44918,"username":"Mine_Zcash","name":"Mine Zcash","avatar_template":"/user_avatar/meta.discourse.org/mine_zcash/{size}/110575_2.png","trust_level":2},{"id":13093,"username":"pacharanero","name":"Marcus Baw","avatar_template":"/user_avatar/meta.discourse.org/pacharanero/{size}/500583_2.png","trust_level":4},{"id":20762,"username":"SystemZ","name":"Michał Frąckiewicz","avatar_template":"/user_avatar/meta.discourse.org/systemz/{size}/88354_2.png","trust_level":2},{"id":28866,"username":"schungx","name":"Stephen Chung","avatar_template":"/user_avatar/meta.discourse.org/schungx/{size}/70989_2.png","trust_level":2},{"id":40904,"username":"Asher_Densmore-Lynn","name":"Asher Densmore Lynn","avatar_template":"/user_avatar/meta.discourse.org/asher_densmore-lynn/{size}/244555_2.png","trust_level":1},{"id":28100,"username":"icculus","name":"Ryan C. Gordon","avatar_template":"/user_avatar/meta.discourse.org/icculus/{size}/120985_2.png","trust_level":1},{"id":34393,"username":"marcozambi","name":"Marco","avatar_template":"/user_avatar/meta.discourse.org/marcozambi/{size}/119505_2.png","trust_level":2},{"id":70136,"username":"TheEngineer","name":"Adam","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/t/48db29/{size}.png","trust_level":2},{"id":68171,"username":"Paracelsus","name":"","avatar_template":"/user_avatar/meta.discourse.org/paracelsus/{size}/164912_2.png","trust_level":2},{"id":27754,"username":"Zup","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/z/c37758/{size}.png","trust_level":2},{"id":1939,"username":"evert","name":"Evert Meulie","avatar_template":"/user_avatar/meta.discourse.org/evert/{size}/300908_2.png","trust_level":2},{"id":43643,"username":"anon48433008","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/a/22d042/{size}.png","trust_level":2},{"id":174478,"username":"b89k57w62","name":"Wu Hao Sheng","avatar_template":"/user_avatar/meta.discourse.org/b89k57w62/{size}/514827_2.png","trust_level":1},{"id":138497,"username":"ToddZ","name":"","avatar_template":"/user_avatar/meta.discourse.org/toddz/{size}/328350_2.png","trust_level":4},{"id":114728,"username":"darkpixlz","name":"Pyx ","avatar_template":"/user_avatar/meta.discourse.org/darkpixlz/{size}/549896_2.png","flair_name":"support-enthusiasts","flair_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/1/3/13f5d8d7e56be8a6a1ea3de009b985a548aec8d4.svg","flair_bg_color":"FFFFFF","flair_group_id":151,"trust_level":4},{"id":108265,"username":"pangbo","name":"","avatar_template":"/user_avatar/meta.discourse.org/pangbo/{size}/538562_2.png","trust_level":2},{"id":117510,"username":"Chan_Patrick","name":"Chan Patrick","avatar_template":"/user_avatar/meta.discourse.org/chan_patrick/{size}/264297_2.png","trust_level":2},{"id":177590,"username":"Yuuki_Mizukami","name":"Yuuki Mizukami","avatar_template":"/user_avatar/meta.discourse.org/yuuki_mizukami/{size}/507644_2.png","trust_level":2},{"id":18423,"username":"Frez","name":"FOSS dev/hacker","avatar_template":"/user_avatar/meta.discourse.org/frez/{size}/49215_2.png","trust_level":2},{"id":87440,"username":"Sifaan","name":"Sifaan Zavahir","avatar_template":"/user_avatar/meta.discourse.org/sifaan/{size}/201543_2.png","trust_level":1},{"id":21969,"username":"jimkleiber","name":"Jim Kleiber","avatar_template":"/user_avatar/meta.discourse.org/jimkleiber/{size}/121814_2.png","trust_level":2},{"id":128374,"username":"ProjeDEV","name":"Proje DEV","avatar_template":"/user_avatar/meta.discourse.org/projedev/{size}/294219_2.png","trust_level":2}],"primary_groups":[{"id":47,"name":"team"}],"flair_groups":[{"id":142,"name":"support-experts","flair_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_color":""},{"id":47,"name":"team","flair_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_bg_color":"","flair_color":"111"},{"id":73,"name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111"},{"id":148,"name":"support-advocates","flair_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/e/4/e4038d4d9848de2eabab38e17b8bdb69da154024.svg","flair_bg_color":"FFFFFF","flair_color":""},{"id":151,"name":"support-enthusiasts","flair_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/1/3/13f5d8d7e56be8a6a1ea3de009b985a548aec8d4.svg","flair_bg_color":"FFFFFF","flair_color":""}],"topic_list":{"can_create_topic":false,"more_topics_url":"/c/wiki/sysadmins/180?page=1","per_page":30,"top_tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":297,"name":"chinese-translation","slug":"chinese-translation"},{"id":824,"name":"install","slug":"install"},{"id":481,"name":"advanced-setup","slug":"advanced-setup"},{"id":24,"name":"docker","slug":"docker"},{"id":65,"name":"migrations","slug":"migrations"},{"id":39,"name":"email","slug":"email"},{"id":55,"name":"backups","slug":"backups"},{"id":479,"name":"explanation","slug":"explanation"},{"id":482,"name":"reference","slug":"reference"},{"id":825,"name":"domains","slug":"domains"},{"id":72,"name":"s3","slug":"s3"},{"id":5,"name":"unsupported-install","slug":"unsupported-install"},{"id":46,"name":"cdn","slug":"cdn"},{"id":827,"name":"cloudflare","slug":"cloudflare"},{"id":826,"name":"google-cloud","slug":"google-cloud"},{"id":764,"name":"maxmind","slug":"maxmind"},{"id":466,"name":"rails-console","slug":"rails-console"},{"id":830,"name":"spam","slug":"spam"},{"id":543,"name":"ai","slug":"ai"},{"id":318,"name":"arm","slug":"arm"},{"id":271,"name":"configuring","slug":"configuring"},{"id":522,"name":"featured-link","slug":"featured-link"},{"id":709,"name":"letsencrypt","slug":"letsencrypt"},{"id":739,"name":"raspberry-pi","slug":"raspberry-pi"},{"id":492,"name":"two-container","slug":"two-container"},{"id":511,"name":"watched-words","slug":"watched-words"},{"id":66,"name":"wordpress","slug":"wordpress"},{"id":252,"name":"wp-discourse","slug":"wp-discourse"}],"topics":[{"fancy_title":"Sysadmins Index","fancy_title_localized":false,"locale":"en","id":322725,"title":"Sysadmins Index","slug":"sysadmins-index","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-08-21T14:22:24.409Z","last_posted_at":"2024-08-21T14:22:24.487Z","bumped":true,"bumped_at":"2024-08-22T03:18:30.727Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"Migrating to Discourse\n\nSMF2: Migrate an SMF2 forum to Discourse\nVanilla: Migrate a Vanilla forum to Discourse\nPunBB: Migrate a PunBB forum to Discourse\nKunena 3: Migrate a Kunena 3 forum to Discourse\nPhorum: Migrate a P&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":205,"like_count":8,"has_summary":false,"last_poster_username":"Discourse","category_id":180,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse migration and installation guides, including tutorials for various platforms and troubleshooting common issues, such as errors, email problems, and configuration changes.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Any random subdomain redirects to www","fancy_title_localized":true,"locale":"zh_CN","id":400584,"title":"任何随机子域名重定向到www","slug":"www","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-14T06:58:50.366Z","last_posted_at":"2026-04-14T06:58:50.572Z","bumped":true,"bumped_at":"2026-04-14T06:58:50.572Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Redirect Random Subdomains to www\n\nObtain an Alibaba Cloud AccessKey (using Alibaba Cloud as an example; apply for your own key).\n\nAccessKey ID: LTAI5tQCfDcVcghn5\nAccessKey Secret: J8ZayXB44MIWa1Mfnj\n\n\nInstall acme.sh\n\ncd ~\ncurl https://get.acme.sh | sh\n\n\nSwitch the default CA to Let's Encrypt, then reapply for the certificate:\n\n# Switch the default CA to Let's ...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":18,"like_count":0,"has_summary":false,"last_poster_username":"Lxk520","category_id":180,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user provides a step-by-step guide to configure wildcard SSL certificates via acme.sh and set up Nginx rules to redirect any random subdomain to the www version of a Discourse site.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":191411,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"@ Top-level domain redirects to www","fancy_title_localized":true,"locale":"zh_CN","id":400583,"title":"@顶级域名重定向到www","slug":"www","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-14T06:50:44.835Z","last_posted_at":"2026-04-14T06:50:45.092Z","bumped":true,"bumped_at":"2026-04-14T06:50:45.092Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Use sudo to temporarily elevate privileges and edit app.yml\n\nsudo nano /var/discourse/containers/app.yml\n\n\nEdit the Discourse configuration file app.yml\n\nYou only need to configure settings in the Discourse configuration file app.yml to define the primary domain and alias relationships:\nDISCOURSE_HOSTNAME: 'www.discourse.cc'      # Your primary domain (final access address)\nDISCOURSE...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":13,"like_count":0,"has_summary":false,"last_poster_username":"Lxk520","category_id":180,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"To redirect a top-level domain to www, users must edit the Discourse app.yml file to set the primary hostname and aliases, then rebuild the application with root privileges.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":191411,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Migrate a NodeBB forum with MongoDB to Discourse","fancy_title_localized":false,"locale":"en","id":126553,"title":"Migrate a NodeBB forum with MongoDB to Discourse","slug":"migrate-a-nodebb-forum-with-mongodb-to-discourse","posts_count":19,"reply_count":11,"highest_post_number":23,"image_url":null,"created_at":"2019-08-22T17:33:06.337Z","last_posted_at":"2026-03-08T14:39:08.041Z","bumped":true,"bumped_at":"2026-03-08T14:39:08.041Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"As you properly know, NodeBB supports two DB backends, Redis and MongoDB. Discourse importer script supports them both. In this tutorial, we will learn how to migrate NodeBB with MongoDB as DB backend. We will be using N&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":5850,"like_count":29,"has_summary":false,"last_poster_username":"Twissell","category_id":180,"op_like_count":10,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user resolved a NodeBB to Discourse migration error by modifying the import script to handle missing posts and sort data chronologically, with community members suggesting added logging for better debugging.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":24426,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":60917,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":84520,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":"latest","description":"Most Recent Poster","user_id":145010,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Configuring AWS SES for outgoing, bounce, and incoming email","fancy_title_localized":false,"locale":"en","id":263604,"title":"Configuring AWS SES for outgoing, bounce, and incoming email","slug":"configuring-aws-ses-for-outgoing-bounce-and-incoming-email","posts_count":13,"reply_count":3,"highest_post_number":13,"image_url":null,"created_at":"2023-05-02T22:18:25.324Z","last_posted_at":"2026-02-26T03:11:21.833Z","bumped":true,"bumped_at":"2026-02-26T03:11:21.833Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I thought I’d share the configuration I came up with to use AWS SES for outgoing, bounce, and incoming email. There’s definitely some nuance to the SES service, and it took a good deal of trial and error to understand ex&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":39,"name":"email","slug":"email"},{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":2871,"like_count":13,"has_summary":false,"last_poster_username":"jesse_c","category_id":180,"op_like_count":9,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users successfully implemented AWS SES for Discourse using Lambda, with one confirming compatibility with Python 3.14 and sharing updated layer build commands for deployment.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":129914,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":12454,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":89208,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":37716,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":189531,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Move from standalone container to separate web and data containers","fancy_title_localized":false,"locale":"en","id":29413,"title":"Move from standalone container to separate web and data containers","slug":"move-from-standalone-container-to-separate-web-and-data-containers","posts_count":139,"reply_count":116,"highest_post_number":148,"image_url":null,"created_at":"2015-05-29T14:12:22.726Z","last_posted_at":"2026-02-24T00:32:38.549Z","bumped":true,"bumped_at":"2026-02-24T00:32:38.549Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":warning: This is an advanced setup. Don’t follow this unless you are experienced with Linux server administration and Docker. You also need to pay close attention to commits to discourse_docker to make sure you notice &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":24,"name":"docker","slug":"docker"},{"id":492,"name":"two-container","slug":"two-container"},{"id":481,"name":"advanced-setup","slug":"advanced-setup"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":25878,"like_count":254,"has_summary":true,"last_poster_username":"Canapin","category_id":180,"op_like_count":43,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The discussion centers on the removal of the --two-container option from the discourse-install script, sparking debate over reduced convenience for advanced users, concerns about support burden, and perceived unequal treatment between paid and self-hosting users, while acknowledging that two-container setups remain technically supported.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":15019,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":75906,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":27384,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":35474,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"MKJ&rsquo;s Opinionated Discourse Deployment Configuration","fancy_title_localized":false,"locale":"en","id":193355,"title":"MKJ's Opinionated Discourse Deployment Configuration","slug":"mkjs-opinionated-discourse-deployment-configuration","posts_count":40,"reply_count":28,"highest_post_number":40,"image_url":null,"created_at":"2021-06-09T23:34:00.917Z","last_posted_at":"2026-02-16T19:56:58.881Z","bumped":true,"bumped_at":"2026-02-16T19:56:58.881Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I have been running a Discourse forum with a substantial amount of content and plenty of images over the past few years. Maker Forums has over 100GB of images and over 400,000 posts, of which a substantial amount was imp&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":479,"name":"explanation","slug":"explanation"},{"id":824,"name":"install","slug":"install"}],"tags_descriptions":{},"views":7032,"like_count":108,"has_summary":false,"last_poster_username":"mcdanlj","category_id":180,"op_like_count":54,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users are troubleshooting Transparent Huge Pages (THP) configuration on Linux systems for Discourse, confirming that sysctl settings may not persist without proper priority or overrides, despite no apparent conflicting files.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2377,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":7720,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":63143,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13375,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Customize direct-delivery Postfix configuration","fancy_title_localized":false,"locale":"en","id":118759,"title":"Customize direct-delivery Postfix configuration","slug":"customize-direct-delivery-postfix-configuration","posts_count":20,"reply_count":8,"highest_post_number":20,"image_url":null,"created_at":"2019-05-27T04:32:28.414Z","last_posted_at":"2026-02-14T23:28:15.998Z","bumped":true,"bumped_at":"2026-02-14T23:28:15.998Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"If you have a mail receiver container which requires customised Postfix configuration, this is the topic for you.  Herein are described the steps required to set Postfix main.cf configuration variables to whatever your h&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":481,"name":"advanced-setup","slug":"advanced-setup"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":5013,"like_count":20,"has_summary":false,"last_poster_username":"gwmngilfen","category_id":180,"op_like_count":10,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user asks if the mail-receiver container can support multiple domains for incoming mail and Let's Encrypt certificates, seeking clarification on configuration flexibility beyond the default setup.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":16697,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":108275,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":109684,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":"latest","description":"Most Recent Poster","user_id":32726,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Install Discourse on a residential internet with Cloudflare Tunnel","fancy_title_localized":false,"locale":"en","id":211297,"title":"Install Discourse on a residential internet with Cloudflare Tunnel","slug":"install-discourse-on-a-residential-internet-with-cloudflare-tunnel","posts_count":69,"reply_count":43,"highest_post_number":72,"image_url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/b/3/f/b3f0eb49548dfd0986084517deeb172c3dbecd40_2_1024x512.png","created_at":"2021-12-07T14:02:07.164Z","last_posted_at":"2026-02-06T15:27:59.821Z","bumped":true,"bumped_at":"2026-02-06T15:27:59.821Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Since Discourse now has support for running on a Raspberry Pi, running a small instance in your home lab will become a common use case. However, many residential ISPs block incoming traffic to the ports 80/443 that Disco&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1200,"height":600,"url":"https://d11a6trkgmumsb.cloudfront.net/original/4X/b/3/f/b3f0eb49548dfd0986084517deeb172c3dbecd40.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":512,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/b/3/f/b3f0eb49548dfd0986084517deeb172c3dbecd40_2_1024x512.png"},{"max_width":800,"max_height":800,"width":800,"height":400,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/b/3/f/b3f0eb49548dfd0986084517deeb172c3dbecd40_2_800x400.png"},{"max_width":600,"max_height":600,"width":600,"height":300,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/b/3/f/b3f0eb49548dfd0986084517deeb172c3dbecd40_2_600x300.png"},{"max_width":400,"max_height":400,"width":400,"height":200,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/b/3/f/b3f0eb49548dfd0986084517deeb172c3dbecd40_2_400x200.png"},{"max_width":300,"max_height":300,"width":300,"height":150,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/b/3/f/b3f0eb49548dfd0986084517deeb172c3dbecd40_2_300x150.png"},{"max_width":200,"max_height":200,"width":200,"height":100,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/b/3/f/b3f0eb49548dfd0986084517deeb172c3dbecd40_2_200x100.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":824,"name":"install","slug":"install"},{"id":318,"name":"arm","slug":"arm"},{"id":739,"name":"raspberry-pi","slug":"raspberry-pi"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":8606,"like_count":163,"has_summary":true,"last_poster_username":"Falco","category_id":180,"op_like_count":38,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The discussion addresses setting up Discourse on a Raspberry Pi using Cloudflare Tunnel to bypass ISP port restrictions, with a focus on resolving 443 errors by disabling email setup via DISCOURSE_SKIP_EMAIL_SETUP if not needed.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":8722,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":109156,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":16290,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":117867,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":129813,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Add an offline page to display when Discourse is rebuilding or starting up","fancy_title_localized":false,"locale":"en","id":45238,"title":"Add an offline page to display when Discourse is rebuilding or starting up","slug":"add-an-offline-page-to-display-when-discourse-is-rebuilding-or-starting-up","posts_count":143,"reply_count":119,"highest_post_number":163,"image_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/9/0/9065d42ce76d3b600e84f1c694f932a9a1938b75.png","created_at":"2016-06-04T08:41:48.125Z","last_posted_at":"2026-02-03T11:01:35.205Z","bumped":true,"bumped_at":"2026-02-03T11:01:35.205Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":warning: This guide is intended for advanced users, who are already using nginx outside the docker container. By following this guide you make your setup more complicated and will lose some speed benefits like HTTP2 if&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":317,"height":328,"url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/9/0/9065d42ce76d3b600e84f1c694f932a9a1938b75.png"},{"max_width":300,"max_height":300,"width":289,"height":300,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/3X/9/0/9065d42ce76d3b600e84f1c694f932a9a1938b75_2_289x300.png"},{"max_width":200,"max_height":200,"width":193,"height":200,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/3X/9/0/9065d42ce76d3b600e84f1c694f932a9a1938b75_2_193x200.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":481,"name":"advanced-setup","slug":"advanced-setup"},{"id":271,"name":"configuring","slug":"configuring"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":244739,"like_count":340,"has_summary":true,"last_poster_username":"merefield","category_id":180,"op_like_count":100,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss alternative, simpler methods to handle offline pages during Discourse rebuilds, such as using plugins or container bootstrapping to reduce downtime and complexity.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":15568,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":24453,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":32,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":17621,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Most Recent Poster","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Configuring AWS&rsquo;s Amazon S3 for storage and Cloudfront for CDNs","fancy_title_localized":false,"locale":"en","id":392369,"title":"Configuring AWS's Amazon S3 for storage and Cloudfront for CDNs","slug":"configuring-awss-amazon-s3-for-storage-and-cloudfront-for-cdns","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2025-12-30T03:58:29.998Z","last_posted_at":"2026-01-13T17:22:50.447Z","bumped":true,"bumped_at":"2026-01-13T17:56:03.694Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Getting Started\nYou will need: \n\nA Discourse instance with app.yml access\nAWS account\n\nNaming Strategy\nThere are many places to make mistakes. Using a naming convention strategy that makes sense to you and perhaps others&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":72,"name":"s3","slug":"s3"},{"id":46,"name":"cdn","slug":"cdn"}],"tags_descriptions":{},"views":158,"like_count":1,"has_summary":false,"last_poster_username":"philh","category_id":180,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Philh revised the CloudFront setup by using a custom origin with subdomain.yourdomain.tld instead of a temporary S3 bucket, simplifying distribution configuration while maintaining caching and security settings.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":15291,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Deploy Discourse without Docker","fancy_title_localized":false,"locale":"en","id":351194,"title":"Deploy Discourse without Docker","slug":"deploy-discourse-without-docker","posts_count":34,"reply_count":19,"highest_post_number":36,"image_url":null,"created_at":"2025-02-08T03:56:12.775Z","last_posted_at":"2026-01-08T17:05:01.166Z","bumped":true,"bumped_at":"2026-01-08T17:05:01.166Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Though it is more convenient and safer to deploy Discourse following the official install guide, I want to dive deeper into the container and see how it can be deployed in Linux without Docker. I want to share the step&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":5,"name":"unsupported-install","slug":"unsupported-install"},{"id":481,"name":"advanced-setup","slug":"advanced-setup"}],"tags_descriptions":{},"views":1521,"like_count":17,"has_summary":false,"last_poster_username":"lion","category_id":180,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user shares a detailed guide on deploying Discourse on Linux without Docker, including system setup, dependencies, configuration, and a script for installation, emphasizing manual steps and potential risks.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":135057,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":135392,"primary_group_id":null,"flair_group_id":73},{"extras":null,"description":"Frequent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":182632,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":182437,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Running Discourse with WordPress (Docker) on a single VPS using Nginx Reverse Proxy","fancy_title_localized":false,"locale":"en","id":392094,"title":"Running Discourse with WordPress (Docker) on a single VPS using Nginx Reverse Proxy","slug":"running-discourse-with-wordpress-docker-on-a-single-vps-using-nginx-reverse-proxy","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2025-12-24T16:14:24.554Z","last_posted_at":"2025-12-24T16:14:24.630Z","bumped":true,"bumped_at":"2025-12-24T16:14:24.630Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Introduction\nBy default, a Discourse “standalone” installation binds to ports 80 and 443. To host another application like WordPress on the same server, you must reconfigure Discourse to listen on an internal port and us&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":66,"name":"wordpress","slug":"wordpress"}],"tags_descriptions":{},"views":92,"like_count":2,"has_summary":false,"last_poster_username":"thaidb","category_id":180,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse must be reconfigured to use internal ports with Nginx reverse proxy to coexist with WordPress on a single VPS, enabling shared SSL and centralized traffic management.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":27495,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Some wp-discourse + cloudflare lessons learned","fancy_title_localized":false,"locale":"en","id":391942,"title":"Some wp-discourse + cloudflare lessons learned","slug":"some-wp-discourse-cloudflare-lessons-learned","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/d/2/0d2c8d563a23447e3f6175e1073d52f614b627eb_2_1024x567.png","created_at":"2025-12-22T18:06:12.689Z","last_posted_at":"2025-12-22T18:06:12.802Z","bumped":true,"bumped_at":"2025-12-22T18:06:12.802Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Some personal setup-specific lessons I’ve learned in the last few months with Discourse, wp-discourse, and Cloudflare. Sharing in case any of this is useful to anyone. \nEnvironment: \n\nDiscourse &amp; Wordpress hosted on sepa&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2190,"height":1214,"url":"https://d11a6trkgmumsb.cloudfront.net/original/4X/0/d/2/0d2c8d563a23447e3f6175e1073d52f614b627eb.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":567,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/d/2/0d2c8d563a23447e3f6175e1073d52f614b627eb_2_1024x567.png"},{"max_width":800,"max_height":800,"width":800,"height":443,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/d/2/0d2c8d563a23447e3f6175e1073d52f614b627eb_2_800x443.png"},{"max_width":600,"max_height":600,"width":600,"height":332,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/d/2/0d2c8d563a23447e3f6175e1073d52f614b627eb_2_600x332.png"},{"max_width":400,"max_height":400,"width":400,"height":221,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/d/2/0d2c8d563a23447e3f6175e1073d52f614b627eb_2_400x221.png"},{"max_width":300,"max_height":300,"width":300,"height":166,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/d/2/0d2c8d563a23447e3f6175e1073d52f614b627eb_2_300x166.png"},{"max_width":200,"max_height":200,"width":200,"height":110,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/d/2/0d2c8d563a23447e3f6175e1073d52f614b627eb_2_200x110.png"}],"tags":[{"id":252,"name":"wp-discourse","slug":"wp-discourse"}],"tags_descriptions":{},"views":95,"like_count":2,"has_summary":false,"last_poster_username":"Lee_Ars","category_id":180,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user shares lessons learned from integrating Discourse with WordPress using wp-discourse, Cloudflare, and AWS, focusing on solving API rate-limiting issues via VPC host file adjustments and resolving comment display race conditions with a custom mu-plugin and cache-clearing strategy.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":4457,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Set up Let’s Encrypt with multiple domains / redirects","fancy_title_localized":false,"locale":"en","id":56685,"title":"Set up Let’s Encrypt with multiple domains / redirects","slug":"set-up-let-s-encrypt-with-multiple-domains-redirects","posts_count":113,"reply_count":142,"highest_post_number":188,"image_url":null,"created_at":"2017-02-01T02:21:03.592Z","last_posted_at":"2025-12-16T02:52:10.263Z","bumped":true,"bumped_at":"2025-12-16T02:52:10.263Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"NOTE: @pfaffman says: This page needs to be cleaned up. There is now a new ENV setting that will let you add more hostnames. In your app.yml under your DISCOURSE_HOSTNAME line (it can go many places but that one makes se&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":709,"name":"letsencrypt","slug":"letsencrypt"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":19951,"like_count":214,"has_summary":true,"last_poster_username":"philh","category_id":180,"op_like_count":48,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss using DISCOURSE_HOSTNAME_ALIASES in app.yml to add multiple domains for Let's Encrypt certificates, confirming it resolves redirect and certificate errors, with clarification on correct usage and issues related to AWS CDN and rate limiting.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":10365,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":27384,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":141713,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":57788,"primary_group_id":null,"flair_group_id":148},{"extras":"latest","description":"Most Recent Poster","user_id":15291,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Discourse AI: Discord Bot Integration Guide","fancy_title_localized":false,"locale":"en","id":390391,"title":"Discourse AI: Discord Bot Integration Guide","slug":"discourse-ai-discord-bot-integration-guide","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/4/8/1/481cdd154f62f2998b6f48618d71c6e0d1b1d002_2_1024x472.png","created_at":"2025-12-04T10:07:23.079Z","last_posted_at":"2025-12-04T10:07:23.174Z","bumped":true,"bumped_at":"2025-12-04T10:28:33.211Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Disclaimer: \nI am not the creator of the integration, I can’t provide support for it beyond a best-effort friendly community help, I am just another user that wanted this setup on their site and didn’t find a clear wa&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":3452,"height":1594,"url":"https://d11a6trkgmumsb.cloudfront.net/original/4X/4/8/1/481cdd154f62f2998b6f48618d71c6e0d1b1d002.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":472,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/4/8/1/481cdd154f62f2998b6f48618d71c6e0d1b1d002_2_1024x472.png"},{"max_width":800,"max_height":800,"width":800,"height":369,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/4/8/1/481cdd154f62f2998b6f48618d71c6e0d1b1d002_2_800x369.png"},{"max_width":600,"max_height":600,"width":600,"height":277,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/4/8/1/481cdd154f62f2998b6f48618d71c6e0d1b1d002_2_600x277.png"},{"max_width":400,"max_height":400,"width":400,"height":184,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/4/8/1/481cdd154f62f2998b6f48618d71c6e0d1b1d002_2_400x184.png"},{"max_width":300,"max_height":300,"width":300,"height":138,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/4/8/1/481cdd154f62f2998b6f48618d71c6e0d1b1d002_2_300x138.png"},{"max_width":200,"max_height":200,"width":200,"height":92,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/4/8/1/481cdd154f62f2998b6f48618d71c6e0d1b1d002_2_200x92.png"}],"tags":[],"tags_descriptions":{},"views":766,"like_count":2,"has_summary":false,"last_poster_username":"DevTeVe","category_id":180,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse AI integrates with Discord via webhooks and progressive edits to simulate live streaming responses without hosting a separate bot, using slash commands registered manually via API.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":183536,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Set up a staging server","fancy_title_localized":false,"locale":"en","id":225951,"title":"Set up a staging server","slug":"set-up-a-staging-server","posts_count":33,"reply_count":32,"highest_post_number":35,"image_url":"https://d11a6trkgmumsb.cloudfront.net/original/4X/0/a/2/0a2d344e0af5be55626a4a442ebbb8ea02d85b0c.png","created_at":"2022-05-03T05:24:53.285Z","last_posted_at":"2024-11-30T11:12:02.918Z","bumped":true,"bumped_at":"2025-12-01T19:58:33.852Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"There are several tricks that can help when you are setting up a staging server. \nWhat is a staging server?\nA staging server is essentially a clone of a production site. It also resides on a server, and functions identic&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":852,"height":556,"url":"https://d11a6trkgmumsb.cloudfront.net/original/4X/0/a/2/0a2d344e0af5be55626a4a442ebbb8ea02d85b0c.png"},{"max_width":800,"max_height":800,"width":800,"height":522,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/a/2/0a2d344e0af5be55626a4a442ebbb8ea02d85b0c_2_800x522.png"},{"max_width":600,"max_height":600,"width":600,"height":391,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/a/2/0a2d344e0af5be55626a4a442ebbb8ea02d85b0c_2_600x391.png"},{"max_width":400,"max_height":400,"width":400,"height":261,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/a/2/0a2d344e0af5be55626a4a442ebbb8ea02d85b0c_2_400x261.png"},{"max_width":300,"max_height":300,"width":300,"height":195,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/a/2/0a2d344e0af5be55626a4a442ebbb8ea02d85b0c_2_300x195.png"},{"max_width":200,"max_height":200,"width":200,"height":130,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/0/a/2/0a2d344e0af5be55626a4a442ebbb8ea02d85b0c_2_200x130.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":6102,"like_count":98,"has_summary":false,"last_poster_username":"manuel","category_id":180,"op_like_count":32,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users encounter issues while seeding test data on a staging server, with errors related to environment restrictions, and seek solutions to resolve database command limitations in a multisite setup.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":57788,"primary_group_id":null,"flair_group_id":148},{"extras":null,"description":"Frequent Poster","user_id":27384,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":12454,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":72263,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":82960,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Use rclone to sync to Dropbox (2025)","fancy_title_localized":false,"locale":"en","id":378430,"title":"Use rclone to sync to Dropbox (2025)","slug":"use-rclone-to-sync-to-dropbox-2025","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2025-08-13T13:29:00.757Z","last_posted_at":"2025-11-11T00:00:27.259Z","bumped":true,"bumped_at":"2025-11-11T00:00:27.259Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Admins and moderators: feel free to move this topic somewhere else or edit it if necessary. \n\nThese are extended, step-by-step instructions on how I installed rclone and set up everything to back up my Discourse to Drop&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":55,"name":"backups","slug":"backups"}],"tags_descriptions":{},"views":802,"like_count":5,"has_summary":false,"last_poster_username":"alltiagocom","category_id":180,"op_like_count":5,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The user provides a detailed guide on installing rclone and configuring it to back up Discourse to Dropbox, including steps for authentication and setup, while emphasizing the importance of multiple backups for safety.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":171937,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":184333,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":35474,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Migrate a vBulletin 4 forum to Discourse","fancy_title_localized":false,"locale":"en","id":54881,"title":"Migrate a vBulletin 4 forum to Discourse","slug":"migrate-a-vbulletin-4-forum-to-discourse","posts_count":184,"reply_count":128,"highest_post_number":200,"image_url":null,"created_at":"2016-12-28T14:59:29.396Z","last_posted_at":"2025-11-09T18:05:20.042Z","bumped":true,"bumped_at":"2025-11-09T18:05:20.042Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"In this tutorial we will learn how to migrate vBulletin forum to :discourse: platform using vBulletin importer script. \nI have tested the script with a big database and the result was very good. The script is well writte&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":30745,"like_count":282,"has_summary":true,"last_poster_username":"pfaffman","category_id":180,"op_like_count":20,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"After troubleshooting database connection and timezone errors, tom1984 successfully migrated a vBulletin forum to Discourse using a modified importer script, with assistance from pfaffman.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":24426,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":28775,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":109932,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"Detailed installation guide + control panel | Super detailed tutorial for installing discourse + control panel","fancy_title_localized":true,"locale":"zh_CN","id":278426,"title":":cn: Detailed installation guide + control panel | 超级详细教学安装discourse+控制面板","slug":"detailed-installation-guide-control-panel-discourse","posts_count":34,"reply_count":27,"highest_post_number":38,"image_url":"https://d11a6trkgmumsb.cloudfront.net/original/4X/3/7/4/3742afe9f4ff34dae1c57777511230e1f21bdb86.png","created_at":"2023-09-09T16:59:47.911Z","last_posted_at":"2025-10-07T20:19:32.177Z","bumped":true,"bumped_at":"2025-10-07T20:19:32.177Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I’m a beginner at building websites. Due to my hobby, I want to build a technical exchange community. I’m preparing to build a Discourse and share this tutorial. I hope it will be helpful to friends who need to install D&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"unicode_title":"🇨🇳 Detailed installation guide + control panel | 超级详细教学安装discourse+控制面板","thumbnails":[{"max_width":null,"max_height":null,"width":863,"height":460,"url":"https://d11a6trkgmumsb.cloudfront.net/original/4X/3/7/4/3742afe9f4ff34dae1c57777511230e1f21bdb86.png"},{"max_width":800,"max_height":800,"width":800,"height":426,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/3/7/4/3742afe9f4ff34dae1c57777511230e1f21bdb86_2_800x426.png"},{"max_width":600,"max_height":600,"width":600,"height":319,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/3/7/4/3742afe9f4ff34dae1c57777511230e1f21bdb86_2_600x319.png"},{"max_width":400,"max_height":400,"width":400,"height":213,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/3/7/4/3742afe9f4ff34dae1c57777511230e1f21bdb86_2_400x213.png"},{"max_width":300,"max_height":300,"width":300,"height":159,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/3/7/4/3742afe9f4ff34dae1c57777511230e1f21bdb86_2_300x159.png"},{"max_width":200,"max_height":200,"width":200,"height":106,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/3/7/4/3742afe9f4ff34dae1c57777511230e1f21bdb86_2_200x106.png"}],"tags":[{"id":297,"name":"chinese-translation","slug":"chinese-translation"}],"tags_descriptions":{},"views":9228,"like_count":9,"has_summary":false,"last_poster_username":"J_admin","category_id":180,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user is troubleshooting plugin installation issues on Discourse, suspecting it may be due to unstable domestic server connections to GitHub.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":118140,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":119102,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":113402,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":79292,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":183069,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Step-by-step Discourse migration with R2 and Cloudflare integration","fancy_title_localized":false,"locale":"en","id":382491,"title":"Step-by-step Discourse migration with R2 and Cloudflare integration","slug":"step-by-step-discourse-migration-with-r2-and-cloudflare-integration","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2025-09-13T01:31:47.039Z","last_posted_at":"2025-09-13T01:31:47.124Z","bumped":true,"bumped_at":"2025-09-13T01:38:26.591Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This is a post-mortem/runbook of a real migration. I skip common Discourse prep (the official docs cover it). I focus on the exact switches, Cloudflare R2 gotchas, the rails/rake one-liners that mattered, what failed, an&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":72,"name":"s3","slug":"s3"},{"id":827,"name":"cloudflare","slug":"cloudflare"},{"id":65,"name":"migrations","slug":"migrations"}],"tags_descriptions":{"migrations":""},"views":162,"like_count":4,"has_summary":false,"last_poster_username":"hel_Sinki","category_id":180,"op_like_count":4,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A detailed guide on migrating Discourse with Cloudflare R2 integration, focusing on critical steps, potential pitfalls, and ensuring a low-risk transition.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":147473,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Watched words to block recent spam attack","fancy_title_localized":false,"locale":"en","id":380420,"title":"Watched words to block recent spam attack","slug":"watched-words-to-block-recent-spam-attack","posts_count":13,"reply_count":9,"highest_post_number":13,"image_url":null,"created_at":"2025-08-26T19:02:39.622Z","last_posted_at":"2025-09-10T16:26:12.282Z","bumped":true,"bumped_at":"2025-09-10T16:26:12.282Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I’ve had at least two sites get hit with a wave of spam that looks like it’s designed to poison LLMs. The same attack has also been reported here at least once (Anyone else currently undergoing mass spam attack?). The be&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":511,"name":"watched-words","slug":"watched-words"},{"id":830,"name":"spam","slug":"spam"}],"tags_descriptions":{},"views":312,"like_count":28,"has_summary":false,"last_poster_username":"mcdanlj","category_id":180,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss a script to block spam by adding watched words, but note that post edits can bypass these filters, suggesting changes to default editing permissions or post-edit protections.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":406,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":44918,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13093,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2377,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Move a Discourse site to another VPS with rsync","fancy_title_localized":false,"locale":"en","id":43812,"title":"Move a Discourse site to another VPS with rsync","slug":"move-a-discourse-site-to-another-vps-with-rsync","posts_count":56,"reply_count":39,"highest_post_number":57,"image_url":null,"created_at":"2016-05-06T20:21:38.859Z","last_posted_at":"2025-08-17T22:20:11.109Z","bumped":true,"bumped_at":"2025-08-17T22:22:20.718Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This method is different than restoring file in UI. \nMaybe there is a more downtime but it’s simpler for linux folks without Discourse knowledge and it’s easy to automate. \nPrepare new VPS\nFirst, prepare our new Current &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":65,"name":"migrations","slug":"migrations"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem","migrations":""},"views":7925,"like_count":67,"has_summary":true,"last_poster_username":"icculus","category_id":180,"op_like_count":27,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss fixing corrupt SQL indexes in Discourse after migrating with rsync, including specific PostgreSQL commands and manual cleanup processes.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":20762,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":28866,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":12454,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":40904,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":28100,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Spam: Retroactively get AI to review recent posts and then delete the ones marked as spam","fancy_title_localized":false,"locale":"en","id":378956,"title":"Spam: Retroactively get AI to review recent posts and then delete the ones marked as spam","slug":"spam-retroactively-get-ai-to-review-recent-posts-and-then-delete-the-ones-marked-as-spam","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2025-08-17T22:09:43.873Z","last_posted_at":"2025-08-17T22:09:43.972Z","bumped":true,"bumped_at":"2025-08-17T22:09:43.972Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I helped out a site that got hit about about 30 spam posts per hour. We turned on AI Spam, but that didn’t solve the problem of the existing posts. Here’s what I did. This might work for you. It’s not tested on your site&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":543,"name":"ai","slug":"ai"},{"id":830,"name":"spam","slug":"spam"}],"tags_descriptions":{},"views":92,"like_count":8,"has_summary":false,"last_poster_username":"pfaffman","category_id":180,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user shares a method to retroactively use AI to review and delete spam posts on a Discourse forum, emphasizing the importance of backups and caution.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"Migrate an SMF2 forum to Discourse","fancy_title_localized":false,"locale":"en","id":90314,"title":"Migrate an SMF2 forum to Discourse","slug":"migrate-an-smf2-forum-to-discourse","posts_count":102,"reply_count":74,"highest_post_number":105,"image_url":null,"created_at":"2018-06-20T14:26:51.286Z","last_posted_at":"2025-07-03T13:32:13.698Z","bumped":true,"bumped_at":"2025-07-03T13:32:13.698Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"SMF2 to Discourse - The Ultimate Guide \nStarting from the idea of creating an up-to-date guide to migrate from SMF2 to Discourse discussed in this excellent thread by @vincentMac and @cmwebdev,  I have prepared an ambiti&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":14202,"like_count":105,"has_summary":true,"last_poster_username":"marcozambi","category_id":180,"op_like_count":20,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user successfully migrated from SMF2 to Discourse, detailing issues with Unix permissions on the attachments folder, debugging failed uploads, and the importance of fully clearing the database to ensure proper import of attachments and topic updates.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":34393,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":70136,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":68171,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":27754,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"Configure MAXMIND for reverse IP lookups","fancy_title_localized":false,"locale":"en","id":173941,"title":"Configure MAXMIND for reverse IP lookups","slug":"configure-maxmind-for-reverse-ip-lookups","posts_count":18,"reply_count":28,"highest_post_number":44,"image_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/8/9/89320702b7104755c7be2e1634e9a00541deb718.png","created_at":"2020-12-21T17:58:35.887Z","last_posted_at":"2025-11-07T00:40:55.992Z","bumped":true,"bumped_at":"2025-06-23T19:49:04.433Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"What is MAXMIND and why would I want it?\nDiscourse uses MAXMIND to provide geographical information for reverse IP lookups. \n  \nWithout Maxmind’s database you’ll see something like this: \n  \nOr perhaps you’ve noticed thi&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":487,"height":238,"url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/8/9/89320702b7104755c7be2e1634e9a00541deb718.png"},{"max_width":400,"max_height":400,"width":400,"height":195,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/3X/8/9/89320702b7104755c7be2e1634e9a00541deb718_2_400x195.png"},{"max_width":300,"max_height":300,"width":300,"height":146,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/3X/8/9/89320702b7104755c7be2e1634e9a00541deb718_2_300x146.png"},{"max_width":200,"max_height":200,"width":200,"height":97,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/3X/8/9/89320702b7104755c7be2e1634e9a00541deb718_2_200x97.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":764,"name":"maxmind","slug":"maxmind"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":6449,"like_count":61,"has_summary":false,"last_poster_username":"ToddZ","category_id":180,"op_like_count":31,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user is experiencing a 401 Unauthorized error when trying to download the MaxMind GeoLite2-City database for reverse IP lookups in a self-hosted Discourse instance, despite having configured the account ID and license key correctly in app.yml.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":1939,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":43643,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":174478,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":138497,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Download a backup from an email link with `wget`","fancy_title_localized":false,"locale":"en","id":170623,"title":"Download a backup from an email link with `wget`","slug":"download-a-backup-from-an-email-link-with-wget","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/4/8/48381752021171641d9b2ce8e2a70345bbf76b03.png","created_at":"2020-11-19T15:45:35.274Z","last_posted_at":"2025-06-23T11:55:59.458Z","bumped":true,"bumped_at":"2025-06-23T11:55:59.458Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"For a seasoned sysadmin, the favored way of moving large files is a tool like rsync or scp, but sometimes, you don’t have ssh access to the host where you need to retrieve a large backup file. \nBecause backup files conta&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":715,"height":203,"url":"https://d11a6trkgmumsb.cloudfront.net/original/3X/4/8/48381752021171641d9b2ce8e2a70345bbf76b03.png"},{"max_width":600,"max_height":600,"width":600,"height":170,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/3X/4/8/48381752021171641d9b2ce8e2a70345bbf76b03_2_600x170.png"},{"max_width":400,"max_height":400,"width":400,"height":113,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/3X/4/8/48381752021171641d9b2ce8e2a70345bbf76b03_2_400x113.png"},{"max_width":300,"max_height":300,"width":300,"height":85,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/3X/4/8/48381752021171641d9b2ce8e2a70345bbf76b03_2_300x85.png"},{"max_width":200,"max_height":200,"width":200,"height":56,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/3X/4/8/48381752021171641d9b2ce8e2a70345bbf76b03_2_200x56.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":55,"name":"backups","slug":"backups"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":1805,"like_count":16,"has_summary":false,"last_poster_username":"pfaffman","category_id":180,"op_like_count":14,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users report the initial `wget` method for downloading Discourse backups may not work outside of S3 environments due to authentication differences between S3’s signed URLs and Discourse’s cookie-based authentication.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":114728,"primary_group_id":null,"flair_group_id":151},{"extras":null,"description":"Frequent Poster","user_id":108265,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Discourse forum activation email issue","fancy_title_localized":true,"locale":"zh_CN","id":246830,"title":":cn: Discourse forum activation email issue | Discourse 论坛激活邮件问题","slug":"discourse-forum-activation-email-issue-discourse","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/5/5/d/55dc938ee26818785d4aa533df6376016b06dc2a_2_1024x584.png","created_at":"2022-11-27T13:53:51.777Z","last_posted_at":"2025-06-14T15:28:04.301Z","bumped":true,"bumped_at":"2025-06-14T15:28:04.301Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"According to Discourse’s official recommendation, we are using MailGun’s service. \nIn most cases, there are no issues, but for some specific email addresses, such as iCloud, we receive the following prompt when sending a&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"unicode_title":"🇨🇳 Discourse forum activation email issue | Discourse 论坛激活邮件问题","thumbnails":[{"max_width":null,"max_height":null,"width":1465,"height":836,"url":"https://d11a6trkgmumsb.cloudfront.net/original/4X/5/5/d/55dc938ee26818785d4aa533df6376016b06dc2a.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":584,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/5/5/d/55dc938ee26818785d4aa533df6376016b06dc2a_2_1024x584.png"},{"max_width":800,"max_height":800,"width":800,"height":456,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/5/5/d/55dc938ee26818785d4aa533df6376016b06dc2a_2_800x456.png"},{"max_width":600,"max_height":600,"width":600,"height":342,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/5/5/d/55dc938ee26818785d4aa533df6376016b06dc2a_2_600x342.png"},{"max_width":400,"max_height":400,"width":400,"height":228,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/5/5/d/55dc938ee26818785d4aa533df6376016b06dc2a_2_400x228.png"},{"max_width":300,"max_height":300,"width":300,"height":171,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/5/5/d/55dc938ee26818785d4aa533df6376016b06dc2a_2_300x171.png"},{"max_width":200,"max_height":200,"width":200,"height":114,"url":"https://d11a6trkgmumsb.cloudfront.net/optimized/4X/5/5/d/55dc938ee26818785d4aa533df6376016b06dc2a_2_200x114.png"}],"tags":[{"id":297,"name":"chinese-translation","slug":"chinese-translation"}],"tags_descriptions":{},"views":1658,"like_count":4,"has_summary":false,"last_poster_username":"Yuuki_Mizukami","category_id":180,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse activation emails are failing for some iCloud addresses due to sender domain verification issues, requiring the addition of a subdomain MX record to the DNS settings.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":79292,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":117510,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":177590,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Install Discourse on Amazon Web Services (AWS)","fancy_title_localized":false,"locale":"en","id":37323,"title":"Install Discourse on Amazon Web Services (AWS)","slug":"install-discourse-on-amazon-web-services-aws","posts_count":1,"reply_count":15,"highest_post_number":1,"image_url":null,"created_at":"2015-12-31T15:09:21.834Z","last_posted_at":"2015-12-31T15:09:21.976Z","bumped":true,"bumped_at":"2025-05-22T01:07:52.325Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":warning: This installation method is not officially endorsed. Use at your own risk. \nThe Discourse team only recommend installation using the official install guide \n\n\nThis guide originally included information about c&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":5,"name":"unsupported-install","slug":"unsupported-install"},{"id":824,"name":"install","slug":"install"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":14214,"like_count":29,"has_summary":false,"last_poster_username":"Frez","category_id":180,"op_like_count":29,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse installation on AWS with dedicated servers for scalability and performance","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":18423,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Setup Multisite Configuration with Let&rsquo;s Encrypt and no Reverse Proxy","fancy_title_localized":false,"locale":"en","id":175285,"title":"Setup Multisite Configuration with Let's Encrypt and no Reverse Proxy","slug":"setup-multisite-configuration-with-lets-encrypt-and-no-reverse-proxy","posts_count":24,"reply_count":13,"highest_post_number":24,"image_url":null,"created_at":"2021-01-06T16:52:21.664Z","last_posted_at":"2025-05-08T20:26:39.371Z","bumped":true,"bumped_at":"2025-05-08T20:26:39.371Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"These instructions should be considered beta and for those familiar with a standard setup\nBut right now (2023.02.11) these instructions do not work!! (See Set up Let’s Encrypt with multiple domains / redirects for how to&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":825,"name":"domains","slug":"domains"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":4564,"like_count":37,"has_summary":false,"last_poster_username":"manuel","category_id":180,"op_like_count":10,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Multisite setup with Let's Encrypt faces redirect issues after updating to3.5.0.beta5-dev, requiring changes to NGINX configuration and certificate requests.","is_nested_view":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":87440,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":21969,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":128374,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":82960,"primary_group_id":47,"flair_group_id":47}]}]}}