2025:Q2 Demos

Q2 of 2025 will run from March 20th through June 21st. Here is an outline of what I hope to accomplish in each organization during that time:

Milestones

The milestones concept comes from Gitea. The ones described below are linked to their respective Gitea page where applicable.

DevOps

Gaming

Broadcast

  • Build video-summary-bot v1.0.0
  • Remote live-streams
  • Improve Owncast quality
    • 24/7 broadcast
  • Improve YouTube video quality
    • Basic video editing
    • Create a separate channel for gaming

Research and Development

Rather than posting each live stream to an individual thread, I think this site would be better organized if demos were added as replies to the quarterly planning post. This would naturally link content in a series, provide a chronological context, and would allow users to more easily subscribe to a topic of interest. I am going to experiment with copying the two existing posts from this quarter into this thread. Weather or not I do so with the remaining ones remains to be seen - as does deleting the original posts.

Video Summary Bot

Live stream hosted on 2025-03-29 at 13:00 EST with Owncast

The following description was generated by AI and edited by Eric:

Live Stream Overview

In this live stream, I delved into the exciting world of automating video descriptions using a combination of AI, Gitea workflows, and MinIO notifications. Starting with the concept of using AI for video transcription and summarization, I demonstrated how tools like OpenAI and GitLab’s AI capabilities can be harnessed to generate human-like text descriptions for videos.

Key Points Discussed

  • Introduction to AI Utilization: Leveraging AI for automatic video transcription and summarization, with an emphasis on Ope
    nAI’s models.
  • Gitea Workflows: Exploring how Gitea can be used to automate repetitive tasks like video processing, transcription, and su
    mmarization.
  • MinIO Integration: Discussing the role of MinIO in triggering automated workflows when new videos are uploaded.
  • Luanti (formerly MineTest): Demonstrating a live deployment of a free, open-source game, MineTest.

Relevant Keywords

  • AI
  • Video Processing
  • Transcriptions
  • Summarization
  • Gitea
  • MinIO
  • Ansible Role
  • OpenAI
  • YouTube
  • Kubernetes
  • Open Source Software
  • Video Descriptions
  • Automated Workflows

Call to Action

This in-depth look into automating video descriptions not only showcases the potential of AI in enhancing content management but also highlights the seamless integration of modern technology solutions like Gitea and MinIO. If you’re interested in implementing similar solutions or exploring how technology can simplify your content pipeline, don’t miss the opportunity to watch this informative and engaging live stream. Join me for a detailed walkthrough and see how you can transform the way you manage and describe your videos.

In this live stream demo, I am showing off the recent changes on Discourse. The discussion of several threads touches on recent changes on Luanti as well as upcoming plans for a Music Theory live stream and 24/7 broadcast on Owncast.

By the way, here is what the video-summary-bot had to say about this one: :rofl:

Today, join Eric as he takes a break from his usual live streaming routine to focus on reorganizing and updating the content strategy for his upcoming streams. Eric discusses the use of Discourse for hosting his live streams, previously created as separate threads. He aims to consolidate these streams into single threads for easier management and interaction. The video showcases the transition from individual threads to a more cohesive series structure, with an emphasis on interaction and community engagement. Eric also shares his plan to create a 24-hour music theory and improvisation stream, alongside regular tech tutorials, highlighting his background in music theory. The video concludes with a calendar of scheduled streams and an invitation for viewers to join the discourse server for added interaction. This behind-the-scenes look is perfect for tech enthusiasts, music lovers, and anyone interested in live streaming strategies and community engagement.

The lowest hanging fruit in terms of improving this result would probably be editing the system prompt.

Milestone Check-in, Discourse Updates, and Metadata

:ledger: About halfway through Q2 of 2025, this live stream is primarily a check-in on the milestones set at the beginning of the quarter. Progress has been made on some, others have changed, and still more have been abandoned altogether.

:speech_balloon: Additionally, I discuss some of the recent changes I have been making on Discourse, as well as metadata fields that I have been working on populating for content on MinIO.

:robot: The video-summary-bot did a poor job creating a summary of this video. I will have to make some adjustments before continuing to use AI generated descriptions.

1 Like

Hey, I found your Youtube channel and there’s a bunch of stuff I’ll be perusing there. Good stuff!

Quick question: When you mount MinIO does it show up as a drive or as a folder?

I appreciate that you are linking all these neat systems together.
Being curious about how things work, and can work, is a great quality to have.

1 Like

Thank you, I hope it is helpful! If you host any services, I’d love to hear about those as well. There are opportunities for collaboration! :grin:

At least with s3fs, which is what I am using on Debian Linux, the MinIO bucket will be mounted to an existing directory. Here is the command I mentioned in the video with the password file option omitted:

s3fs public Public -o host=https://minio.eom.dev -o use_path_request_style

This is mounting the bucket public to the directory /home/eric/Public (the command was executed my home directory). Within that bucket, objects are stored under prefixes which appear as sub-directories to the mount point. Here is a blog post from MinIO with some additional details on those terms.

1 Like

That blog post has some words I understand. Lol.
This makes simple sense. Thanks.

1 Like

:email: Self-Hosted Email with Docker Mailserver

I have been self-hosting an email server for several months now. Many of the services eom.dev have built-in support for notifications over SMTP, and I use an @eom.dev address for online accounts; however, the server has been unable to deliver mail to addresses outside of my personal network. As I discussed in Why Discourse?, this service has additional features for users to read and reply to threads over email, allowing Discourse to function like a mailing list. With several active users on the Luanti thread, I felt this was a good time to try to enable sending mail to external addresses.

