2025:Q3 Agenda 📆

Planning

:globe_with_meridians: Platform overview

As a quick reminder, eom.dev is a suite of free, open source, and self-hosted services deployed to a Kubernetes cluster running on a Dell PowerEdge T640 with Debian OS. The source code for its deployment is available on Gitea:

This platform was inspired by the ones I saw working as a software engineer, and was designed to implement the same infrastructure for communications and engineering one would see at a large corporation. At present, this repository is tailored to my platform’s bespoke needs; however, it could be adapted to be more useful for a general audience. Most people today only ever interact with computers as clients, but is this due to a lack of interest of a lack of accessibility? I wonder if self-hosted services would be more common if a product able to do so out of the box was available for purchase.

:black_joker: WikiDeck

Perhaps due in part to my failure to explain ubiquitous self-hosting as a goal of this platform, I have seen more engagement from my YouTube audience on projects such as WikiDeck:

Two users, @deus and Zevorin, have reached out seeking project experience. Given this platform is modeled after a software company, it is an excellent place to provide such experience, and I intend to focus more on this in Q3. You are invited to reach out on Discourse or Matrix, let me know your interests and coding background, and I will give you a role on the project. You will be working on an open source project using industry-standard tools that can be added to a resume. I am even happy to write references for those who are regularly involved.

Conformity

One of the great things about hosting your own services is that you can do whatever you want; however, in terms of collaborating on a project, it is important to conform to project standards in order to streamline workflows. It is not feasible for me to maintain conversations and code reviews across all the different platforms people might use. On eom.dev we use Gitea, Discourse, and Matrix. I sometimes respond to YouTube comments, but my attention is primarily on the aforementioned services.

Collaboration

I intend to provide one-on-one instruction where needed, but my limited capacity necessitates the use of public channels for questions and comments. The #wikideck category on Discourse and Matrix room are the best places to reach out. The goal here is to build a community, so please use the search features and help answer one another’s questions!

Monetization

At the time of writing, I manage this platform by myself while also working full-time as a software engineer. As such, the platform receives a limited amount of my attention. If this platform were to provide me sufficient income, then it would receive my full attention. To this end, I intend to focus on platform monetization in Q3. This will primarily take the form of Discourse subscriptions (a paid monthly membership on the platform). Given that my audience is often seeking this information for the purpose of acquiring a job, it is not my intention to put information behind a paywall. In terms of project collaboration and instruction, free members should receive the same treatment as paid members; however, I would be able to give the whole platform more attention with the help of paid memberships. I also intend to document the process of establishing eom.dev as a true business here on Discourse.

:pick: Luanti

Finally, I intend to start Season II of the Luanti server in the next couple of weeks. I will post more details in the Season I Megathread when they are ready. For those who are not yet familiar with the game, this is an excellent opportunity to join an established group of players in a fresh world:

2 Likes

Mobile Live-Stream Testing :video_camera:

This video demonstrates remote live-streaming using open source software and self-hosted services. This was my first attempt at doing so and the results are fairly rough as a result: the video suffers from fairly severe shaking as I walk through downtown Raleigh and the stream ends abruptly as my camera runs out of battery. The audio quality was actually better than I had expected, though a lavaliere microphone would probably improve the setup.

I should note that the video recording is not an accurate representation of what was see by stream viewers. I know the connection was lost at least once while I was in the hallway, but otherwise I had little insight into the actual stream performance.

Hardware :computer:

Latitude 7230

The Dell Latitude 7230 is an IPx65 rated 2-in-1 laptop/tablet designed for use in outdoor environments. My machine is running Debian Linux and includes builtin mobile broadband, which is what enables me to stream from OBS to Owncast while exploring downtown Raleigh.

I have a lot to say about this and other devices that I use regularly and with bespoke configurations. At some point, I would like to create a Discourse category for discussing personal devices with an emphasis on adapting proprietary products to an open source ecosystem.

EOS R6 Mark II

https://www.usa.canon.com/shop/p/eos-r6-mark-ii

The second part of this setup is a Canon EOS R6 Mark II mirrorless camera. While the Latitude has builtin front and rear-facing cameras, the IPU6 interface created by Intel is not yet supported on Debian, though it is expected to be added in Kernel version 6.10:

As was previously mentioned, the video was very shaky while I was walking. This could be improved with a gimbal mount, though perhaps a smaller action camera with this feature built-in would be more convenient.

Unfortunately, both cases require a physical connection via USB from the camera to the computer. A workaround for this may be possible, but transmitting high quality video without a physical connection to then be live-streamed would be challenging even in a stationary configuration.

Social Media :elephant:

Part of the experiment was to promote the live-stream on ActivityPub through Mastodon, which was recently deployed and should be demoed on its own. Briefly, Owncast publishes an alert to ActivityPub when a stream goes live, and I boost these posts on Mastodon with my personal account. Since my account has followers on other Mastodon instances, the boosted posts are disseminated to those instances for a much wider reach - which will be more useful when streams last more than twenty minutes!

Raleigh

The Raleigh Summer Beats Festival is an all-day event on Fayetville Street in downtown Raleigh. My video certainly didn’t do the event justice, as I only briefly showed a few booths and part of one performance. I was primarily concerned with testing my streaming technology at the time. Once the basic stream is improved, more could be done to showcase the event over the technology, which would allow this platform to function similarly to a local radio station.

1 Like

