I haven’t been able to find an answer for this, so I’m hoping asking this here would be appropriate.

I’d like to try my hand at some development of Kbin but I don’t exactly know how to test a web application of this scale. Obviously, the roadblock for me is understanding how to develop and test features without having a dedicated domain name – as my understanding is that federated services heavily rely on the use of a domain name. This also would imply that the server has to be exposed to the internet, much like development of a email client.

But obviously I must be missing something here. Is there any recommended guidelines for setting up a development environment for Kbin? Ideally, a containerized approach via Docker or Podman would be ideal as I wouldn’t want to muck with my host system. Additionally, is it possible to use hostnames in order to simulate and test federation capabilities? Lastly, are there any thorough reads (blogs or forum posts) that go in depth with developing federated web applications and how the development process differs from standard webdev?

  • ryan@the.coolest.zone
    link
    fedilink
    arrow-up
    2
    ·
    10 months ago

    My development/testbed instance is hosted on its own Hetzner server via a separate subdomain of my existing domain. It does need to be exposed to the internet to test federation, and it does need a domain to my current understanding (in that I haven’t tried it with just an IP address). Email is a very good analogy, as the original well-known federated web communication tool. :)

    There is a way to install and run kbin via docker, that’s what I use for both my dev and prod setups.

    I would highly recommend familiarizing yourself with the ActivityPub spec to understand what you’re looking at, and try GETting a few comments, threads etc via Postman. ActivityPub, much like email, is peer to peer, account to account. An activity comes from one actor to another. So understanding kbin necessitates understanding things like “a magazine is also an actor” and “the reason threads and microblogs are different is because they have different activity types.”

    Once you’ve got a handle on that, the psql database will make a lot more sense when you explore it, and you can connect all the dots together. Even though I do not have more than a rudimentary grasp on PHP, with the current understanding of ActivityPub and the database I have I’m slowly putting all the pieces together. :)