[–] 2 points 1 month ago (1 child)

Matrix actually supports multimedia, GIFs, videos, and photos. The speed of downloading multimedia always depends on the internet connection, the available host machine, and the computational resources available to the host machine. This obviously applies to every hosted platform.

In terms of privacy, Matrix has encrypted rooms, which means that the actual messages, the actual text of the messages, will be encrypted and stored on the instance in encrypted form. The only way to decrypt that data is to use user keys, or client keys. So, in short, it is a more comprehensive security system. It can theoretically be compromised, but it would require more effort to do this. So, in terms of security, Matrix is really good. If your priority is to keep your friends and yourself safe, which I think should be the first priority, then Matrix is a very good solution if you eventually end up self-hosting.

Regarding other platforms, Mastodon actually supports hiding data and restricting some API calls in order to make the instance more closed. But on the other hand, the data is stored unencrypted. So if someone gets access to your machine, to your host machine, it will be pretty easy and simple to get and read all the data. Again, in comparison with Matrix, even if someone eventually gets access to your host machine and to the data, it will be another challenge to decipher the data they have.

Speaking about forums, another option is the NodeBB forum platform. It is also federated. It also allows you to hide the data from unregistered users. It can manage roles for users to make certain users see certain categories, so the management system is more comprehensive in this sense. It can also be federated, so categories are federated there. So, in some sense, you can have a federated closed forum using NodeBB.

There are also other platforms, for example, Hubzilla and Bonfire. They are more privacy-focused federated platforms. But as far as I understand, they are more like social platforms instead of forums or microblogging platforms. So they are more like Facebook in some sense. They have some specifics.

