Skip to content
  • 7 Votes
    170 Posts
    5k Views
    silverpill@mitra.socialS
    @erincandescent @trwnh @evan @jenniferplusplus @mikedev @scott @julian @trwnhThe name of the property could be different, but I think it is useful to have two collections:- "Thread" is easier to implement, and in any case, software needs to keep track of reply trees, one way or another.- "Context" is a bonus. It contains everything related to a conversation, including reactions and edits. Some applications may not need it, and for some it might be difficult to implement, so it should be optional.My estimation is that implementation of "Context" + "Thread" will require roughly the same amount of effort as implementation of "Context" alone, so for those who want "Context" this separation should not be a problem. If software doesn't keep track of activities it can provide empty "Context", but their Add activities should nevertheless have it in target. Perhaps in the following form:"target": { "type": "Context", "id": "<context-collection>", "attributedTo": "<conversation-owner>", "thread": "<thread-collection>" }
  • I can't Upload a file to a specific post via API

    Unsolved Technical Support
    3
    1 Votes
    3 Posts
    275 Views
    C
    @julian hey, i am trying to use upload file api but i am not able consume it. It says forbidden 403 but is working fine in postman. What could be the reason. Thank you so much for your efforts
  • socket io 403 forbidden coming after recent upgrade

    Bug Reports
    3
    0 Votes
    3 Posts
    131 Views
    ZCheng0813Z
    @faizanzahid Hello, I also encountered a similar problem, may I ask if the problem has been solved
  • about 4.0

    General Discussion
    2
    0 Votes
    2 Posts
    115 Views
    julianJ
    @huige Right now this site and https://community.openbeta.io are both running v4.
  • What are NodeBB minimum requirements?

    Unsolved Technical Support
    5
    0 Votes
    5 Posts
    131 Views
    B-738B
    Upgrade MongoDB from 7.014 to 8.X all perfect and faster! So now I use : Vultr Cloud Compute OS FreeBSD 14.1 DataBase MongoDB 8.0 NodeJS v20.10.X NPM last one PM2 Best proxy SSL server Caddy GoLang tech-с: EG328-RIPE
  • Real-time posting (socket) improvements

    Feature Requests
    4
    0 Votes
    4 Posts
    120 Views
    barisB
    It looks like this and yeah it is for registered users. [image: 1730513433494-11b8f777-e10c-49ec-b70d-2912e8029ad3-image.png]
  • 0 Votes
    4 Posts
    118 Views
    K
    @julian When recording a large file, the disk is used. The file is first downloaded to the disk, and then written to the storage. During recording, you can see how the disk space is decreasing. After writing to the storage, free space is returned. I have very little space on my VDS. Is there any way to make the file be written in pieces through a buffer in memory?
  • Cover photo / Profile photo not changing on upload

    Technical Support
    7
    0 Votes
    7 Posts
    595 Views
    J
    @baris said in Cover photo / Profile photo not changing on upload: Seems to be hard coded here. Which file type are you uploading? Have not had time to look into it and modify, but yeah just was noticing since jpg listed but jpeg wasnt on that file extension list so it wouldnt show the image in the folder.
  • 0 Votes
    2 Posts
    66 Views
    barisB
    You should be able to overwrite a core module completely using your plugins modules section. For example to overwrite the navigator module with your own you can do. "modules": { "navigator": "public/navigator.js" }, Copy the navigator module from core and make your changes and it will replace the core module during build.
  • nodebb-plugin-emailer-sendgrid not sending emails

    Unsolved Technical Support
    5
    0 Votes
    5 Posts
    145 Views
    R
    You shouldn't need SMTP for the sendgrid mailer. It uses the sendgrid API to send mail messages, and optionally, allows for an inbound webhook to receive messages. Have you looked at the activity logs in the sendgrid console to verify that your requests are being handled? If needed, you can add a console log to the Emailer.send method in the nodebb-plugin-emailer-sendgrid index.js file if you want to debug the message handling.
  • nodebb-plugin-reactions slow after selecting

    Moved Technical Support
    15
    0 Votes
    15 Posts
    360 Views
    phenomlabP
    @julian yes. Seems they are being called even if not actually requested.
  • 0 Votes
    1 Posts
    73 Views
    루루
    Hello, as the title says, how do I calculate the total size of files in use in nodebb? I'm trying to use a CDN like s3, but when I searched, I found that I had to read all objects in the bucket and calculate the file size like this. Is there no other way to find out the total size of files in use in nodebb? https://stackoverflow.com/questions/32192391/how-do-i-find-the-total-size-of-my-aws-s3-storage-bucket-or-folder
  • Tags for posts in addition to topics

    Feature Requests
    21
    3 Votes
    21 Posts
    4k Views
    D
    today, i get same problem.
  • Raw file downloads

    Solved Technical Support
    3
    0 Votes
    3 Posts
    87 Views
    D
    @julian Thanks for the reply. I was able to solve it quickly adding it. For anyone in the future, hosting nodebb on a windows server, may also have the same problem. This is how I fixed it <outboundRules> <rule name="ForceFileDownload" preCondition="IsXMLorJSON"> <match serverVariable="RESPONSE_Content-Disposition" pattern=".*" /> <action type="Rewrite" value="attachment; filename={R:0}" /> </rule> <preConditions> <preCondition name="IsXMLorJSON"> <add input="{URL}" pattern="\.xml$|\.json$" /> <add input="{URL}" pattern="^/assets/uploads/" /> </preCondition> </preConditions> </outboundRules>
  • NodeBB Sidebar & Header

    Solved Technical Support
    12
    0 Votes
    12 Posts
    165 Views
    D
    @baris I appreciate that, and quick fix. Thank you again. Aside from that. I am actually really enjoying nodebb. I am running it alongside plesk, with 4 other websites which run php, no interferenance with anything and runs a dream. Definitely way easier to use and understand then mybb
  • 2 Votes
    5 Posts
    106 Views
    trwnh@mastodon.socialT
    @julian @thisismissem @silverpill which is to say: audience is what decides which objects you are even *aware* of, before you even get around to grouping them logically.in a centralized system you would query for all objects in the database where the context was what you wanted, and where the audience included you.in a decentralized system you work off of what’s in your inbox, and “follow your nose” to the context, which may have its own audience.
  • Hiring: Someone who can make NodeBB Themes

    General Discussion
    3
    0 Votes
    3 Posts
    129 Views
    P kmyP
    @julian Mail sent. Thank you for replying to this post.
  • Issue after issue while trying to import IPB to NodeBB

    Unsolved Technical Support
    3
    0 Votes
    3 Posts
    150 Views
    julianJ
    @nachoshenko importing a forum is something that is quite difficult since as you can imagine, the data structures don't match up 1:1. Any chance you would be willing to put forward some budget to make this happen? If you contact us at [email protected] I think we could arrange something with an interested third-party who would build a migration solution for you.
  • 0 Votes
    1 Posts
    80 Views
    D
    in this file: src/controllers/uploads.js:154 uploadsController.uploadFile = async function (uid, uploadedFile) { if (plugins.hooks.hasListeners('filter:uploadFile')) { return await plugins.hooks.fire('filter:uploadFile', { file: uploadedFile, uid: uid, folder: 'files', }); } if (!uploadedFile) { throw new Error('[[error:invalid-file]]'); } const isAdmin = await user.isAdministrator(uid); if (!isAdmin && uploadedFile.size > meta.config.maximumFileSize * 1024) { throw new Error(`[[error:file-too-big, ${meta.config.maximumFileSize}]]`); } const allowed = file.allowedExtensions(); const extension = path.extname(uploadedFile.name).toLowerCase(); if (allowed.length > 0 && (!extension || extension === '.' || !allowed.includes(extension))) { throw new Error(`[[error:invalid-file-type, ${allowed.join('&#44; ')}]]`); } const currentDate = new Date(); const year = currentDate.getFullYear() + ''; const month = String(currentDate.getMonth() + 1).padStart(2, '0') + ''; const date = String(currentDate.getDate()).padStart(2, '0') + ''; const random = Math.random().toString(36).substring(2, 4); const dirPath = path.join('files', year, month, date, random); return await saveFileToLocal(uid, dirPath, uploadedFile); }; i thinks this is good for files manager
  • config.relative_path isn't set

    Solved Technical Support
    5
    0 Votes
    5 Posts
    125 Views
    D
    Would it be possible to add a line calling that out explicitly in https://docs.nodebb.org/configuring/config to make it obvious to stupid people like me?