Most of our members won't open the forum every day. An email when someone replies to them or mentions them would bring them back to the discussion.
+1. A daily or weekly digest would be great too, for people who don't want an email per reply.
Every topic, category, tag and profile page is rendered on the server, so the full text is in the HTML. On top of that:
- canonical URLs, Open Graph tags and
DiscussionForumPostingstructured data on topics /sitemap.xml, and RSS at/latest.rssand/top.rssrobots.txtthat keeps private pages out?page=links on lists and long topics that crawlers can follow- a topic URL with an old slug redirects to the current one
Set site_url on the Site Settings page, so that canonical URLs and the sitemap use your domain.
Yes, all of it is on Admin → Site Settings → Branding:
- logo and favicon
- brand, accent and header colors, each with a dark-mode variant
- fonts
- header links (
Label,URL|Label,URL) - the homepage banner: title, text, image and whether it shows the search box
- custom CSS for anything else
This demo uses the logo, the banner and the header links. Changes on that page apply right away.
@lena_h three ways:
- On Admin → Users, open the user and turn on admin or moderator.
- Put their user names in
adminsinconf/app.local.conf(comma-separated). - Admins of the Casdoor organization are forum admins automatically.
Moderators handle the review queue and flags and can close, pin, archive and move topics; admins can also change site settings, categories and users.
Turn on trustProxyHeader = true in conf/app.local.conf, so that Casnode takes the client IP from X-Forwarded-For, and make sure Nginx sets it:
location / {
proxy_pass http://127.0.0.1:16900;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Only proxy to httpport. The Next.js server on httpport + 1 listens on 127.0.0.1 and gets its requests through the Go backend.
Leave trustProxyHeader off when nothing is in front of Casnode, otherwise anyone could pick their own IP with that header.