So, in general, I would recommend using Matrix if you end up self-hosting and if your main priority is security. Again, it supports multimedia. But if you still want a more forum-like platform, I would recommend using NodeBB, or taking a look at Hubzilla and Bonfire.

  • source
  • parent
  • context
  • [–] [S] 1 point 3 months ago

    Hey, super helpful comment.

    A few of the details you mentioned are exactly the kind of practical stuff I’m trying to collect, so I wanted to ask a bit more:

    • When you say you pushed federation workers up to 128, which exact setting are you referring to?
    • Roughly how big is your instance in practice — users, subscriptions, remote communities, storage size, daily activity?
    • What were the first signs that federation was falling behind, besides the Waiting for X workers log message?
    • Did increasing workers fully solve it, or did it just move the bottleneck somewhere else?
    • What kind of Postgres tuning ended up mattering most for you?
    • For backups, are you only doing weekly pg_dump + VPS backups, or also separately backing up pictrs, configs, secrets, and proxy setup?
    • Have you tested full restore end-to-end on another machine?
    • For pictrs growth, have you found any good way to keep storage under control, or is it mostly just “plan for it to grow”?
    • For monitoring/logging, if you were starting over, what would you set up from day one?

    I’m mostly interested in the boring operational side of running Lemmy long-term: backup/restore, federation lag, storage growth, and early warning signs before things get messy.

    Sorry if some of these questions are a bit basic or oddly specific — I’m using AI to help gather as much real-world Lemmy hosting experience as possible, and it generated most of these follow-up questions for me.

  • source
  • parent
  • context
  • [–] [S] 2 points 3 months ago* (1 child)

    Hey, this is really useful.

    I wanted to ask a few follow-ups, because the jump from 16 GB to 64 GB sounds pretty dramatic:

    • What kind of storage were you using when it was struggling — HDD, SSD, NVMe?
    • Did you only increase RAM, or did storage / CPU / other settings change too?
    • Roughly what kind of workload was this? Number of users, subscribed communities, amount of federated traffic, image-heavy browsing, etc.
    • Do you remember what the actual bottleneck looked like — high RAM use, swap, I/O wait, Postgres getting slow, pictrs, federation queue buildup?
    • When you say disabling image proxying helped, how much did it help in practice?
    • Was this on a recent Lemmy version, or a while back?

    I’m trying to separate “Lemmy really needs big hardware” from “a specific part of the stack was the real problem”.

    Sorry if some of these questions are a bit basic or oddly specific — I’m using AI to help gather as much real-world Lemmy hosting experience as possible, and it generated most of these follow-up questions for me.

  • source
  • parent
  • context
  • [–] [S] 1 point 3 months ago* (last edited 3 months ago) (1 child)

    Hey, thanks for sharing this.

    I’m trying to get a clearer picture of what a reliable Lemmy backup/restore setup looks like in practice, especially for self-hosting.

    A few things I’d be curious about in your setup:

    • Are your Proxmox backups enough on their own, or do you also make separate Postgres dumps?
    • Are you backing up the whole container/VM image, or do you also separately keep pictrs data, config files, secrets, reverse proxy config, etc.?
    • Have you actually tested a full restore from backup onto another machine? If yes, did it come back cleanly?
    • Do you do local-only backups, or also offsite copies?
    • When you update Lemmy, do you rely on rollback from snapshots if something breaks, or do you have another recovery path?

    Main thing I’m trying to understand is whether Proxmox-only backups are “good enough” operationally, or whether people still end up needing app-level backups too.

    Sorry if some of these questions are a bit basic or oddly specific — I’m using AI to help gather as much real-world Lemmy hosting experience as possible, and it generated most of these follow-up questions for me.

  • source
  • parent
  • context
  •  

    I’m considering starting a Lemmy instance with a limited federation model, and one of the things I’m thinking about from the start is how to support and maintain it as it grows, while spending as little attention as possible on the technical side of infrastructure management itself.

    Because of that, I’m especially interested in hearing from admins who host Lemmy instances, particularly larger ones. I’d like to understand what your actual workflow looks like in practice: how you organize administration, what methodologies you use, how you handle backups, data recovery, upgrades, monitoring, and infrastructure maintenance in general. I’m also interested in whether there are any best practices or operational patterns that have proven reliable over time.

    From what I’ve found so far, the official Lemmy documentation on backup and restore seems reasonably good for small instances, but as the instance grows, more nuances and complications appear. So ideally, I’d like to find or assemble something closer to a real guideline or runbook based on practices that are actually used by admins running larger instances.

    If you run or have run a Lemmy instance, especially one that had to scale beyond a small personal or experimental setup, I’d really appreciate hearing about your experience. Even brief notes, links to documentation, internal checklists, or descriptions of what has and hasn’t worked for you would be very useful.

    [–] [S] 1 point 4 months ago (1 child)

    Well, I assume there might be some technical or economic reasons why PeerTube developers haven't improved the situation with this problem. But they have already done a great job. My project is basically built on top of what they created. PeerTube provides the ability for anyone to host videos and share them in the Fediverse, which is the fundamental thing. I can't imagine how much effort and energy it takes to maintain this project. And all that exists and is still going based on charity and enthusiasm, I believe. At least my project for sure does :)) Developing such projects as Fediverse platforms is definitely not about making money. So we have to take this fact into account.

  • source
  • parent
  • context
  • [–] [S] 1 point 4 months ago (3 children)

    Thanks! Yes, I'm missing dark mode as well. Regarding the language filter, the simplest way is to make it filter by the language entry in the video's metadata. I will definitely take this into account, because there are a lot of videos in French, for example, which I don't understand completely :)) But it is interesting, though! YouTube forces content on users based on their IP location, and as far as I know there is no way to deal with it except to change your IP with a VPN. It would be pretty interesting to have an option to easily switch the content language and explore different videos from another language sphere. Also, it would be interesting to have an option to switch off the language filter completely and explore the content based on the topics more widely.

  • source
  • parent
  • context
  • PeerTube-Browser | Update (peertube-browser.com)
    submitted 4 months ago* (last edited 4 months ago) by to c/peertube@lemmy.world
     

    cross-posted from: https://lemmy.ml/post/44219906

    I’m still working on the PeerTube-Browser project and wanted to share a small update on what has been happening lately.

    Since the previous post I made several changes that are probably not very visible from the user side, but they are quite important from an architectural perspective.

    Engine and Client separation

    I split the system into two separate components: Engine and Client.

    The Engine is essentially a service that crawls data from PeerTube instances. It collects and indexes that data and exposes it through an open REST API.

    The Client then communicates with the Engine through this API to fetch the data and display it to the user.

    The idea behind this separation is to make the Engine something that can run more or less autonomously. In the long term it should be a service that you can just start and let it run without much moderation or manual intervention. At most it might require occasional moderation of things like instances or channels.

    So the Engine’s responsibility is simple: collect data, index it, and provide access to it.

    The Client’s responsibility is different: take that data and present it to users in a useful way.

    Because the Engine exposes a public API, it also opens the possibility for other integrations. In theory anyone could build their own front-end, client, or integration using the data the Engine provides. For example, someone could create a page on a PeerTube instance that shows videos only from that instance’s federation, or build alternative interfaces or tools on top of the same dataset.

    At the moment the API is still undocumented and evolving. The Client already communicates with the Engine through it, and technically anyone can query the Engine at:

    engine.peertube-browser.com

    There are a few endpoints available that return data, although they are still experimental and will likely change as the system develops. The plan is to gradually expand and stabilize this API so it becomes more flexible and useful for building additional tools, integrations, or alternative frontends.

    Current work

    Right now most of my work is focused on the development workflow, particularly how to work with AI agents inside the project.

    As the project has grown, I started running into some limitations and practical problems when using agents for development. Because of that, I’m currently designing a workflow that helps structure this process better.

    Part of this work also involves figuring out how to track and present development progress publicly on GitHub. I want to create a workflow that allows me to keep transparent records of development activity while also automating some repetitive parts of the process.

    The goal is to optimize how I interact with AI agents during development and make it easier to show progress publicly as new features are implemented.

    What’s next

    I already have a rough plan for the functionality that should eventually be implemented. For now I’ll keep moving forward step by step following that plan.

    Feedback from the previous post was very helpful, and I’m taking those comments and suggestions into account. If you have ideas, thoughts, or criticism — feel free to share them.

    Support

    At the moment the project is funded entirely by me. I’m building it not for personal use, but because I think it can be useful for others and because I genuinely enjoy working on it.

    Also, to be honest, working on something meaningful helps keep my mind occupied during the war here in Ukraine.

    If you find the project interesting or useful, and you want to support its development, I would really appreciate it. Seeing that people care about the project and use it is a huge motivation to continue working on it.

    You can support the project in two ways:

    • Patreon — for recurring support
    • Donatello — a Ukrainian service that allows one-time donations directly to my Ukrainian bank account

    Project's repo:

    https://github.com/denikryt/PeerTube-browser

    Any support, feedback, or ideas are very welcome.

    Thanks for reading.

    PeerTube-Browser | Update (peertube-browser.com)
    submitted 4 months ago* (last edited 4 months ago) by to c/peertube@lemmy.ml
     

    I’m still working on the PeerTube-Browser project and wanted to share a small update on what has been happening lately.

    Since the previous post I made several changes that are probably not very visible from the user side, but they are quite important from an architectural perspective.

    Engine and Client separation

    I split the system into two separate components: Engine and Client.

    The Engine is essentially a service that crawls data from PeerTube instances. It collects and indexes that data and exposes it through an open REST API.

    The Client then communicates with the Engine through this API to fetch the data and display it to the user.

    The idea behind this separation is to make the Engine something that can run more or less autonomously. In the long term it should be a service that you can just start and let it run without much moderation or manual intervention. At most it might require occasional moderation of things like instances or channels.

    So the Engine’s responsibility is simple: collect data, index it, and provide access to it.

    The Client’s responsibility is different: take that data and present it to users in a useful way.

    Because the Engine exposes a public API, it also opens the possibility for other integrations. In theory anyone could build their own front-end, client, or integration using the data the Engine provides. For example, someone could create a page on a PeerTube instance that shows videos only from that instance’s federation, or build alternative interfaces or tools on top of the same dataset.

    At the moment the API is still undocumented and evolving. The Client already communicates with the Engine through it, and technically anyone can query the Engine at:

    engine.peertube-browser.com

    There are a few endpoints available that return data, although they are still experimental and will likely change as the system develops. The plan is to gradually expand and stabilize this API so it becomes more flexible and useful for building additional tools, integrations, or alternative frontends.

    Current work

    Right now most of my work is focused on the development workflow, particularly how to work with AI agents inside the project.

    As the project has grown, I started running into some limitations and practical problems when using agents for development. Because of that, I’m currently designing a workflow that helps structure this process better.

    Part of this work also involves figuring out how to track and present development progress publicly on GitHub. I want to create a workflow that allows me to keep transparent records of development activity while also automating some repetitive parts of the process.

    The goal is to optimize how I interact with AI agents during development and make it easier to show progress publicly as new features are implemented.

    What’s next

    I already have a rough plan for the functionality that should eventually be implemented. For now I’ll keep moving forward step by step following that plan.

    Feedback from the previous post was very helpful, and I’m taking those comments and suggestions into account. If you have ideas, thoughts, or criticism — feel free to share them.

    Support

    At the moment the project is funded entirely by me. I’m building it not for personal use, but because I think it can be useful for others and because I genuinely enjoy working on it.

    Also, to be honest, working on something meaningful helps keep my mind occupied during the war here in Ukraine.

    If you find the project interesting or useful, and you want to support its development, I would really appreciate it. Seeing that people care about the project and use it is a huge motivation to continue working on it.

    You can support the project in two ways:

    • Patreon — for recurring support
    • Donatello — a Ukrainian service that allows one-time donations directly to my Ukrainian bank account

    Project's repo:

    https://github.com/denikryt/PeerTube-browser

    Any support, feedback, or ideas are very welcome.

    Thanks for reading.

     

    Hi there!

    Just wanted to share the first lesson of my Blender video course. It is in Ukrainian, so if you ever wanted to learn Blender and practice Ukrainian this is your bingo :))

    I’m going to post videos every week, there are 10 lessons in total. I will share them here as well.

    Thank you for your attention :)

    [–] [S] 3 points 5 months ago (1 child)

    Thank you for your feedback.

    At the moment, I am actively looking for income, as the financial situation and job market in my country are very difficult. I am trying to find ways to earn money. This project is something I genuinely enjoy working on and investing a lot of time in. It truly engages me. However, I have a significant issue: I do not have a stable income.

    The hosting problem can be partially managed for now. At the early development stage, I can run the service on my own workstation. The more substantial and harder-to-solve issue is funding both my personal living expenses and the ongoing development of this project.

    Hosting this service requires computational resources so that it can process and deliver information quickly. My current machine handles this reasonably well. However, renting an equivalent remote server with similar performance would be quite expensive. That is why hosting costs are not my top priority at the moment. My priority is earning money to sustain myself.

    I would be interested in exploring fundraising specifically for the development of this project, because it requires a great deal of time and effort. I am considering applying for a grant to fund the development, but there may be complications, especially given that I am a Ukrainian citizen currently living in Ukraine. I am not yet sure what specific difficulties might arise. And, of course, there is no guarantee that I would receive such a grant.

    Therefore, as an alternative, I would consider fundraising directly from interested users and the community to support development. Since you mentioned fundraising, I would like to ask how you feel about having an option to financially support the project’s development. Would you personally consider becoming a financial contributor? If so, what monthly amount would you potentially be willing to contribute?

    Regarding your points about benchmarking the recommendation system and curator-based feeds, I am not entirely sure I understood what you meant. Could you please clarify?

  • source
  • parent
  • context
  • PeerTube-Browser (peertube-browser.com)
    submitted 5 months ago* (last edited 5 months ago) by to c/peertube@lemmy.ml
     

    I’ve built a project called PeerTube Browser — a platform that aggregates videos from (almost) all PeerTube instances into a single interface.

    The main idea is simple: improve discovery across the federated network. PeerTube is powerful, but finding interesting content across instances is still difficult. This project indexes videos and provides a custom recommendation system that I designed and implemented myself. It’s still evolving, but it already allows exploring content beyond a single instance’s local or federated feed.

    At the moment, data is collected via a crawler and the public PeerTube APIs. Instances are filtered using the public whitelist from joinpeertube.org, plus several manual blocks to exclude unwanted content (pornography and other low‑quality or abusive material). The filtering approach is pragmatic and still evolving.

    The project is still at an early stage.

    The recommendation system is based on embedding vectors, ANN (approximate nearest neighbor) search, and user likes. All recommendation logic is executed server‑side. User likes are currently stored locally in the browser (localStorage), which allows generating personalized results without requiring account registration.

    In the future, I plan to make the recommendation system user‑configurable — allowing people to influence how results are ranked and what signals are prioritized. One of the core goals is to implement direct ActivityPub support, so the system can receive up‑to‑date data from instances in a more native and federated way, instead of relying primarily on crawling wherever possible.

    My goal is twofold:

    • Help viewers discover videos they wouldn’t normally encounter. • Help creators improve visibility and overall discovery within the PeerTube ecosystem.

    I have many ideas about how this system could evolve — especially around ranking, recommendation logic, and improving cross‑instance discovery — but before pushing further, I would really value feedback from people who actually use PeerTube.

    If you’re interested, you can try it here:

    https://peertube-browser.com/

    Please test it and share your thoughts. What works? What feels wrong? What would make it genuinely useful for you?

    Important note: the service is currently hosted on my personal workstation. I live in Ukraine, and due to electricity instability and the fact that I sometimes power down my machine, the site may occasionally be unavailable. At the moment I don’t have the resources to host it on a VPS or dedicated server.

    Despite these limitations, I’m committed to developing the project further — especially if there’s real interest and constructive feedback from the community.

    The project is open source. Repository:

    https://github.com/denikryt/PeerTube-browser

    For discussions, feature proposals, and deeper technical feedback, it would be most convenient for me to communicate via GitHub Discussions:

    https://github.com/denikryt/PeerTube-browser/discussions

    I invite anyone interested in the project to join the discussion there.

    Thanks to anyone willing to test it and share their perspective.