IMHO you should open a bug report, as HTML tags should be stripped before going in the email subject.
I can't help because my forum is a ghost town and I very rarely get email notifications, never saw this problem
IMHO you should open a bug report, as HTML tags should be stripped before going in the email subject.
I can't help because my forum is a ghost town and I very rarely get email notifications, never saw this problem
On PC I paste images in the textbox but on mobile, specifically on Android, you can't copy images in the clipboard, so how to post images? Must tell the users to host images in a 3rd party site like imgur and add it manually via markdown?
Edit: sorry just found it, the upload button is the last button of the toolbar
I was able to upload images by pressing that button
I confirm that I am not able to reproduce the issue anymore, thanks.
Yes, they were writing in the about me. Pretty invisible to moderators, was discovered by accident because one of those was posting useless replies and was wondering "who's with this user?"
I enabled reputation to post that, i did not notice, thank you all for the hints
I wanted to edit this post, which contains an HTML form in a code block, but looks like it's rendered in the edit panel, so it is hard to understand what's going on
Screenshot:
Seems weird, it should not be rendered, right?
Forgot to mention that if i open that URL from the browser window I get the expected result in the JSON, the response contains
"isAdmin": true,
"isLoggedIn": true,
It looks like if the browser does the request in the page via the javascript, could not access the cookies and so it gets a "logged out" json (but i tested on clean ms edge with no cookie blocking)
Ps: i could not edit the other post because of a weird issue, I'm going to open another post to ask if this is intended behavior
Hi, i read all the posts on this topic and everyone is only talking about wordpress or ghost integration. Does the generic php version work?
I get "Commenting is disabled" on posts, even if i'm currently signed in to the forum as admin.
Besides the problems with CORS (browsers blocked the request and i took hours to find the right headers to let it work, as "accept origin *" is no more supported and it only accepts a single domain), I can't get it work.
This is the json generated by the php code:
articleID = "ID"; #i hardcoded this to ID for testing purposes, but change to a md5 hash it did not change the result
var articleData ={
"title_plain":"post title",
"url":"https:\/\/www.example.com\/posts\/2023-04-23-test\/",
"markDownContent":"post summary" #tags and category were omitted in my latest test, it did not change the result when they were present
};
so the javascript then does a request to https://forum.otherdomain.com/comments/get/ID/0
and the content of that request is:
{
"posts": [],
"postCount": 0,
"user": {
"uid": 0,
"username": "[[global:guest]]",
"displayname": "[[global:guest]]",
"userslug": "",
"fullname": "[[global:guest]]",
"email": "",
"icon:text": "?",
"icon:bgColor": "#aaa",
"groupTitle": "",
"groupTitleArray": [],
"status": "offline",
"reputation": 0,
"email:confirmed": 0
},
"template": "<!-- IF tid -->\n\t<!-- IF atTop -->\n\t\t<div class=\"topic-profile-pic user\">\n\t\t\t<!-- IF isLoggedIn -->\n\t\t\t<img src=\"{user.picture}\" class=\"profile-image\" />\n\t\t\t<!-- ELSE -->\n\t\t\t<img src=\"https://1.gravatar.com/avatar/177d180983be7a2c95a4dbe7451abeba?s=95&d=&r=PG\" class=\"profile-image\" />\n\t\t\t<!-- ENDIF isLoggedIn -->\n\t\t</div>\n\t\t<form action=\"{relative_path}/comments/reply\" method=\"post\">\n\t\t\t<textarea id=\"nodebb-content\" class=\"form-control\" name=\"content\" placeholder=\"Join the conversation\" rows=\"3\"></textarea>\n\t\t<!-- IF isLoggedIn -->\n\t\t\t<small>Signed in as <strong>{user.username}</strong>. <strong id=\"nodebb-error\"></strong></small>\n\t\t\t<button class=\"btn btn-primary\">Post a Reply</button>\n\t\t\t<input type=\"hidden\" name=\"_csrf\" value=\"{token}\" />\n\t\t\t<input type=\"hidden\" name=\"tid\" value=\"{tid}\" />\n\t\t\t<input type=\"hidden\" name=\"url\" value=\"{redirect_url}\" />\n\t\t</form>\n\t\t<!-- ELSE -->\n\t\t</form>\n\t\t<button class=\"btn btn-primary\" id=\"nodebb-register\">Register</button>\n\t\t<button class=\"btn btn-primary\" id=\"nodebb-login\">Login</button>\n\t\t<br />\n\t\t<!-- ENDIF isLoggedIn -->\n\t<!-- ENDIF atTop -->\n\n\t<ul id=\"nodebb-comments-list\">\n\t\t<!-- BEGIN posts -->\n\t\t<li <!-- IF pagination --> class=\"nodebb-post-fadein\" <!-- ENDIF pagination --> <!-- IF !posts.index --> class=\"nodebb-post-fadein\" <!-- ENDIF !posts.index --> >\n\t\t\t<div class=\"topic-item\">\n\t\t\t\t<div class=\"topic-body\">\n\t\t\t\t\t<div class=\"topic-profile-pic\">\n\t\t\t\t\t\t<a href=\"{relative_path}/user/{user.userslug}\">\n\t\t\t\t\t\t\t<!-- IF user.picture -->\n\t\t\t\t\t\t\t<img src=\"{user.picture}\" alt=\"{user.username}\" class=\"profile-image\" title=\"{user.username}\">\n\t\t\t\t\t\t\t<!-- ELSE -->\n\t\t\t\t\t\t\t<div class=\"profile-image\" style=\"background-color: {user.icon:bgColor}\" title=\"{user.username}\" alt=\"{user.username}\">{user.icon:text}</div>\n\t\t\t\t\t\t\t<!-- ENDIF user.picture -->\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"topic-text\">\n\t\t\t\t\t\t<div class=\"post-content\" itemprop=\"text\"><small><strong>{user.username}</strong> commented {posts.timestamp}</small><br />{posts.content}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</li>\n\t\t<!-- END posts -->\n\t</ul>\n\t<br />\n\n\t<!-- IF atBottom -->\n\t\t<div class=\"topic-profile-pic user\">\n\t\t\t<!-- IF isLoggedIn -->\n\t\t\t<img src=\"{user.picture}\" class=\"profile-image\" />\n\t\t\t<!-- ELSE -->\n\t\t\t<img src=\"http://1.gravatar.com/avatar/177d180983be7a2c95a4dbe7451abeba?s=95&d=&r=PG\" class=\"profile-image\" />\n\t\t\t<!-- ENDIF isLoggedIn -->\n\t\t</div>\n\t\t<form action=\"{relative_path}/comments/reply\" method=\"post\">\n\t\t\t<textarea id=\"nodebb-content\" class=\"form-control\" name=\"content\" placeholder=\"Join the conversation\" rows=\"3\"></textarea>\n\t\t<!-- IF isLoggedIn -->\n\t\t\t<small>Signed in as <strong>{user.username}</strong>. <strong id=\"nodebb-error\"></strong></small>\n\t\t\t<button class=\"btn btn-primary\">Post a Reply</button>\n\t\t\t<input type=\"hidden\" name=\"_csrf\" value=\"{token}\" />\n\t\t\t<input type=\"hidden\" name=\"tid\" value=\"{tid}\" />\n\t\t\t<input type=\"hidden\" name=\"url\" value=\"{redirect_url}\" />\n\t\t</form>\n\t\t<!-- ELSE -->\n\t\t</form>\n\t\t<button class=\"btn btn-primary\" id=\"nodebb-register\">Register</button>\n\t\t<button class=\"btn btn-primary\" id=\"nodebb-login\">Login</button>\n\t\t<br />\n\t\t<!-- ENDIF isLoggedIn -->\n\t<!-- ENDIF atBottom -->\n\n\t<small class=\"nodebb-copyright\">Powered by <a href=\"http://nodebb.org\" target=\"_blank\">NodeBB</a> • <a href=\"{relative_path}/topic/{tid}\">View original thread</a></small>\n\t<button class=\"btn btn-primary\" <!-- IF !posts.length -->style=\"display: none\"<!-- ENDIF !posts.length --> id=\"nodebb-load-more\">Load more comments...</button>\n<!-- ELSE -->\n\tCommenting has been disabled.\n\t<!-- IF isAdmin -->\n\t<form action=\"{relative_path}/comments/publish\" method=\"post\">\n\t\t<button class=\"btn btn-primary\">Publish this article to NodeBB</button>\n\t\t<input type=\"hidden\" name=\"markdown\" id=\"nodebb-content-markdown\" />\n\t\t<input type=\"hidden\" name=\"title\" id=\"nodebb-content-title\" />\n\t\t<input type=\"hidden\" name=\"cid\" id=\"nodebb-content-cid\" />\n\t\t<input type=\"hidden\" name=\"tags\" id=\"nodebb-content-tags\" />\n\t\t<input type=\"hidden\" name=\"id\" value=\"{article_id}\" />\n\t\t<input type=\"hidden\" name=\"url\" value=\"{redirect_url}\" />\n\t\t<input type=\"hidden\" name=\"_csrf\" value=\"{token}\" />\n\t</form>\n\t<!-- ENDIF isAdmin -->\n<!-- ENDIF tid -->\n",
"token": "XXXXX",
"isAdmin": false,
"isLoggedIn": false,
"tid": null,
"category": null,
"mainPost": null,
"atTop": true,
"atBottom": false
}
and it only shows "Commenting is disabled".
Console log does not show any other error (there were many errors until i fixed the CORS header issue on the proxy server)
Maybe on modern browsers this kind of cross domain communication is forbidden? Meaning the forum should be on the same domain?
Looks like I also misconfigured the proxy server, /assets was pointing to an empty directory (it used to work until i moved it forgetting it was mentioned there)
Ah right, i had a script to build & run at the vm start (it's in a lxc dedicated vm) and i didn't see the errors
It says:
Error: Error: Can't find stylesheet to import.
â•·
1 │ @import "admin/overrides";
│ ^^^^^^^^^^^^^^^^^
╵
- 1:9 root stylesheet
at handleCompileResponse (/usr/src/app/node_modules/sass-embedded/dist/lib/src/compile.js:236:15)
at compileRequestAsync (/usr/src/app/node_modules/sass-embedded/dist/lib/src/compile.js:118:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Object.buildCSS (/usr/src/app/src/meta/minifier.js:163:22)
at async process.<anonymous> (/usr/src/app/src/meta/minifier.js:117:20)
ERROR in ./build/public/src/admin/admin.js 85:2-33
Module not found: Error: Can't resolve 'material-design-lite' in '/usr/src/app/build/public/src/admin'
uhhhh i should have noticed this... i have a script at boot that download the latest from github but then deletes public and replaces with my backup... so it's my fault
thanks for the nodebb build hint, sorry i'm inexperienced but i wanted to automate too much....
I had five instances of different users assholes in my forum coming, registering, making a few posts to look authentic, then disappearing for a few months, and then finally coming back and putting SEO spam in their profile. The extremely extensive viagra pill irritating SEO spam. Now, I already noticed that it's as "nofollow" but those are that kind of idiots are thinking "google is considering SEO spam with nofollow links as valid".
Because they're humans, they approve the confirmation link in the email, they post something that makes sense, and they wait a moment because posting the SEO spam in their profile - a moderator can't see easily what they're doing.
I already IP banned that entire country (for my instance, users from that country are 100% spam and 0% legit), but maybe could be a good idea to have an option in the settings to disallow links altogether.
What do you think?
Tried from two different browsers, but it doesn't load the CSS.
From the dev tools console I see it's failing to load assets/plugins/nodebb-plugin-markdown/styles/default.css and assets/plugins/nodebb-plugin-emoji/emoji/styles.css
I also get this other error:
Uncaught (in promise) TypeError: Cannot read properties of null (reading 'classList')
at new u (29933.1d011fada691fdad41a3.min.js:1:2360)
at admin.min.js?v=ajp8su09t30:1:15868
at admin.min.js?v=ajp8su09t30:1:16523
As end result I see this:
From the user point of view instead everything is fine
What can I do?
Hi, I switched from docker install to normal install and I wonder if i can automate updates because I will 100% forget to apply them in the long term
I tried to create a script to run once a month to do this:
delete everything except config.json
, packages.json
and uploads
get latest source for the 3.x branch from github
run ./nodebb upgrade
as node user, then start it
but then I noticed that ./nodebb upgrade
can ask "do you want to upgrade this plugin Y/N?", and so it can't be run attended in a script
I checked in the help and I did not see a command to make it unattended, so I resorted to just run it as ./nodebb upgrade -mib && ./nodebb start
, which looks like it does not ask questions
What do you think?
instead, upgrading from docker image: ghcr.io/nodebb/nodebb:2.8
to image: ghcr.io/nodebb/nodebb:3.0
I get this: ENOENT: no such file or directory, open '/usr/src/app/node_modules/csurf/package.json'
edit: switched to normal install and I don't get this error anymore
@julian said in Now publishing images to GitHub Container Registry + Registry migration FAQ:
ghcr.io/NodeBB/NodeBB (case insensitive)
thanks, just changed the repository, but i got error from docker compose, it told me it must be all lowercase (not case insensitive)
Hello, i'm still playing with the install. Over the weekend i installed many plugins for testing and configured them in docker, today the proxy was saying error 502 so i rebuilt the docker. All the plugins are gone. If i understand right, this is by design, because the docker contents are volatile except the database (and the uploads, because i mirror them outside the container)
If i switch to the native install, when i upgrade, they will be installed again automatically?
it's just, in general, i can move docker containers with ease on a new server, that's the biggest advantage for me, especially when things start to go outside the project directory (systemd conf files, the nginx conf files, and so on)
wait, if i type ./nodebb start
it takes care by itself to stay in memory and i don't need to rely on ugly hacks like screen
?
Hello, I am quite a newbie, playing with nodebb.
I don't understand how to run node.js standalone in a way that can be considered stable, so I run the docker image. Now, because of my inexperience I don't trust docker volumes at all, so I redirect directories. What I do in case of updates is: I delete everything, pull new image, replace files. What I am doing:
/usr/src/app/config.json
/usr/src/app/public/uploads
then after pulling fresh image, replace them.
Because if I replace /usr/src/app
or /usr/src/app/public
I would have outdated program files, right?
What do you think?
They say "Less than 2% of Docker users have a Free Team organization on their account."
of course, everyone has a free account just to download images...