:open_book: Chapters

00:00 Intro
00:23 Mail Server Overview
03:21 Docker Mailserver Configuration
04:32 TLS
06:42 Configuration Contd.
14:25 Port Forwarding
19:35 DNS Settings and DKIM
30:25 ISP Restrictions
32:57 Outro

:bank: Architecture of an Email server

The Arch Wiki provides an excellent overview for the components of an email server:

A mail server consists of multiple components. A mail transfer agent (MTA) receives and sends emails via SMTP. Received and accepted emails are then passed to a mail delivery agent (MDA), which stores the mail in a mailbox (usually in mbox or Maildir format). If you want users to be able to remotely access their mail using email clients (MUA), you need to run a POP3 and/or IMAP server.

:whale: Docker Mailserver

Docker Mailserver provides all of the necessary components for an email server in a single, convenient docker container. From the project introduction:

In a nutshell, DMS provides you with the following components:

  • A MTA: Postfix
  • A MDA: Dovecot
  • A bunch of additional programs to improve security and emails

:gear: Configuration

The current configuration for Docker Mailserver on eom.dev is defined in ansible-role-eom, but is being moved to a dedicated repository. Additionally, this configuration needs to be modified to utilize Helm.

DNS&DKIM

Similar to the various ACME challenges used to issue TLS certificates, email vendors utilize a variety of authentication methods to reduce spam. Following Google’s Email sender guidelines, the bare minimum requirements are DKIM for authentication and a PTR record to resolve a reverse DNS lookup. These were configured for postfix.eom.dev on Squarespace.

:globe_with_meridians: AT&T

The postfix.eom.dev SMTP server is able to receive emails from both internal @eom.dev and external accounts (@gmail.com, @outlook.com, etc.), and users can access their mailbox on the client of their choosing using either IMAP or POP3; however, many ISPs, including AT&T - the ISP for eom.dev, block outbound traffic on port 25, which prevents sending emails outside of the network. This is confirmed in the server logs:

2025-05-10T17:08:28.967795+00:00 mail-69bbf5846-2h85k postfix/smtp[10638]: connect to mail.protonmail.ch[176.>119.200.128]:25: Connection timed out
2025-05-10T17:18:28.399802+00:00 mail-69bbf5846-2h85k postfix/smtp[10658]: connect to mx02.mail.icloud.com[17.57.155.25]:25: Connection timed out
2025-05-10T17:53:59.263728+00:00 mail-69bbf5846-2h85k postfix/smtp[10702]: connect to alt1.gmail-smtp-in.l.google.com[172.217.197.27]:25: Connection timed out

I am currently discussing this issue with AT&T customer support, and hope to unblock outbound traffic on port 25 to enable sending emails to external servers.

1 Like

:black_joker: WikiDeck

Chapters

00:00 Intro
00:10 WikiDeck
41:05 Matrix
44:55 Outro

:chart_with_upwards_trend: WikiDeck

WikiDeck is currently in alpha development. Discuss the project in the WikiDeck Discourse category and in the #wikideck:eom.dev Matrix room:

Collaboration

Welcome to @deus, the first code-contributor to eom.dev! They created an interactive client for WikiDeck and helped test the collaborative workflow on Gitea. Thank you deus! I will be creating new issues soon to get this project production ready, so your help is greatly appreciated. :raised_hands:

Accreditation

Gitea automatically tracks code authorship, so contributors will get credit for their work on the platform. SSO with GitHub has also been enabled on the platform to help integrate developer accounts; however, there is limited integration between these platforms to allow for Gitea contributions to appear on GitHub and vice-versa. There are rumors of ActivityPub on Gitea, which could facilitate such an integration, but the feature does not appear to be in development. This is potentially something we could implement ourselves given sufficient interest.

:speech_balloon: Matrix

Users are invited to sign up for Matrix on eom.dev using SSO with Google!

Completed Issues

Work on this issue was live-streamed on Owncast over the course of two days. The resulting recordings were linked and are available for viewing in the issue comments. Thanks to @Zephyr for assisting with real-time debugging on stream!

Previous live-stream recordings have all been shared on Discourse, but I think posting them in Gitea issues adds value to that platform and is an appropriate place to share real-time software engineering. The MinIO bucket remains the single-source-of-truth for these recordings (Gitea and Discourse use the MinIO URL to generate a preview of the content).

Created

Encrypted messaging, SSO with Google, and federation across Matrix instances has been achieved; however, a few features remain non-functional:

1 Like

Review

In review of the projects that were done over the past quarter, it is clear that I have started a fair number of projects including the Video Summary Bot, a public Luanti server, and WikiDeck - not to mention the developments on platforms such as Discourse, Gitea, and Matrix. I intend to continue developing all of these and more in the fullness of time, largely determined by my and the community’s interest. Fortunately, I am receiving a lot on all of these projects from members of the community. Thank you to everyone who has participated so far - it is very exciting for me to see people engaging with this content and platform!

Somewhat surprisingly, I moved to a new location in downtown Raleigh, N.C. over the past couple of weeks. After some prolonged network downtime, I am happy to report significantly higher bandwidth speeds (8 Gigs) and, finally, outbound traffic on port 25 for SMTP! Additionally, I am looking for opportunities to use this network within the city, which I will discuss more in Q3.

In the next few days this thread will be closed and a new one for 2025:Q3 demos will be created. In the meantime feel free to share any closing thoughts regarding the previous quarter or any ideas you may have for the upcoming one!

1 Like