In my entries for the Weekly Challenge, I use the “bare” language a lot of the time (I’m writing twelve different languages, some of them don’t have package repos, etc.). So my impression of e.g. Ruby or Node.js or Kotlin may be very different from what someone doing the full-fat developer experience might find.
Thinking about using gitea for GitOps. I have an internal GitLab instance and it’s awfully bulky.
Pirmarily looking to do GitOps for DNS (bind9) and proxmox lxc lifecycle management.
My GitLab instance is dog slow. I could move the pgsql in the GitLab virtual appliance to a centralized pgsql container, but I think GitLab will still be a RAM-hog.
Anyone tried GitOps pipeline with both gitea and private GitLab?
I don’t have any pipelines running. Or had. I replaced gitlab with gitea some time ago because gitlab is as you say very bulky and much more exposed than gitea. also migration is often awful with gitlab if you miss a version.
What do you want to use it for? I have gite and I could set up some test when I get home.
Currently, I’m not doing any Infrastructure-as-code in my “homelab” (I hesitate to call it that now since my family now relies on portions of it, such as Plex and DNS).
Plex is out of scope for me at the moment for IaC, but I’ve had to fiddle with the DNS portion recently due to hardware failure in my “primary” DNS server.
I have two LXC containers providing DNS service running on my proxmox cluster. One recently corrupted and I had to reinstall it, which made me realize that it is essentially a stock Ubuntu LXC + bind9 package and some files in /etc/bind- which seems to me to be the perfect sort of thing to start with IaC.
I do a bit of IaC at work via Terraform. The community-provided Proxmox TF provider seems fairly robust these days, and I’m contemplating doing LCM on DNS “serving” nodes via GitOps.
While thinking about it, I realized that I’d like to put my BIND9 zonefiles into Git, and as part of that thought process, I discovered an, at least somewhat, established GitOps model for BIND9, where you use pipelines to automatically deploy updated zonefiles to shadow-primary nodes (non-serving BIND9 servers) that then allow zone transfer (AXFR/IXFR). I have shadow-primary and client-seving secondaries already, so I’m interested in exploring that further as well.
I toyed with GitLab runners before, but GitLab is so clumsy already, and the runners add to that even more, I started searching around and saw that Gitea offers automation pipelines in a much more svelte deployment model.
Infrastructure as code sounds like my various docker compose files and my small attempts at using ansible? being a lowly dev, I have no idea really.
what are you doing with DNS in your home network?
I mean sure we are using our zyxel firewall to give IPs to all our devices and I am running a pi-hole as primary DNS for anything that wants to go to the web… … I think mostly that setup works.
I had to google / perplexity proxmox… maybe that will provide me with a solution for running a full Home Assistant alongside my half dozen docker containers on my home server so I can keep the remaining mini server for some other purpose. ha.
I haven’t found time to check out how gitea works with pipelines because I spent hours now fixing the missing not-auto-uploaded images from vacation.
I learned that if you click on “build number” on your pixel phone 7 times (in About Phone) you can summon a djinn enabling developer options on your phone.
Apologies, I meant to come back and flesh out these ideas a bit more.
Unfortunately, jostling my equipment rack recently appears to have precipitated some additional hardware failures- the total loss of the ability to boot my oldest server.
Most of the functions have been migrated to a new server, but I was planning a new project before finishing the rest of it. Oh well, no time for that now, and no money either. Since I did some server updates last year, prices of hardware on the secondary market have more than doubled; the same used Supermicro server I bought last year for less than $300 is now showing up as $800… for the same hardware (which is even 1 year older at this point).
It appears everybody on ebay is buying up old servers, harvesting the RAM to scalp at unreasonable prices, and then trying to resell the RAM-less motherboards for what they paid for them.
Give me a few days to catch up on getting my internet network put back together, and I’ll see if I can show some examples of what I’m talking about
I’ve been mucking around with something called Pico-8 Fantasy Console. It’s a bit of a retro idea, screens are 127 by 127, sprites are 8 by 8, it has simple sound - 4 channel chip “blerps” apparently (not sure if blerp is a real word). Even the code is restricted, each code statement takes tokens, and you only have a set number of them. I have no idea how many tokens my first programs have taken, because I realized early on that the inbuilt font is just, well, horrible to read (to me at least). It’s easy enough to use an external editor (I’m using Visual Studio Code, seems to be a popular choice).
The coding is in Lua, which I’ve never used before. All the features are in the same program, you can code (if you can stand the font), make sprites, add sounds and music. I have zero idea how to make music, and I’ve only made a couple of sounds (one went up, and one went down). I’m sure there’s a guide to it all somewhere.
Even the inputs are basic (no mouse, but I have seen people fudging it somehow). The basic inputs are up/down./left/right, and two other buttons. Keep it simple stupid!
You can upload your creations and check out programs from other people, and see their code, sprites, and sound/music.
It all runs on Windows/mac/Linux - even on a Raspberry Pi (which I have…somewhere).
So far, I’ve started 3 ideas from old arcade games.Even a basic idea makes me think “shit, how do I actually do that?”. I haven’t done any programming for years now, and I was a business programmer, coding in a proprietary 4gl. So this is all pretty new to me, but I’m having fun.
And this is how the code looks without the external editor…blurg
Lua is often frustrating; it can do stuff but the way to do it is usually very wordy. (All right, I like punctuation for structure more than the language designers clearly do.)
Ooh I love Pico 8! I made a couple of small games in it, one bad, one alright(?) and a handful of experiments that never went anywhere. I did everything in the included editors but I think I have a high tolerance for novelty friction.
Not sure if I can / should talk here about my totally not small anymore game collection project. Because I am most definitely not writing code on it.
Game Collection Project progress
But I just opened ticket 300 on it and it keeps growing and developing. Part of my enjoyment apparently is seeing new releases of software that I have desperately wanted for a while released on my server. Software != Code. This is software through and through. The code is not bad in my estimation (a pretty clean hexagonal springboot architecture with several webservice syncs helping my collection along and a web ui) but it’s not doing anything fancy or interesting.
But I am learning a huge amount on how to get AI to code exactly what I want–it is eerily similar to what I do at work… mostly I write tickets and clarify what I meant and then scan the results for signs that things didn’t go as I intended.
I must admit the AI makes about the same number of mistakes as us humans do in a similarly complex project. It complains less when I tell it to make changes… or have it do a 3rd iteration on something because I changed my mind.
In any case I am very happy with the results. If anyone is interested in my guardrails or how I actually work with it I would be more than happy to expand.
Sources | Deployed version (just single user for my own collection)
I am very happy with the latest features I built
- geeklist style lists of games for curation
- a ranking engine à la pubmeeple to rank those lists
- a global elo across all rankings to determine my very favorite games (spoiler: it’s Spirit Island and yes I manipulated my own scoring by making sure Spirit Island was on enough lists)
- boardgame challenges tracking
→ not yet deployed also not publicly visible because I forgot to specify that I want to show off those challenges. - same for the extended wishlist management, wishlist will remain private in any case
My cluster of programs in loose formation is basically a series of wrappers round a database schema:
owned: thing, lastmodified
formerlyowned: thing
plays: date, thing, seq
things: thing, title, expansion, minplayers, maxplayers, year
“seq” is a serial number within a single day for play logging. “thing” is a BGG ID. “expansion” is the thing of which this is an expansion, or 0 if it is a stand-alone game.
I may break that out a bit: the Railroad Ink expansions (like Underground or Engineer) are expansions to all the core sets, after all. I tend to log plays as the base game without considering which expansions are on use, etc.
But then there’s a nest of command-line programs that connect to the database. Log a play, add a game to the things list, add a game or remove a game in the owned list, do 10×10 stats, etc.
You are way more data driven than I am I guess.
The flexibility of command-line programs is very different from what I do ![]()
I think of it more like a shelf I can carry around with me and sort and manipulate in a way I cannot do with my real shelves. My preferred way of interacting with the application is via my tablet… just browsing or filtering my collection, sometimes putting stuff on lists (like geek-lists but easier for me to handle because I built in a lot of custom navigation)
PS: I am using mariadb in a docker container. I had a fight about using postgres with claude about 2 weeks back. It suggested using it for another project and I said: fine, I wanted to migrate my stuff from other apps anyway and claude said I shouldn’t be migrating stuff just because I was too lazy to back up databases from 2 different containers and that the nextcloud migration was too risky just to do for “a cleanup” – now the new project is also using mariadb. claude lost ![]()
Which kind of database?
[embarrassed look]
it’s actually a set of CSV files, one per table, using Perl’s DBD::CSV. (In other words, I still throw SQL statements at it from the software.) Normally I’d use SQLite but I knew I’d be changing the format as I went along, and this way I can simply edit a file if I want to change something I haven’t written the code to alter yet. (Also the biggest table is “plays” with 4277 rows, so it doesn’t need to be a speed demon.)