That’s actually quite impressive. The video seems to freeze at the 13:12 mark but the audio was still available to near the last second.

The EOS R6 Mark II is clearly a top o’ the line camera (I briefly peeked at the specs) and this may be a silly question: Can the camera receive an external, portable battery charge while on-the-go?

I know with some GoPro (Hero?) models that are already recording (let’s assume we’ve just noticed low battery level) and you plug in an external battery source, the camera still draws power from the internal battery also. So it’s not actually charging while recording/streaming. But that’s not really the point here I guess.

I like this type of experimentation. It would be really interesting to see this in action in a Convention setting where you could live stream activities, booths, and various entertainments.

Great work! :+1: :grinning:

1 Like

There is an HDMI output port that could potentially be used to transmit data, which would allow the USBC port to be used for an additional power supply. I imagine the HDMI port on the Latitude is output only, but I could be wrong about that. Otherwise, the USB port is needed to connect to the tablet. Fully charged, both devices should be able to last several hours, I just forgot to check that before starting the test. :person_shrugging: :sweat_smile:

I intend to improve on the design. For one thing, I had the camera in a full-auto mode for exposure, aperture, iso, etc. I think this is what lead to the low frame rate. The R6 gives me full manual controls over all of this and more. Combined with OBS settings, there is a lot of configuring to be done. I am inclined to create a dedicated thread for this project…

1 Like

Impromptu

Chapters

00:00 Intro
00:18 Embed Owncast Chat in OBS
03:33 ActivityPub Workflow
05:45 Discourse Data
11:27 Discourse POP3 Error
17:02 Browsing Gitea Issues
29:13 Discourse Drafts

Description

This was a somewhat unfocused stream where I discuss recently completed as well as upcoming work on the eom.dev platform. Unlike my usual demos, this stream focuses much more on upcoming work than showing the technical details of completed issues. In a typical software development environment, team members will follow a cycle of discrete meetings used to define, organize, check the status of, and demo work done in a given period of time, which I am considering adapting to be a streaming schedule; however, I am not sure that these streams would be focused enough to be so deliberate about their purpose, and I am also not sure how I would want to organizing the resulting recordings on Discourse and Gitea, so this idea is still in development.

:white_check_mark: Project backlog

As shown in the stream, I have a fairly large backlog of projects both on Gitea and Discourse. Readers and viewers are invited to share their thoughts on what is of interest and how I can best present the material.

:speech_balloon: Owncast chat

The first part of this video discusses embedding the chat from an Owncast live stream into an OBS broadcast without using the Browser Source, which is not available on my version of Debian. Having moved the Firefox tab displaying the chat to the background, it stopped updating to display incoming messages. I will keep this window active for the next stream, which should hopefully resolve this issue; otherwise, using a Window Share Source seems to be a viable alternative to Browser Source when the latter is unavailable.

1 Like

Gitea Issue Refinement

After yesterday’s live stream, I realized that there were a large number of issues in the Gitea backlog that have been on the shelf for some time now. Today, I briefly examine this list to refresh my memory on these tasks as well as doing some minor organizational edits. This is a process that I should repeat on a regular basis. As usual, please leave a reply if there is something in this list of issues you would like to hear more about!

1 Like

I think this is a good time to mention that I have a difficult time following your videos here. They are very good quality, so much so that the file size induces constant buffering. Is there a way, maybe with ffmpeg or one of it’s front-ends like Axiom the video file size can be reduced? Otherwise I find myself right-clicking individual videos to downloand so as to avoid interuptions.

Sorry for the grousing. :neutral_face:

1 Like

Please grouse! It is how I know that things need to be fixed. The Site Feedback category would be a more appropriate place for this kind of discussion, though.

The increased file size is due to my tweaking of OBS output settings. Streams are running smoothly now, but file sizes have increased (one video is over 14GB!). I will probably do some more tweaking, but the file sizes are a bit more reasonable now.

I’ve mentioned previously that these videos are uploaded to a public MinIO bucket. You could try using a dedicated client such as mc [1] or s3fs [2] If you do, I’d love to hear how it goes!


  1. ↩︎

  2. https://fs-s3fs.readthedocs.io/en/latest/ ↩︎

Review

I usually try to synchronize my quarters with the solar seasons, but with the autumnal equinox having passed over two weeks ago, this video is long overdue. Today I am both testing the streaming configuration on my new Dell Tower Plus desktop PC and am closing out this thread with a review of some of the things that have been done over the past three months. Despite making little progress on Projects, a lot was accomplished in terms of the overall platform’s growth and development. Most significantly, we experimented with the Dell Latitude 7230 Rugged Extreme Tablet’s ability to live stream from remote locations - namely The Outer Banks of North Carolina. I intend to use this to bring a live audience on many future expeditions. These will ideally be educational in nature, along the lines of what is shown in the ethanol distillation project (which was also started this quarter); further, we expanded the Gaming library, hosting events for SuperTuxKart and Red Eclipse, as well as a new dedicated server for Vintage Story. I also began working on platform monetization through subscriptions and affiliate links, which I hope to develop and demonstrate as a viable business model for independent creators. In this stream, I also took the opportunity to explore some of the Discourse and YouTube statistics generated over the past few months. Not a tremendous amount to comment upon there other than that the platform seems to be generally healthy and growing, which is exciting to see. Anyway, I will leave this thread open for a couple of days to allow for any additional comments, otherwise it will close once I create the 2025:Q4 Agenda thread.