Skip to content

Technical Support

Need help with installing or configuring NodeBB? Look here.

4.8k Topics 26.7k Posts

Subcategories


  • User documentation for NodeBB

    44 Topics
    44 Posts
    Jay MoonahJ
    One of the first important things to do after setting up NodeBB is to set up an emailer plugin. While NodeBB does include a local emailer, if your forum is particularly active we recommend using an third-party emailer such as SendGrid which provides better deliverability for sites that send a high volume of email. Setting up SendGrid in NodeBB is very easy. Open the administrative dashboard using the 'gear' icon on your forum. Open the Extend > Plugins menu, and select the Find Plugins tab. Use the search on the right. Type 'SendGrid' and the plugin should appear -- select Install when you see it. From Installed tab on the Plugins menu, search again for 'SendGrid' and select Activate. Activating the plugin will require a restart of your forum. To restart, select the Dashboard menu and press the Restart button to the right. After NodeBB restarts, the SendGrid plugin will be active. After you restart, there should be a item called Emailer (SendGrid) under the Plugins menu -- if you don't see this right away, try refreshing your browser. Sign up to SendGrid Go to the SendGrid website, open the pricing page and scroll to the bottom. Click on the link and create your free account. Once you've confirmed your SendGrid account via email, you should be able to login to the SendGrid website. On the left side of your SendGrid dashboard, open Settings and click on API Keys. Click the button in the top right to create a new key. Make sure that the key has Full Access for Send Mail and Alerts.  When you are done, the new key to your clipboard. Now, return to the SendGrid menu on your NodeBB admin panel. Paste the API key into the field, and save your changes. Now go back to the Dashboard to restart your forum one more time. SendGrid should now be working for your forum. [image: youtubelogo.png] Setting up SendGrid mailer for NodeBB
  • NodeBB guides, how-to's and general tips and tricks

    83 Topics
    601 Posts
    Z
    not sure the plugin worked for firefox. saw a-z in the sort icon. when i used it, i expected the topics in the category would be sorted a-z. they werent
  • 25 Topics
    201 Posts
    eeeeeE
    I think you answered my point, by agreeing there are issues. I didn't even attempt to deploy nodebb, I had problems with much smaller projects! Nextjs routing was going through a change of design at the time, so perhaps that is less confusing now, but there were multiple other headaches. I would get build errors and issues with package management.
  • 0 Votes
    5 Posts
    1k Views
    gotwfG
    @Varun-Ganesh-D After updating what? Do not know jack about SES but seems whacked to me that updating only NodeBB would result in such. Perchance might some other, more system wide updates also been in the lurking? Presuming you have cli access, what returns when thou drivest the following: [root@forums ~]# which sendmail /usr/sbin/sendmail Should be similar to above, and, of course, be in your $PATH. Rock on!
  • Don't show datetime in chats dropdown

    4
    0 Votes
    4 Posts
    511 Views
    julianJ
    @togan I believe I removed the preview there awhile back, so this is intentional
  • Error Imgur & Extended Markdown

    4
    0 Votes
    4 Posts
    491 Views
    T
    @togan said in Error Imgur & Extended Markdown: But problem in composer with Extended Markdown plugin not issue. I'm try to go back composer version to 6.3.50, it's not fix problem. On the NodeBB 1.14.3 this plugin was work
  • Upgrade from version 1.14.x to 1.15.x got error

    6
    0 Votes
    6 Posts
    992 Views
    Sandeep BhuiyaS
    @baris said in Upgrade from version 1.14.x to 1.15.x got error: Upgrading these two dependencies should fix this error "@nodebb/mubsub": "1.7.1", "@nodebb/socket.io-adapter-mongo": "3.1.1", thanks solved.
  • This topic is deleted!

    12
    0 Votes
    12 Posts
    21 Views
  • Marking notification as read

    1
    0 Votes
    1 Posts
    329 Views
    A
    Hi Guys, My community is a mix of NodeBB and Angular, i am creating a notification widget same as nodebb on angular page. Everything is done just want to mark notifications read/unread by updating the value in database. Could anyone can guide me with the object in MongoDB for read/unread notification. Thanks.
  • This topic is deleted!

    19
    0 Votes
    19 Posts
    96 Views
  • Scroll button in navbar

    3
    0 Votes
    3 Posts
    412 Views
    F
    @togan I'm facing the same problem. We have a bigger nav menu and default persona theme doesn't fallback nicely if menu items go to the next line. I tried making two menus like below, but it also has its downsides. [image: rBHCday.png] I wish @staff can add something in core to add dropdowns in navigation. That should handle things nicely.
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    12 Views
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    11 Views
  • Can we create a post for vote?

    2
    0 Votes
    2 Posts
    367 Views
    julianJ
    @xinbenlv Like a poll? Yes, with nodebb-plugin-poll
  • How to upgrade FontAwesome

    3
    0 Votes
    3 Posts
    612 Views
    K
    I recently upgraded FontAwesome on v1.15rc, so here's a little roundup of what I did in case anybody will encounter difficulties. Download the latest version of FA from their website. You need this package. Unpack and upload the files to your server at "(nodebb_dir)/public/vendor/fontawesome". You only need the contents of "/webfonts", "/less/_variables.less" and "/less/_icons.less". Don't upload anything else. Make a copy of your old icons.less and variables.less, then replace them with your new files (remove the underscore). Run the script provided by NodeMoster. I modified it a little and removed grep: #!/bin/bash ######################################################################################################### ## copy latest font awesome's /webfonts/* to public/vendor/fontawesome/fonts ## ## copy latest font awesome's /less/_variables.less to public/vendor/fontawesome/less/variables.less ## ## copy latest font awesome's /less/_icons.less to public/vendor/fontawesome/less/icons.less ## ######################################################################################################### latestfa=`curl -s https://github.com/FortAwesome/Font-Awesome/releases | grep "tree" | head -1 | grep -o -P '(?<=title=).*(?=>)'` if ! grep $latestfa public/vendor/fontawesome/less/variables.less; then echo "Latest Font Awesome not copied yet!" exit 0; fi #Use back nodebb preferred font sizes sed -i 's#../webfonts#./vendor/fontawesome/fonts#; s/16px/14px/; s#2em#(30em / 14)#' public/vendor/fontawesome/less/variables.less #css for latest FA fonts cat <<EOF > public/vendor/fontawesome/less/path.less @font-face { font-family: 'FontAwesome'; font-style: normal; font-weight: 400; src: url("@{fa-font-path}/fa-brands-400.eot"); src: url("@{fa-font-path}/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("@{fa-font-path}/fa-brands-400.woff2") format("woff2"), url("@{fa-font-path}/fa-brands-400.woff") format("woff"), url("@{fa-font-path}/fa-brands-400.ttf") format("truetype"), url("@{fa-font-path}/fa-brands-400.svg#fontawesome") format("svg"); } @font-face { font-family: 'FontAwesome'; font-style: normal; font-weight: 400; src: url("@{fa-font-path}/fa-regular-400.eot"); src: url("@{fa-font-path}/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("@{fa-font-path}/fa-regular-400.woff2") format("woff2"), url("@{fa-font-path}/fa-regular-400.woff") format("woff"), url("@{fa-font-path}/fa-regular-400.ttf") format("truetype"), url("@{fa-font-path}/fa-regular-400.svg#fontawesome") format("svg"); } @font-face { font-family: 'FontAwesome'; font-style: normal; font-weight: 900; src: url("@{fa-font-path}/fa-solid-900.eot"); src: url("@{fa-font-path}/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("@{fa-font-path}/fa-solid-900.woff2") format("woff2"), url("@{fa-font-path}/fa-solid-900.woff") format("woff"), url("@{fa-font-path}/fa-solid-900.ttf") format("truetype"), url("@{fa-font-path}/fa-solid-900.svg#fontawesome") format("svg"); } EOF #Delete the old font links sed -i '/fa fa-/d; ' src/views/partials/fontawesome.tpl #Get new icons into variable newfontawesome=`grep -o -P '(?<=fa-var-).*(?=:)' public/vendor/fontawesome/less/variables.less` #Make icon Links for i in $newfontawesome; do echo "Insert $i Into Template" echo "<i class=\"fa fa-$i\"></i>" >>/tmp/newfontawesome.txt done #Insert icons into template sed -i '/fa-icons/r /tmp/newfontawesome.txt' src/views/partials/fontawesome.tpl #insert the new font links echo "Done!" #Some icons like fa-clock-o in /recent and fa-group in /group have been renamed and are not compatible with the latest FA5. In order to change them, inspect the element in your browser, under iconPicker class abd change fa-clock-o or fa-group to fa-500px or something else that you can click on and change it. Run this modified Python script by abkcode which replaces all instances of old class names with the new ones. You may need to tweak it. #!/usr/bin/env python import os from collections import OrderedDict findreplace = [ ('fa-500px', 'fa-500px'), ('fa-address-book-o', 'fa-address-book'), ('fa-address-card-o', 'fa-address-card'), ('fa-adn', 'fa-adn'), ('fa-amazon', 'fa-amazon'), ('fa-android', 'fa-android'), ('fa-angellist', 'fa-angellist'), ('fa-apple', 'fa-apple'), ('fa-area-chart', 'fa-chart-area'), ('fa-arrow-circle-o-down', 'fa-arrow-alt-circle-down'), ('fa-arrow-circle-o-left', 'fa-arrow-alt-circle-left'), ('fa-arrow-circle-o-right', 'fa-arrow-alt-circle-right'), ('fa-arrow-circle-o-up', 'fa-arrow-alt-circle-up'), ('fa-arrows-alt', 'fa-expand-arrows-alt'), ('fa-arrows-h', 'fa-arrows-alt-h'), ('fa-arrows-v', 'fa-arrows-alt-v'), ('fa-arrows', 'fa-arrows-alt'), ('fa-asl-interpreting', 'fa-american-sign-language-interpreting'), ('fa-automobile', 'fa-car'), ('fa-bandcamp', 'fa-bandcamp'), ('fa-bank', 'fa-university'), ('fa-bar-chart-o', 'fa-chart-bar'), ('fa-bar-chart', 'fa-chart-bar'), ('fa-bathtub', 'fa-bath'), ('fa-battery-0', 'fa-battery-empty'), ('fa-battery-1', 'fa-battery-quarter'), ('fa-battery-2', 'fa-battery-half'), ('fa-battery-3', 'fa-battery-three-quarters'), ('fa-battery-4', 'fa-battery-full'), ('fa-battery', 'fa-battery-full'), ('fa-behance', 'fa-behance'), ('fa-behance-square', 'fa-behance-square'), ('fa-bell-o', 'fa-bell'), ('fa-bell-slash-o', 'fa-bell-slash'), ('fa-bitbucket-square', 'fa-bitbucket'), ('fa-bitbucket', 'fa-bitbucket'), ('fa-bitcoin', 'fa-btc'), ('fa-black-tie', 'fa-black-tie'), ('fa-bluetooth-b', 'fa-bluetooth-b'), ('fa-bluetooth', 'fa-bluetooth'), ('fa-bookmark-o', 'fa-bookmark'), ('fa-btc', 'fa-btc'), ('fa-building-o', 'fa-building'), ('fa-buysellads', 'fa-buysellads'), ('fa-cab', 'fa-taxi'), ('fa-calendar-check-o', 'fa-calendar-check'), ('fa-calendar-minus-o', 'fa-calendar-minus'), ('fa-calendar-o', 'fa-calendar'), ('fa-calendar-plus-o', 'fa-calendar-plus'), ('fa-calendar-times-o', 'fa-calendar-times'), ('fa-calendar', 'fa-calendar-alt'), ('fa-caret-square-o-down', 'fa-caret-square-down'), ('fa-caret-square-o-left', 'fa-caret-square-left'), ('fa-caret-square-o-right', 'fa-caret-square-right'), ('fa-caret-square-o-up', 'fa-caret-square-up'), ('fa-cc-amex', 'fa-cc-amex'), ('fa-cc-diners-club', 'fa-cc-diners-club'), ('fa-cc-discover', 'fa-cc-discover'), ('fa-cc-jcb', 'fa-cc-jcb'), ('fa-cc-mastercard', 'fa-cc-mastercard'), ('fa-cc-paypal', 'fa-cc-paypal'), ('fa-cc-stripe', 'fa-cc-stripe'), ('fa-cc-visa', 'fa-cc-visa'), ('fa-cc', 'fa-closed-captioning'), ('fa-chain-broken', 'fa-unlink'), ('fa-chain', 'fa-link'), ('fa-check-circle-o', 'fa-check-circle'), ('fa-check-square-o', 'fa-check-square'), ('fa-chrome', 'fa-chrome'), ('fa-circle-o-notch', 'fa-circle-notch'), ('fa-circle-o', 'fa-circle'), ('fa-circle-thin', 'fa-circle'), ('fa-clipboard', 'fa-clipboard'), ('fa-clock-o', 'fa-clock'), ('fa-clone', 'fa-clone'), ('fa-close', 'fa-times'), ('fa-cloud-download', 'fa-cloud-download-alt'), ('fa-cloud-upload', 'fa-cloud-upload-alt'), ('fa-cny', 'fa-yen-sign'), ('fa-code-fork', 'fa-code-branch'), ('fa-codepen', 'fa-codepen'), ('fa-codiepie', 'fa-codiepie'), ('fa-comment-o', 'fa-comment'), ('fa-commenting-o', 'fa-comment-dots'), ('fa-commenting', 'fa-comment-dots'), ('fa-comments-o', 'fa-comments'), ('fa-compass', 'fa-compass'), ('fa-connectdevelop', 'fa-connectdevelop'), ('fa-contao', 'fa-contao'), ('fa-copyright', 'fa-copyright'), ('fa-creative-commons', 'fa-creative-commons'), ('fa-credit-card-alt', 'fa-credit-card'), ('fa-credit-card', 'fa-credit-card'), ('fa-css3', 'fa-css3'), ('fa-cutlery', 'fa-utensils'), ('fa-dashboard', 'fa-tachometer-alt'), ('fa-dashcube', 'fa-dashcube'), ('fa-deafness', 'fa-deaf'), ('fa-dedent', 'fa-outdent'), ('fa-delicious', 'fa-delicious'), ('fa-deviantart', 'fa-deviantart'), ('fa-diamond', 'fa-gem'), ('fa-digg', 'fa-digg'), ('fa-dollar', 'fa-dollar-sign'), ('fa-dot-circle-o', 'fa-dot-circle'), ('fa-dribbble', 'fa-dribbble'), ('fa-drivers-license-o', 'fa-id-card'), ('fa-drivers-license', 'fa-id-card'), ('fa-dropbox', 'fa-dropbox'), ('fa-drupal', 'fa-drupal'), ('fa-edge', 'fa-edge'), ('fa-eercast', 'fa-sellcast'), ('fa-empire', 'fa-empire'), ('fa-envelope-open-o', 'fa-envelope-open'), ('fa-envelope-o', 'fa-envelope'), ('fa-envira', 'fa-envira'), ('fa-etsy', 'fa-etsy'), ('fa-euro', 'fa-euro-sign'), ('fa-eur', 'fa-euro-sign'), ('fa-exchange', 'fa-exchange-alt'), ('fa-expeditedssl', 'fa-expeditedssl'), ('fa-external-link-square', 'fa-external-link-square-alt'), ('fa-external-link', 'fa-external-link-alt'), ('fa-eye-slash', 'fa-eye-slash'), ('fa-eyedropper', 'fa-eye-dropper'), ('fa-eye', 'fa-eye'), ('fa-facebook-f', 'fa-facebook-f'), ('fa-facebook-official', 'fa-facebook'), ('fa-facebook-square', 'fa-facebook-square'), ('fa-facebook', 'fa-facebook-f'), ('fa-feed', 'fa-rss'), ('fa-file-archive-o', 'fa-file-archive'), ('fa-file-audio-o', 'fa-file-audio'), ('fa-file-code-o', 'fa-file-code'), ('fa-file-excel-o', 'fa-file-excel'), ('fa-file-image-o', 'fa-file-image'), ('fa-file-movie-o', 'fa-file-video'), ('fa-file-o', 'fa-file'), ('fa-file-pdf-o', 'fa-file-pdf'), ('fa-file-photo-o', 'fa-file-image'), ('fa-file-picture-o', 'fa-file-image'), ('fa-file-powerpoint-o', 'fa-file-powerpoint'), ('fa-file-sound-o', 'fa-file-audio'), ('fa-file-text-o', 'fa-file-alt'), ('fa-file-text', 'fa-file-alt'), ('fa-file-video-o', 'fa-file-video'), ('fa-file-word-o', 'fa-file-word'), ('fa-file-zip-o', 'fa-file-archive'), ('fa-files-o', 'fa-copy'), ('fa-firefox', 'fa-firefox'), ('fa-first-order', 'fa-first-order'), ('fa-flag-o', 'fa-flag'), ('fa-flash', 'fa-bolt'), ('fa-flickr', 'fa-flickr'), ('fa-floppy-o', 'fa-save'), ('fa-folder-o', 'fa-folder'), ('fa-folder-open-o', 'fa-folder-open'), ('fa-font-awesome', 'fa-font-awesome'), ('fa-fonticons', 'fa-fonticons'), ('fa-fort-awesome', 'fa-fort-awesome'), ('fa-forumbee', 'fa-forumbee'), ('fa-foursquare', 'fa-foursquare'), ('fa-free-code-camp', 'fa-free-code-camp'), ('fa-frown-o', 'fa-frown'), ('fa-futbol-o', 'fa-futbol'), ('fa-gbp', 'fa-pound-sign'), ('fa-gears', 'fa-cogs'), ('fa-gear', 'fa-cog'), ('fa-get-pocket', 'fa-get-pocket'), ('fa-ge', 'fa-empire'), ('fa-gg-circle', 'fa-gg-circle'), ('fa-gg', 'fa-gg'), ('fa-git-square', 'fa-git-square'), ('fa-github-alt', 'fa-github-alt'), ('fa-github-square', 'fa-github-square'), ('fa-github', 'fa-github'), ('fa-gitlab', 'fa-gitlab'), ('fa-gittip', 'fa-gratipay'), ('fa-git', 'fa-git'), ('fa-glass', 'fa-glass-martini'), ('fa-glide-g', 'fa-glide-g'), ('fa-glide', 'fa-glide'), ('fa-google-plus-circle', 'fa-google-plus'), ('fa-google-plus-official', 'fa-google-plus'), ('fa-google-plus-square', 'fa-google-plus-square'), ('fa-google-plus', 'fa-google-plus-g'), ('fa-google-wallet', 'fa-google-wallet'), ('fa-google', 'fa-google'), ('fa-gratipay', 'fa-gratipay'), ('fa-grav', 'fa-grav'), ('fa-group', 'fa-users'), ('fa-hacker-news', 'fa-hacker-news'), ('fa-hand-grab-o', 'fa-hand-rock'), ('fa-hand-lizard-o', 'fa-hand-lizard'), ('fa-hand-o-down', 'fa-hand-point-down'), ('fa-hand-o-left', 'fa-hand-point-left'), ('fa-hand-o-right', 'fa-hand-point-right'), ('fa-hand-o-up', 'fa-hand-point-up'), ('fa-hand-paper-o', 'fa-hand-paper'), ('fa-hand-peace-o', 'fa-hand-peace'), ('fa-hand-pointer-o', 'fa-hand-pointer'), ('fa-hand-rock-o', 'fa-hand-rock'), ('fa-hand-scissors-o', 'fa-hand-scissors'), ('fa-hand-spock-o', 'fa-hand-spock'), ('fa-hand-stop-o', 'fa-hand-paper'), ('fa-handshake-o', 'fa-handshake'), ('fa-hard-of-hearing', 'fa-deaf'), ('fa-hdd-o', 'fa-hdd'), ('fa-header', 'fa-heading'), ('fa-heart-o', 'fa-heart'), ('fa-hospital-o', 'fa-hospital'), ('fa-hotel', 'fa-bed'), ('fa-hourglass-1', 'fa-hourglass-start'), ('fa-hourglass-2', 'fa-hourglass-half'), ('fa-hourglass-3', 'fa-hourglass-end'), ('fa-hourglass-o', 'fa-hourglass'), ('fa-houzz', 'fa-houzz'), ('fa-html5', 'fa-html5'), ('fa-id-badge', 'fa-id-badge'), ('fa-id-card-o', 'fa-id-card'), ('fa-ils', 'fa-shekel-sign'), ('fa-image', 'fa-image'), ('fa-imdb', 'fa-imdb'), ('fa-inr', 'fa-rupee-sign'), ('fa-instagram', 'fa-instagram'), ('fa-institution', 'fa-university'), ('fa-internet-explorer', 'fa-internet-explorer'), ('fa-intersex', 'fa-transgender'), ('fa-ioxhost', 'fa-ioxhost'), ('fa-joomla', 'fa-joomla'), ('fa-jpy', 'fa-yen-sign'), ('fa-jsfiddle', 'fa-jsfiddle'), ('fa-keyboard-o', 'fa-keyboard'), ('fa-krw', 'fa-won-sign'), ('fa-lastfm-square', 'fa-lastfm-square'), ('fa-lastfm', 'fa-lastfm'), ('fa-leanpub', 'fa-leanpub'), ('fa-legal', 'fa-gavel'), ('fa-lemon-o', 'fa-lemon'), ('fa-level-down', 'fa-level-down-alt'), ('fa-level-up', 'fa-level-up-alt'), ('fa-life-bouy', 'fa-life-ring'), ('fa-life-buoy', 'fa-life-ring'), ('fa-life-ring', 'fa-life-ring'), ('fa-life-saver', 'fa-life-ring'), ('fa-lightbulb-o', 'fa-lightbulb'), ('fa-line-chart', 'fa-chart-line'), ('fa-linkedin-square', 'fa-linkedin'), ('fa-linkedin', 'fa-linkedin-in'), ('fa-linode', 'fa-linode'), ('fa-linux', 'fa-linux'), ('fa-list-alt', 'fa-list-alt'), ('fa-long-arrow-down', 'fa-long-arrow-alt-down'), ('fa-long-arrow-left', 'fa-long-arrow-alt-left'), ('fa-long-arrow-right', 'fa-long-arrow-alt-right'), ('fa-long-arrow-up', 'fa-long-arrow-alt-up'), ('fa-mail-forward', 'fa-share'), ('fa-mail-reply-all', 'fa-reply-all'), ('fa-mail-reply', 'fa-reply'), ('fa-map-marker', 'fa-map-marker-alt'), ('fa-map-o', 'fa-map'), ('fa-maxcdn', 'fa-maxcdn'), ('fa-meanpath', 'fa-font-awesome'), ('fa-medium', 'fa-medium'), ('fa-meetup', 'fa-meetup'), ('fa-meh-o', 'fa-meh'), ('fa-minus-square-o', 'fa-minus-square'), ('fa-mixcloud', 'fa-mixcloud'), ('fa-mobile-phone', 'fa-mobile-alt'), ('fa-mobile', 'fa-mobile-alt'), ('fa-modx', 'fa-modx'), ('fa-moon-o', 'fa-moon'), ('fa-money', 'fa-money-bill-alt'), ('fa-mortar-board', 'fa-graduation-cap'), ('fa-navicon', 'fa-bars'), ('fa-newspaper-o', 'fa-newspaper'), ('fa-object-group', 'fa-object-group'), ('fa-object-ungroup', 'fa-object-ungroup'), ('fa-odnoklassniki-square', 'fa-odnoklassniki-square'), ('fa-odnoklassniki', 'fa-odnoklassniki'), ('fa-opencart', 'fa-opencart'), ('fa-openid', 'fa-openid'), ('fa-opera', 'fa-opera'), ('fa-optin-monster', 'fa-optin-monster'), ('fa-pagelines', 'fa-pagelines'), ('fa-paper-plane-o', 'fa-paper-plane'), ('fa-paste', 'fa-clipboard'), ('fa-pause-circle-o', 'fa-pause-circle'), ('fa-paypal', 'fa-paypal'), ('fa-pencil-square', 'fa-pen-square'), ('fa-pencil-square-o', 'fa-edit'), ('fa-pencil', 'fa-pencil-alt'), ('fa-photo', 'fa-image'), ('fa-picture-o', 'fa-image'), ('fa-pie-chart', 'fa-chart-pie'), ('fa-pied-piper-alt', 'fa-pied-piper-alt'), ('fa-pied-piper-pp', 'fa-pied-piper-pp'), ('fa-pied-piper', 'fa-pied-piper'), ('fa-pinterest-p', 'fa-pinterest-p'), ('fa-pinterest-square', 'fa-pinterest-square'), ('fa-pinterest', 'fa-pinterest'), ('fa-play-circle-o', 'fa-play-circle'), ('fa-plus-square-o', 'fa-plus-square'), ('fa-product-hunt', 'fa-product-hunt'), ('fa-qq', 'fa-qq'), ('fa-question-circle-o', 'fa-question-circle'), ('fa-quora', 'fa-quora'), ('fa-ravelry', 'fa-ravelry'), ('fa-ra', 'fa-rebel'), ('fa-rebel', 'fa-rebel'), ('fa-reddit-alien', 'fa-reddit-alien'), ('fa-reddit-square', 'fa-reddit-square'), ('fa-reddit', 'fa-reddit'), ('fa-refresh', 'fa-sync'), ('fa-registered', 'fa-registered'), ('fa-remove', 'fa-times'), ('fa-renren', 'fa-renren'), ('fa-reorder', 'fa-bars'), ('fa-repeat', 'fa-redo'), ('fa-resistance', 'fa-rebel'), ('fa-rmb', 'fa-yen-sign'), ('fa-rotate-left', 'fa-undo'), ('fa-rotate-right', 'fa-redo'), ('fa-rouble', 'fa-ruble-sign'), ('fa-ruble', 'fa-ruble-sign'), ('fa-rub', 'fa-ruble-sign'), ('fa-rupee', 'fa-rupee-sign'), ('fa-s15', 'fa-bath'), ('fa-safari', 'fa-safari'), ('fa-scissors', 'fa-cut'), ('fa-scribd', 'fa-scribd'), ('fa-sellsy', 'fa-sellsy'), ('fa-send-o', 'fa-paper-plane'), ('fa-send', 'fa-paper-plane'), ('fa-share-square-o', 'fa-share-square'), ('fa-shekel', 'fa-shekel-sign'), ('fa-sheqel', 'fa-shekel-sign'), ('fa-shield', 'fa-shield-alt'), ('fa-shirtsinbulk', 'fa-shirtsinbulk'), ('fa-sign-in', 'fa-sign-in-alt'), ('fa-sign-out', 'fa-sign-out-alt'), ('fa-signing', 'fa-sign-language'), ('fa-simplybuilt', 'fa-simplybuilt'), ('fa-skyatlas', 'fa-skyatlas'), ('fa-skype', 'fa-skype'), ('fa-slack', 'fa-slack'), ('fa-sliders', 'fa-sliders-h'), ('fa-slideshare', 'fa-slideshare'), ('fa-smile-o', 'fa-smile'), ('fa-snapchat-ghost', 'fa-snapchat-ghost'), ('fa-snapchat-square', 'fa-snapchat-square'), ('fa-snapchat', 'fa-snapchat'), ('fa-snowflake-o', 'fa-snowflake'), ('fa-soccer-ball-o', 'fa-futbol'), ('fa-sort-alpha-asc', 'fa-sort-alpha-down'), ('fa-sort-alpha-desc', 'fa-sort-alpha-up'), ('fa-sort-amount-asc', 'fa-sort-amount-down'), ('fa-sort-amount-desc', 'fa-sort-amount-up'), ('fa-sort-asc', 'fa-sort-up'), ('fa-sort-desc', 'fa-sort-down'), ('fa-sort-numeric-asc', 'fa-sort-numeric-down'), ('fa-sort-numeric-desc', 'fa-sort-numeric-up'), ('fa-soundcloud', 'fa-soundcloud'), ('fa-spoon', 'fa-utensil-spoon'), ('fa-spotify', 'fa-spotify'), ('fa-square-o', 'fa-square'), ('fa-stack-exchange', 'fa-stack-exchange'), ('fa-stack-overflow', 'fa-stack-overflow'), ('fa-star-half-empty', 'fa-star-half'), ('fa-star-half-full', 'fa-star-half'), ('fa-star-half-o', 'fa-star-half'), ('fa-star-o', 'fa-star'), ('fa-steam-square', 'fa-steam-square'), ('fa-steam', 'fa-steam'), ('fa-sticky-note-o', 'fa-sticky-note'), ('fa-stop-circle-o', 'fa-stop-circle'), ('fa-stumbleupon-circle', 'fa-stumbleupon-circle'), ('fa-stumbleupon', 'fa-stumbleupon'), ('fa-sun-o', 'fa-sun'), ('fa-superpowers', 'fa-superpowers'), ('fa-support', 'fa-life-ring'), ('fa-tablet', 'fa-tablet-alt'), ('fa-tachometer', 'fa-tachometer-alt'), ('fa-telegram', 'fa-telegram'), ('fa-television', 'fa-tv'), ('fa-tencent-weibo', 'fa-tencent-weibo'), ('fa-themeisle', 'fa-themeisle'), ('fa-thermometer-0', 'fa-thermometer-empty'), ('fa-thermometer-1', 'fa-thermometer-quarter'), ('fa-thermometer-2', 'fa-thermometer-half'), ('fa-thermometer-3', 'fa-thermometer-three-quarters'), ('fa-thermometer-4', 'fa-thermometer-full'), ('fa-thermometer', 'fa-thermometer-full'), ('fa-thumb-tack', 'fa-thumbtack'), ('fa-thumbs-o-down', 'fa-thumbs-down'), ('fa-thumbs-o-up', 'fa-thumbs-up'), ('fa-ticket', 'fa-ticket-alt'), ('fa-times-circle-o', 'fa-times-circle'), ('fa-times-rectangle-o', 'fa-window-close'), ('fa-times-rectangle', 'fa-window-close'), ('fa-toggle-down', 'fa-caret-square-down'), ('fa-toggle-left', 'fa-caret-square-left'), ('fa-toggle-right', 'fa-caret-square-right'), ('fa-toggle-up', 'fa-caret-square-up'), ('fa-trash-o', 'fa-trash-alt'), ('fa-trash', 'fa-trash-alt'), ('fa-trello', 'fa-trello'), ('fa-tripadvisor', 'fa-tripadvisor'), ('fa-try', 'fa-lira-sign'), ('fa-tumblr-square', 'fa-tumblr-square'), ('fa-tumblr', 'fa-tumblr'), ('fa-turkish-lira', 'fa-lira-sign'), ('fa-twitch', 'fa-twitch'), ('fa-twitter-square', 'fa-twitter-square'), ('fa-twitter', 'fa-twitter'), ('fa-unsorted', 'fa-sort'), ('fa-usb', 'fa-usb'), ('fa-usd', 'fa-dollar-sign'), ('fa-user-circle-o', 'fa-user-circle'), ('fa-user-o', 'fa-user'), ('fa-vcard-o', 'fa-address-card'), ('fa-vcard', 'fa-address-card'), ('fa-viacoin', 'fa-viacoin'), ('fa-viadeo-square', 'fa-viadeo-square'), ('fa-viadeo', 'fa-viadeo'), ('fa-video-camera', 'fa-video'), ('fa-vimeo-square', 'fa-vimeo-square'), ('fa-vimeo', 'fa-vimeo-v'), ('fa-vine', 'fa-vine'), ('fa-vk', 'fa-vk'), ('fa-volume-control-phone', 'fa-phone-volume'), ('fa-warning', 'fa-exclamation-triangle'), ('fa-wechat', 'fa-weixin'), ('fa-weibo', 'fa-weibo'), ('fa-weixin', 'fa-weixin'), ('fa-whatsapp', 'fa-whatsapp'), ('fa-wheelchair-alt', 'fa-accessible-icon'), ('fa-wikipedia-w', 'fa-wikipedia-w'), ('fa-window-close-o', 'fa-window-close'), ('fa-window-maximize', 'fa-window-maximize'), ('fa-window-restore', 'fa-window-restore'), ('fa-windows', 'fa-windows'), ('fa-won', 'fa-won-sign'), ('fa-wordpress', 'fa-wordpress'), ('fa-wpbeginner', 'fa-wpbeginner'), ('fa-wpexplorer', 'fa-wpexplorer'), ('fa-wpforms', 'fa-wpforms'), ('fa-xing-square', 'fa-xing-square'), ('fa-xing', 'fa-xing'), ('fa-y-combinator-square', 'fa-hacker-news'), ('fa-y-combinator', 'fa-y-combinator'), ('fa-yahoo', 'fa-yahoo'), ('fa-yc', 'fa-y-combinator'), ('fa-yc-square', 'fa-hacker-news'), ('fa-yelp', 'fa-yelp'), ('fa-yen', 'fa-yen-sign'), ('fa-yoast', 'fa-yoast'), ('fa-youtube-play', 'fa-youtube'), ('fa-youtube-square', 'fa-youtube-square'), ('fa-youtube', 'fa-youtube'), ('fa-var-arrows-v', 'fa-var-arrows-alt-v'), ('fa-fa', 'fa-font-awesome') ] def upgrade(project_path, extensions, exclude_directories): for dname, dirs, files in os.walk(project_path): dirs[:] = [d for d in dirs if d not in exclude_directories] for fname in files: if(fname.lower().endswith(extensions)): fpath = os.path.join(dname, fname) print (fpath) s = open(fpath).read() for icon in findreplace: s = s.replace(icon[0]+'"', icon[1]+'"') s = s.replace(icon[0]+"'", icon[1]+"'") s = s.replace(icon[0]+" ", icon[1]+" ") # s = s.replace(icon[0], icon[1]) f = open(fpath, "w") f.write(s) print ("\nAbove files have been modified") project_path = os.getcwd() extensions = ('.html', 'js', '.tpl', '.less') exclude_directories = set(['test', 'build', 'logs']) upgrade(project_path, extensions, exclude_directories) Now we can ./nodebb build and check for errors. You may need to manually replace the older names with the new ones that you can find in variables.less Here's an example of an error: Error: NameError: variable @fa-var-arrows-v is undefined in /root/nodebb/node_modules/nodebb-plugin-composer-default/static/less/composer.less That is because in version 5 this icon is called fa-var-arrows-alt-v After a successful build you can start your forum. If you installed a free version of FA you may want to change the font-weight for .fa, otherwise, a lot of icons will be missing. You also need to set vertical-align to some elements (like categories) as the new icons are aligned differently. .fa { font-weight: 900; //experiment with this, some icons look better with the alignment, some don't vertical-align: -0.125em; }
  • Regarding notifications API

    8
    0 Votes
    8 Posts
    827 Views
    A
    anyone can help on this ? Thanks
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    6 Views
  • Importing Discourse JSON into NodeBB

    4
    0 Votes
    4 Posts
    667 Views
    julianJ
    @waugh Can you reach out to us at [email protected]? We handle Discourse imports and can probably help you out here.
  • Pass variables to Registration page

    1
    0 Votes
    1 Posts
    270 Views
    M
    Hi, Let say, I have a site (not a NodeBB site) and it has a newsletter form where users can subscribe by filling in their names & email addresses. After they hit submit, I'd like to redirect to the the forum site (Registration page). Is it possible to pass variables (eg: email address/username) to Registration page via query string? For example, https://community.nodebb.org/register?username=jack&[email protected] What I want to achieve is to since users have filled their information earlier, albeit on a different site, the Registration form should have a prefilled form (ie: name and email address). Thanks
  • 0 Votes
    2 Posts
    529 Views
    julianJ
    @mana this is a feature that is available by default in v1.15.0, so once we release that version everybody will be able to add the forum to their home screen
  • Error (reset password not work)

    9
    0 Votes
    9 Posts
    988 Views
    T
    @baris Thank you!
  • Hooking Up to Mail

    Solved
    25
    0 Votes
    25 Posts
    4k Views
    S
    @waugh said in Hooking Up to Mail: @julian Do you engage in a more intimate relationship with Haraka? Niche third party platforms would be far less likely. Postfix is built into nearly all production platforms and configured out of the box for most usages (standard SMTP relay.) His point was that they don't get their hands dirty with any specific email implementation and leave that for the admins, they just send email out on whatever protocol or API is selected and the rest is up to the email admin to configure.
  • ERR wrong number of arguments for 'zscore' command

    3
    0 Votes
    3 Posts
    464 Views
    barisB
    https://github.com/NodeBB/NodeBB/issues/8774