Compare commits

...

19 Commits

Author SHA1 Message Date
efb2f9e67d Merge branch 'main' of https://git.homelabbrisbane.com.au/jdownie/homepage 2026-04-02 16:39:32 +10:00
93f54b142e Added location to the new forecast table. 2026-04-02 16:39:28 +10:00
21bcb46092 Merged on hlb. 2026-04-02 16:30:12 +10:00
bf1d59ec69 . 2026-04-02 16:29:10 +10:00
9103542602 Improved the presentation forecast. 2026-04-02 16:26:49 +10:00
a88811e146 Pulled presentation information out of agendas into events.json. 2026-04-02 16:18:37 +10:00
4b9e46b212 Merge branch 'main' of https://git.homelabbrisbane.com.au/jdownie/homepage 2026-04-01 17:39:37 +10:00
b970e60de1 Added pin numbers for library meetups. 2026-04-01 17:39:33 +10:00
3b657e3137 Initial draft agenda 2026-04-01 16:56:38 +10:00
5eba197839 Added some more tentative bookings at Carindale. 2026-03-26 15:08:58 +10:00
fb1bc93071 Presentation 2 update - speling 2026-03-25 09:28:18 +10:00
8947569201 Presentation 2 update 2026-03-25 09:27:10 +10:00
c522b53330 Updated agenda 2026-03-24 11:33:42 +10:00
49c827732a Draft agenda for next few meetings. 2026-03-17 15:54:29 +10:00
fc0d9ee01a Draft 20260325 agenda 2026-03-17 15:33:50 +10:00
4143bc86b0 A few changes that i should have committed weeks ago. 2026-03-17 14:26:17 +10:00
3fab81c806 Initial draft minutes 5 March 2026. 2026-02-28 13:03:00 +10:00
120c72b37b Agenda update. 2026-02-19 11:19:07 +10:00
e490c69c06 Proposed agenda - update 1 2026-02-17 09:08:45 +10:00
27 changed files with 597 additions and 62 deletions

View File

@@ -30,3 +30,23 @@ body.phone .logo {
body.phone .calBanner .col:first-child { body.phone .calBanner .col:first-child {
display: none; display: none;
} }
.calGridTable {
white-space: nowrap;
}
.calGridTable th {
background-color: #f3f3f3;
font-weight: normal;
font-size: 0.85em;
}
.cal-grid-label {
font-weight: bold;
background-color: #f3f3f3;
}
.cal-grid-cell {
cursor: pointer;
font-size: 0.9em;
}
.cal-grid-cell:hover {
background-color: #94b6bd;
color: #ffffff;
}

View File

@@ -2,6 +2,19 @@ $(document).ready(function () {
var nextCtl = $('#vars').attr('nextCtl'); var nextCtl = $('#vars').attr('nextCtl');
var c = $('button.accordion-button[data-bs-target="#ctl' + nextCtl + '"]'); var c = $('button.accordion-button[data-bs-target="#ctl' + nextCtl + '"]');
$(c).click(); $(c).click();
document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(function(el) {
new bootstrap.Tooltip(el);
});
$('.cal-grid-cell').click(function() {
var ctl = $(this).data('ctl');
var btn = $('button.accordion-button[data-bs-target="#ctl' + ctl + '"]');
if (btn.hasClass('collapsed')) {
btn.click();
}
btn.closest('.accordion-item')[0].scrollIntoView({ behavior: 'smooth', block: 'start' });
});
$('button[action]').click(function() { $('button[action]').click(function() {
var action = $(this).attr('action'); var action = $(this).attr('action');
var url = null; var url = null;
@@ -19,6 +32,66 @@ $(document).ready(function () {
window.open( url, target ); window.open( url, target );
} }
}); });
$('.unlock-pin').click(async function() {
const btn = $(this);
const pinDisplay = btn.siblings('.pin-display');
const ciphertext = btn.data('ciphertext');
const iv = btn.data('iv');
const salt = btn.data('salt');
const tag = btn.data('tag');
const password = prompt("Enter the members password to unlock the PIN:");
if (!password) return;
try {
const decrypted = await decryptPin(ciphertext, iv, salt, tag, password);
pinDisplay.val(decrypted);
btn.text('Copy').removeClass('unlock-pin').attr('action', 'copy').attr('value', decrypted);
// Re-bind the click event for the new copy action (or use delegation)
btn.off('click').click(function() {
navigator.clipboard.writeText($(this).attr('value'));
alert('PIN copied to clipboard!');
});
} catch (e) {
alert(e.message);
}
});
async function decryptPin(ciphertextBase64, ivBase64, saltBase64, tagBase64, password) {
const encoder = new TextEncoder();
const passwordKey = await crypto.subtle.importKey(
"raw", encoder.encode(password), "PBKDF2", false, ["deriveKey"]
);
const salt = Uint8Array.from(atob(saltBase64), c => c.charCodeAt(0));
const iv = Uint8Array.from(atob(ivBase64), c => c.charCodeAt(0));
const tag = Uint8Array.from(atob(tagBase64), c => c.charCodeAt(0));
const ciphertext = Uint8Array.from(atob(ciphertextBase64), c => c.charCodeAt(0));
const data = new Uint8Array(ciphertext.length + tag.length);
data.set(ciphertext);
data.set(tag, ciphertext.length);
const key = await crypto.subtle.deriveKey(
{ name: "PBKDF2", salt, iterations: 100000, hash: "SHA-256" },
passwordKey,
{ name: "AES-GCM", length: 256 },
false,
["decrypt"]
);
try {
const decrypted = await crypto.subtle.decrypt(
{ name: "AES-GCM", iv, tagLength: 128 },
key,
data
);
return new TextDecoder().decode(decrypted);
} catch (e) {
throw new Error("Decryption failed. Probably wrong password.");
}
}
var isPhone = /Mobi|Android|iPhone|iPod/i.test(navigator.userAgent) || window.innerWidth <= 768; var isPhone = /Mobi|Android|iPhone|iPod/i.test(navigator.userAgent) || window.innerWidth <= 768;
if (isPhone) { if (isPhone) {
$("body").addClass("phone"); $("body").addClass("phone");

View File

@@ -90,11 +90,63 @@ use Michelf\Markdown;
</p> </p>
</div> </div>
</div> </div>
<?php
$events = getEvents();
$now = new DateTime();
$futureEvents = array_reverse(array_values(array_filter($events, function($e) use ($now) {
return (new DateTime($e['start'])) >= (new DateTime('today'));
})));
?>
<div class="row mt-4 calGrid">
<div class="col">
<table class="table table-bordered calGridTable">
<thead>
<tr>
<th></th>
<?php foreach ($futureEvents as $event): ?>
<th class="text-center"><?= (new DateTime($event['start']))->format('j M') ?></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<tr>
<td class="cal-grid-label">Location</td>
<?php foreach ($futureEvents as $event): ?>
<td class="text-center cal-grid-cell">
<?= htmlspecialchars($event['location'] ?? '') ?>
</td>
<?php endforeach; ?>
</tr>
<tr>
<td class="cal-grid-label">Presentation 1</td>
<?php foreach ($futureEvents as $event): ?>
<td class="text-center cal-grid-cell"
data-ctl="<?= $event['ctl'] ?>"
<?php if (!empty($event['presentation1']['topic'])): ?>
data-bs-toggle="tooltip" data-bs-placement="top" title="<?= htmlspecialchars($event['presentation1']['topic']) ?>"
<?php endif; ?>>
<?= htmlspecialchars($event['presentation1']['presenter'] ?? '') ?>
</td>
<?php endforeach; ?>
</tr>
<tr>
<td class="cal-grid-label">Presentation 2</td>
<?php foreach ($futureEvents as $event): ?>
<td class="text-center cal-grid-cell"
data-ctl="<?= $event['ctl'] ?>"
<?php if (!empty($event['presentation2']['topic'])): ?>
data-bs-toggle="tooltip" data-bs-placement="top" title="<?= htmlspecialchars($event['presentation2']['topic']) ?>"
<?php endif; ?>>
<?= htmlspecialchars($event['presentation2']['presenter'] ?? '') ?>
</td>
<?php endforeach; ?>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row mt-2 calDetails"> <div class="row mt-2 calDetails">
<div class="col"> <div class="col">
<?php
$events = getEvents();
?>
<div class="accordion" id="accordionExample"> <div class="accordion" id="accordionExample">
<?php <?php
$nextCtl = null; $nextCtl = null;
@@ -137,6 +189,24 @@ use Michelf\Markdown;
} }
?> ?>
</div> </div>
<?php if ( isset($event["pin"]) ) { ?>
<div class="input-group mt-3 mb-3">
<span class="input-group-text">PIN</span>
<?php if ( is_array($event["pin"]) ) { ?>
<input type="text" class="form-control pin-display" disabled value="********">
<button class="btn btn-outline-secondary unlock-pin" type="button"
data-ciphertext="<?= $event["pin"]["ciphertext"] ?>"
data-iv="<?= $event["pin"]["iv"] ?>"
data-salt="<?= $event["pin"]["salt"] ?>"
data-tag="<?= $event["pin"]["tag"] ?>">
Unlock
</button>
<?php } else { ?>
<input type="text" class="form-control" disabled value="<?= $event["pin"] ?>">
<button class="btn btn-outline-secondary" type="button" action="copy" value="<?= $event["pin"] ?>">Copy</button>
<?php } ?>
</div>
<?php } ?>
<?php if ( in_array( "description", array_keys($event) ) ) { ?> <?php if ( in_array( "description", array_keys($event) ) ) { ?>
<h5 class="card-title mb-2">Description</h5> <h5 class="card-title mb-2">Description</h5>
<p><?= $event["description"] ?></p> <p><?= $event["description"] ?></p>

View File

@@ -1,6 +1,6 @@
- 7.30 pm - Welcome - 7.30 pm - Welcome
- 7.35 pm - Agreement on Agenda Items - 7.35 pm - Agreement on Agenda Items
- 7.40 pm - Administrivia (if any) - 7.40 pm - Administrivia (if any)
- 7.45 pm - Presentation 1 - James: Git - 7.45 pm - Presentation 1
- 8.15 pm - Presentation 2 - Terry: Fossil - 8.15 pm - Presentation 2
- 8.45 pm - Loose (Discourse) Threads - 8.45 pm - Loose (Discourse) Threads

View File

@@ -2,7 +2,7 @@
2. 7.35 pm - Agreement on Agenda Items 2. 7.35 pm - Agreement on Agenda Items
3. 7.40 pm - Administrivia (if any) 3. 7.40 pm - Administrivia (if any)
1. Logos: JD proposed images 1. Logos: JD proposed images
4. 7.45 pm - Presentation 1 - Meshtastic - Up close and Personal 4. 7.45 pm - Presentation 1
5. 8.45 pm - Loose (Discourse) Threads - Proposed topics 5. 8.45 pm - Loose (Discourse) Threads - Proposed topics
1. ? Fossil 1. ? Fossil
2. ? Key signing 2. ? Key signing

View File

@@ -2,8 +2,8 @@
2. 7.35 pm - Agreement on Agenda Items 2. 7.35 pm - Agreement on Agenda Items
3. 7.40 pm - Administrivia (if any) 3. 7.40 pm - Administrivia (if any)
1. HLB Logo 1. HLB Logo
4. 7.45 pm - Presentation 1 - NixOS - @techman 4. 7.45 pm - Presentation 1
5. 8.15 pm - Presentation 2 - Hyprland and starship - @jdownie 5. 8.15 pm - Presentation 2
6. 8.45 pm - Loose (Discourse) Threads 6. 8.45 pm - Loose (Discourse) Threads
1. Proposed 1. Proposed
1. OpenPGP 1. OpenPGP

View File

@@ -2,11 +2,11 @@
1. 6.30 pm - Welcome 1. 6.30 pm - Welcome
2. 6.35 pm - Agreement on Agenda Items 2. 6.35 pm - Agreement on Agenda Items
1. 6.40 pm - Administrivia (if any) 1. 6.40 pm - Administrivia (if any)
1. 6.45 pm - Presentation 1 - Homelab Certificate Management - @Belfry 1. 6.45 pm - Presentation 1
1. 7.15 pm - Loose (Discourse) Threads 1. 7.15 pm - Loose (Discourse) Threads
1. Proposed 1. Proposed
1. Self hosted email - @zeeclor 1. Self hosted email - @zeeclor
2. Ultimate Note Taking - Joplin vs Obisidian vs? 2. Ultimate Note Taking - Joplin vs Obisidian vs?
1. 7.45 pm - Presentation 2 - [n8n](https://github.com/n8n-io) - @shirbo 1. 7.45 pm - Presentation 2
1. 8.15 pm - Next meeting 1. 8.15 pm - Next meeting
1. 8.30 pm - Close 1. 8.30 pm - Close

View File

@@ -2,8 +2,8 @@
1. 7.30 pm - Welcome 1. 7.30 pm - Welcome
2. 7.35 pm - Agreement on Agenda Items 2. 7.35 pm - Agreement on Agenda Items
1. 7.40 pm - Administrivia (if any) 1. 7.40 pm - Administrivia (if any)
1. 7.45 pm - Presentation 1 - WSL @kangie 1. 7.45 pm - Presentation 1
1. 8.15 pm - Presentation 2 - NixOS - The Curly Bits - @techman 1. 8.15 pm - Presentation 2
1. 8.45 pm - Loose (Discourse) Threads 1. 8.45 pm - Loose (Discourse) Threads
1. Proposed 1. Proposed
1. Docker app of the month - [IT Tools](https://www.youtube.com/watch?v=Mebe5-plYfE) / [Tandoor](https://www.youtube.com/watch?v=7-nb3muJxI0&t=450s) 1. Docker app of the month - [IT Tools](https://www.youtube.com/watch?v=Mebe5-plYfE) / [Tandoor](https://www.youtube.com/watch?v=7-nb3muJxI0&t=450s)

View File

@@ -1,8 +1,8 @@
1. 6.30 pm - Welcome 1. 6.30 pm - Welcome
2. 6.35 pm - Agreement on Agenda Items 2. 6.35 pm - Agreement on Agenda Items
1. 6.40 pm - Administrivia (if any) 1. 6.40 pm - Administrivia (if any)
1. 6.45 pm - Presentation 1 - 1. 6.45 pm - Presentation 1
1. 7.15 pm - Presentation 2 - Homelab DNS - AdGuard Home / Pi-Hole / Technetium / NextDNS / Bind9 - @Belfry 1. 7.15 pm - Presentation 2
1. 7.45 pm - Loose (Discourse) Threads 1. 7.45 pm - Loose (Discourse) Threads
1. Proposed 1. Proposed
3. OpenWRT / OPNSense / ?pfSense 3. OpenWRT / OPNSense / ?pfSense

View File

@@ -4,8 +4,8 @@
1. Future invited speakers 1. Future invited speakers
2. HLB future projects 2. HLB future projects
3. Online promotion 3. Online promotion
2. 7.15 pm - Presentation 2 - DNS part2 - @Belfry 2. 7.15 pm - Presentation 1
3. 7.45 pm - Presentation 2 - Getting started with Docker @jdownie 3. 7.45 pm - Presentation 2
1. Proposed 1. Proposed
1. Gardening with [Grist](https://www.getgrist.com)- @matthew919 1. Gardening with [Grist](https://www.getgrist.com)- @matthew919
2. Routers - [openWRT](https://openwrt.org) vs [OPNsense](https://opnsense.org) 2. Routers - [openWRT](https://openwrt.org) vs [OPNsense](https://opnsense.org)

View File

@@ -1,8 +1,8 @@
1. 6.30 pm - Welcome 1. 6.30 pm - Welcome
2. 6.35 pm - Agreement on Agenda Items 2. 6.35 pm - Agreement on Agenda Items
1. 6.40 pm - Administrivia (if any) 1. 6.40 pm - Administrivia (if any)
1. 6.45 pm - Presentation 1 - Getting started with docker - @jdownie 1. 6.45 pm - Presentation 1
2. 7.15 pm - Presentation 2 - Q&A - Your questions asked 2. 7.15 pm - Presentation 2
3. 7.45 pm - Loose (Discourse) Threads 3. 7.45 pm - Loose (Discourse) Threads
1. Proposed 1. Proposed
1. DNS - "It's always DNS." 1. DNS - "It's always DNS."

View File

@@ -1,7 +1,7 @@
1. 7.30 pm - Welcome 1. 7.30 pm - Welcome
2. 7.35 pm - Agreement on Agenda Items 2. 7.35 pm - Agreement on Agenda Items
1. 7.40 pm - Administrivia (if any) 1. 7.40 pm - Administrivia (if any)
1. 7.45 pm - Presentation 1 - My journey to freeBSD and back - @techman 1. 7.45 pm - Presentation 1
1. 8.15 pm - Recent Discourse Threads 1. 8.15 pm - Recent Discourse Threads
1. Proposed 1. Proposed
1. Proxmox GUI monitors 1. Proxmox GUI monitors

View File

@@ -1,8 +1,8 @@
1. 6.30 pm - Welcome 1. 6.30 pm - Welcome
2. 6.35 pm - Agreement on Agenda Items 2. 6.35 pm - Agreement on Agenda Items
1. 6.40 pm - Administrivia (if any) 1. 6.40 pm - Administrivia (if any)
1. 6.45 pm - Presentation 1 - Solar in your Home Assistant - @Belfry 1. 6.45 pm - Presentation 1
2. 7.15 pm - Presentation 2 - Loose ends - vLANs and DNS 2. 7.15 pm - Presentation 2
3. 7.45 pm - Recent (Discourse) Threads 3. 7.45 pm - Recent (Discourse) Threads
1. Proposed 1. Proposed
1. Managed switches 1. Managed switches

View File

@@ -1,7 +1,7 @@
1. 7.30 pm - Welcome 1. 7.30 pm - Welcome
2. 7.35 pm - Agreement on Agenda Items 2. 7.35 pm - Agreement on Agenda Items
1. 7.40 pm - Administrivia (if any) 1. 7.40 pm - Administrivia (if any)
1. 7.45 pm - Presentation 1 - Solar management in Home Assistant - @Belfry 1. 7.45 pm - Presentation 1
2. 8.15 pm - NixOS v freeBSD v15 on Starlink Standby 2. 8.15 pm - NixOS v freeBSD v15 on Starlink Standby
3. 8.45 pm - Recent Discourse Threads 3. 8.45 pm - Recent Discourse Threads
1. Proposed 1. Proposed

View File

@@ -1,8 +1,8 @@
1. 7.30 pm - Welcome 1. 7.30 pm - Welcome
2. 7.35 pm - Agreement on Agenda Items 2. 7.35 pm - Agreement on Agenda Items
1. 7.40 pm - Administrivia (if any) 1. 7.40 pm - Administrivia (if any)
1. 7.45 pm - Presentation 1 - ipv6 - Your computer uses it, why shouldn't you? - @Belfry 1. 7.45 pm - Presentation 1
2. 8.15 pm - Presentation 2 - Push notifications in Home Assistant, n8n and Uptime Kuma - @shirbo 2. 8.15 pm - Presentation 2
4. 8.45 pm - Recent Discourse Threads 4. 8.45 pm - Recent Discourse Threads
1. Proposed 1. Proposed
1. HA Goodies 1. HA Goodies

View File

@@ -1,8 +1,8 @@
1. 6.30 pm - Welcome 1. 6.30 pm - Welcome
2. 6.35 pm - Agreement on Agenda Items 2. 6.35 pm - Agreement on Agenda Items
1. 6.40 pm - Administrivia (if any) 1. 6.40 pm - Administrivia (if any)
1. 6.45 pm - Presentation 1 - Git best practices - @AB 1. 6.45 pm - Presentation 1
2. 7.15 pm - Presentation 2 - Customising the home page menu - @jdownie 2. 7.15 pm - Presentation 2
3. 7.45 pm - Recent (Discourse) Threads 3. 7.45 pm - Recent (Discourse) Threads
1. Proposed 1. Proposed
4. Solar solutions with Home Assistant 4. Solar solutions with Home Assistant

View File

@@ -2,8 +2,8 @@
2. 7.35 pm - Agreement on Agenda Items 2. 7.35 pm - Agreement on Agenda Items
1. 7.40 pm - Administrivia (if any) 1. 7.40 pm - Administrivia (if any)
- Future Meeting Dates (rough date planning) - Future Meeting Dates (rough date planning)
1. 7.45 pm - Presentation 1 - Sway Customisation - @jdownie 1. 7.45 pm - Presentation 1
2. 8.15 pm - Presentation 2 - Homelab Brisbane in 2026 2. 8.15 pm - Presentation 2
4. 8.45 pm - Recent Discourse Threads 4. 8.45 pm - Recent Discourse Threads
1. Proposed 1. Proposed
1. Fabric 1. Fabric

View File

@@ -1,16 +1,15 @@
1. 6.30 pm - Welcome 1. 6.30 pm - Welcome
2. 6.35 pm - Agreement on Agenda Items 2. 6.35 pm - Agreement on Agenda Items
1. 6.40 pm - Administrivia (if any) 1. 6.40 pm - Administrivia (if any)
1. 6.45 pm - Presentation 1 - Sway customisation - @jdownie (held over from last meeting) 1. 6.45 pm - Presentation 1
2. 7.15 pm - Presentation 2 - TBA 3. 7.15 pm - Recent (Discourse) Threads
3. 7.45 pm - Recent (Discourse) Threads
1. Proposed 1. Proposed
1. AI - Claude Opus 4.6 vs the rest 1. Antigravity & Claude Opus 4.6
2. [OpenRouter](https://openrouter.ai) - the unified interface for LLMs 2. [OpenRouter](https://openrouter.ai) - the unified interface for LLMs
3. Anti-gravity - the preferred IDE for AI? 3. Recycling, e-waste, repair, etc. resources and discussion
6. GitLab or GitHub Actions 4. GitLab or GitHub Actions
7. HLB in the age of Online Safety [AgeRestricted Social Media Platforms Rules 2025](https://www.legislation.gov.au/F2025L00889/asmade/text) 5. HLB in the age of Online Safety [AgeRestricted Social Media Platforms Rules 2025](https://www.legislation.gov.au/F2025L00889/asmade/text)
8. More home assistant goodies 6. More home assistant goodies
9. Proxmox backup server 7. Proxmox backup server
4. 8.15 pm - Next meeting - online on 10 March 2026 4. 8.15 pm - Next meeting - online on 10 March 2026
5. 8.30 pm - Close 5. 8.30 pm - Close

View File

@@ -0,0 +1,11 @@
1. 7.30 pm - Welcome
2. 7.35 pm - Agreement on Agenda Items
1. 7.40 pm - Administrivia (if any)
- Future Meeting Dates (rough date planning)
1. 7.45 pm - Presentation 1
2. 8.15 pm - Presentation 2
4. 8.45 pm - Recent Discourse Threads
1. Proposed
1. Audio Bookshelf
2. Anti-gravity
5. 9.30 pm - Close

View File

@@ -0,0 +1,14 @@
1. 6.30 pm - Welcome
2. 6.35 pm - Agreement on Agenda Items
1. 6.40 pm - Administrivia (if any)
1. 6.45 pm - Presentation 1
1. 7.15 pm - Presentation 2
3. 7.45 pm - Recent (Discourse) Threads
1. Proposed
1. [Linux Remote Desktop](https://discourse.homelabbrisbane.com.au/t/linux-remote-desktop/380)
2. [Solar, solar, solar](https://discourse.homelabbrisbane.com.au/t/solar-solution-and-home-assistant/310/61)
4. [Paperless-ngx](https://discourse.homelabbrisbane.com.au/t/paperless-ngx-for-document-management/378)
5. [Note taking apps](https://discourse.homelabbrisbane.com.au/t/note-taking-web-clipping/369/5)
6. [Low cost VPS - BinaryLane vs OVH](https://discourse.homelabbrisbane.com.au/t/recommendations-for-a-low-cost-vps/159/6)
4. 8.15 pm - Next meeting - online on 9 April 2026
5. 8.30 pm - Close

View File

@@ -0,0 +1,14 @@
3. 6.30 pm - Welcome
2. 6.35 pm - Agreement on Agenda Items
1. 6.40 pm - Administrivia (if any)
1. 6.45 pm - Presentation 1
2. 7.15 pm - Presentation 2
3. 7.45 pm - Recent (Discourse) Threads
1. Proposed
1. [Linux Remote Desktop](https://discourse.homelabbrisbane.com.au/t/linux-remote-desktop/380)
2. [Solar, solar, solar](https://discourse.homelabbrisbane.com.au/t/solar-solution-and-home-assistant/310/61)
3. [Paperless-ngx](https://discourse.homelabbrisbane.com.au/t/paperless-ngx-for-document-management/378)
4. [Note taking apps](https://discourse.homelabbrisbane.com.au/t/note-taking-web-clipping/369/5)
5. [Low cost VPS - BinaryLane vs OVH](https://discourse.homelabbrisbane.com.au/t/recommendations-for-a-low-cost-vps/159/6)
4. 8.15 pm - Next meeting - online on 9 April 2026
5. 8.30 pm - Close

View File

@@ -0,0 +1,12 @@
1. 7.30 pm - Welcome
2. 7.35 pm - Agreement on Agenda Items
1. 7.40 pm - Administrivia (if any)
- Future Meeting Dates (rough date planning)
1. 7.45 pm - Presentation 1
2. 8.15 pm - Presentation 2
4. 8.45 pm - Recent Discourse Threads
1. Proposed
1. Cool Remote Control
2. Sway with StreamDeck
3. Forgejo - the open source purists CVS
5. 9.30 pm - Close

View File

@@ -0,0 +1,10 @@
3. 6.30 pm - Welcome
2. 6.35 pm - Agreement on Agenda Items
1. 6.40 pm - Administrivia (if any)
1. 6.45 pm - Presentation 1
1. 7.15 pm - Presentation 2
3. 7.45 pm - Recent (Discourse) Threads
1. Proposed
1. Pending
4. 8.15 pm - Next meeting - online on 7 May 2026
5. 8.30 pm - Close

View File

@@ -0,0 +1,10 @@
1. 7.30 pm - Welcome
2. 7.35 pm - Agreement on Agenda Items
1. 7.40 pm - Administrivia (if any)
- Future Meeting Dates (rough date planning)
1. 7.45 pm - Presentation 1
2. 8.15 pm - Presentation 2
4. 8.45 pm - Recent Discourse Threads
1. Proposed
1. Pending
5. 9.30 pm - Close

View File

@@ -0,0 +1,10 @@
3. 6.30 pm - Welcome
2. 6.35 pm - Agreement on Agenda Items
1. 6.40 pm - Administrivia (if any)
2. 6.45 pm - Presentation 1
3. 7.15 pm - Presentation 2
4. 7.45 pm - Recent (Discourse) Threads
1. Proposed
1. Pending
5. 8.15 pm - Next meeting - online on 11 June 2026
6. 8.30 pm - Close

View File

@@ -1,11 +1,128 @@
[ [
{
"coordinates": "-27.50129,153.1027015",
"start": "2026-07-23T18:30",
"end": "2026-07-23T21:30",
"title": "July 2026 In Person Catch Up",
"description": "Monthly In Person Get Together. Check Discourse for room details.",
"location": "Carindale Library",
"pin": {
"ciphertext": "XUFjTcV3",
"iv": "WtpvNa5aSMRMHoVL",
"salt": "jEZ5NzPNSCnhuBzmdybmkw==",
"tag": "cD15oQ0UJM5UNQ8Wb8GlIg=="
},
"presentation1": {
"presenter": "",
"topic": ""
},
"presentation2": {
"presenter": "",
"topic": ""
}
},
{
"coordinates": "",
"start": "2026-07-09T19:30",
"end": "2026-07-09T21:30",
"title": "July 2026 Online Catch Up",
"description": "Monthly Online Jitsi Get Together",
"location": "Jitsi",
"presentation1": {
"presenter": "",
"topic": ""
},
"presentation2": {
"presenter": "",
"topic": ""
}
},
{
"coordinates": "-27.50129,153.1027015",
"start": "2026-06-25T18:30",
"end": "2026-06-25T21:30",
"title": "June 2026 In Person Catch Up",
"description": "Monthly In Person Get Together. Check Discourse for room details.",
"location": "Carindale Library",
"pin": {
"ciphertext": "XUFjTcV3",
"iv": "WtpvNa5aSMRMHoVL",
"salt": "jEZ5NzPNSCnhuBzmdybmkw==",
"tag": "cD15oQ0UJM5UNQ8Wb8GlIg=="
},
"presentation1": {
"presenter": "",
"topic": ""
},
"presentation2": {
"presenter": "",
"topic": ""
}
},
{
"coordinates": "",
"start": "2026-06-11T19:30",
"end": "2026-06-11T21:30",
"title": "June 2026 Online Catch Up",
"description": "Monthly Online Jitsi Get Together",
"location": "Jitsi",
"presentation1": {
"presenter": "",
"topic": ""
},
"presentation2": {
"presenter": "",
"topic": ""
}
},
{
"start": "2026-05-28T18:30",
"end": "2026-05-28T21:30",
"title": "May 2026 In Person Catch Up",
"description": "",
"coordinates": "?,?",
"location": "",
"presentation1": {
"presenter": "Arjen Lentz",
"topic": "Repair Cafe"
},
"presentation2": {
"presenter": "",
"topic": ""
}
},
{
"coordinates": "",
"start": "2026-05-07T19:30",
"end": "2026-05-07T21:30",
"title": "May 2026 Online Catch Up",
"description": "Monthly Online Jitsi Get Together.",
"location": "Jitsi",
"presentation1": {
"presenter": "@shirbo",
"topic": "Automation Engines - N8N, OpenClaw and Claude Code"
},
"presentation2": {
"presenter": "",
"topic": ""
}
},
{ {
"start": "2026-04-23T18:30", "start": "2026-04-23T18:30",
"end": "2026-04-23T21:30", "end": "2026-04-23T21:30",
"title": "April 2026 In Person Catch Up", "title": "April 2026 In Person Catch Up",
"description": "Monthly In Person Get Together.", "description": "Monthly In Person Get Together. We'll be in meeting room 3. I'll post the PIN number for the meeting rooms on Discourse.",
"coordinates": "-27.38621539644283,153.0351689206467", "coordinates": "-27.38621539644283,153.0351689206467",
"location": "Chermside Library" "location": "Chermside Library",
"pin": {"ciphertext":"yeGr4KjI","iv":"O7AxFgIwWUhCUwgR","salt":"lLIqzElx9NadqbXIw8ttEw==","tag":"NtlkyQOKXSpx5hXYG8HcAA=="},
"presentation1": {
"presenter": "@skaylan",
"topic": "Open-source coding assistants with locally-running LLMs"
},
"presentation2": {
"presenter": "@GregY",
"topic": "Getting started with Home Assistant for solar / power management"
}
}, },
{ {
"coordinates": "", "coordinates": "",
@@ -13,15 +130,31 @@
"end": "2026-04-09T21:30", "end": "2026-04-09T21:30",
"title": "April 2026 Online Catch Up", "title": "April 2026 Online Catch Up",
"description": "Monthly Online Jitsi Get Together.", "description": "Monthly Online Jitsi Get Together.",
"location": "Jitsi" "location": "Jitsi",
"presentation1": {
"presenter": "@Marcos",
"topic": "Machine learning: Privacy considerations"
},
"presentation2": {
"presenter": "@Ceasar909",
"topic": "Solar feed in strategies"
}
}, },
{ {
"start": "2026-03-19T18:30", "start": "2026-03-25T18:30",
"end": "2026-03-19T21:30", "end": "2026-03-25T21:30",
"title": "March 2026 In Person Catch Up", "title": "March 2026 In Person Catch Up",
"description": "Monthly In Person Get Together.", "description": "Monthly In Person Get Together.",
"coordinates": "-27.50129,153.1027015", "coordinates": "-27.38621539644283,153.0351689206467",
"location": "Carindale Library" "location": "Chermside Library",
"presentation1": {
"presenter": "@Marco",
"topic": "Environmental sensor project"
},
"presentation2": {
"presenter": "@Belfry",
"topic": "Where are we? - GPS Geolocation in Linux"
}
}, },
{ {
"coordinates": "", "coordinates": "",
@@ -29,7 +162,15 @@
"end": "2026-03-05T21:30", "end": "2026-03-05T21:30",
"title": "March 2026 Online Catch Up", "title": "March 2026 Online Catch Up",
"description": "Monthly Online Jitsi Get Together.", "description": "Monthly Online Jitsi Get Together.",
"location": "Jitsi" "location": "Jitsi",
"presentation1": {
"presenter": "@techman",
"topic": "Fabric - the AI pipeline"
},
"presentation2": {
"presenter": "",
"topic": "Energy management in Home Assistant - Q&A"
}
}, },
{ {
"coordinates": "-27.38621539644283,153.0351689206467", "coordinates": "-27.38621539644283,153.0351689206467",
@@ -37,7 +178,15 @@
"end": "2026-02-19T21:30", "end": "2026-02-19T21:30",
"title": "February 2026 In Person Catch Up", "title": "February 2026 In Person Catch Up",
"description": "Monthly In Person Get Together. The PIN number for meeting room 2 is 947300", "description": "Monthly In Person Get Together. The PIN number for meeting room 2 is 947300",
"location": "Chermside Library" "location": "Chermside Library",
"presentation1": {
"presenter": "@jdownie",
"topic": "Sway customisation"
},
"presentation2": {
"presenter": "",
"topic": ""
}
}, },
{ {
"coordinates": "", "coordinates": "",
@@ -45,7 +194,15 @@
"end": "2026-02-05T21:30", "end": "2026-02-05T21:30",
"title": "February 2026 Online Catch Up", "title": "February 2026 Online Catch Up",
"description": "Monthly Online Jitsi Get Together", "description": "Monthly Online Jitsi Get Together",
"location": "Jitsi" "location": "Jitsi",
"presentation1": {
"presenter": "@jdownie",
"topic": "Sway Customisation"
},
"presentation2": {
"presenter": "",
"topic": "Homelab Brisbane in 2026"
}
}, },
{ {
"coordinates": "-27.50129,153.1027015", "coordinates": "-27.50129,153.1027015",
@@ -53,7 +210,15 @@
"end": "2026-01-22T21:30", "end": "2026-01-22T21:30",
"title": "January 2026 In Person Catch Up", "title": "January 2026 In Person Catch Up",
"description": "Monthly In Person Get Together. The PIN number for meeting room 1 is 593134.", "description": "Monthly In Person Get Together. The PIN number for meeting room 1 is 593134.",
"location": "Carindale Library" "location": "Carindale Library",
"presentation1": {
"presenter": "@AB",
"topic": "Git best practices"
},
"presentation2": {
"presenter": "@jdownie",
"topic": "Customising the home page menu"
}
}, },
{ {
"coordinates": "", "coordinates": "",
@@ -61,7 +226,15 @@
"end": "2026-01-06T21:30", "end": "2026-01-06T21:30",
"title": "January 2026 Online Catch Up", "title": "January 2026 Online Catch Up",
"description": "Monthly Online Jitsi Get Together", "description": "Monthly Online Jitsi Get Together",
"location": "Jitsi" "location": "Jitsi",
"presentation1": {
"presenter": "@Belfry",
"topic": "IPv6 - Your computer uses it, why shouldn't you?"
},
"presentation2": {
"presenter": "@shirbo",
"topic": "Push notifications in Home Assistant, n8n and Uptime Kuma"
}
}, },
{ {
"coordinates": "", "coordinates": "",
@@ -69,7 +242,15 @@
"end": "2025-12-09T21:30", "end": "2025-12-09T21:30",
"title": "December 2025 Online Catch Up", "title": "December 2025 Online Catch Up",
"description": "Monthly Online Jitsi Get Together", "description": "Monthly Online Jitsi Get Together",
"location": "Jitsi" "location": "Jitsi",
"presentation1": {
"presenter": "@Belfry",
"topic": "Solar management in Home Assistant"
},
"presentation2": {
"presenter": "",
"topic": "NixOS v FreeBSD v15 on Starlink Standby"
}
}, },
{ {
"coordinates": "-27.38621539644283,153.0351689206467", "coordinates": "-27.38621539644283,153.0351689206467",
@@ -77,7 +258,15 @@
"end": "2025-11-27T21:30", "end": "2025-11-27T21:30",
"title": "November 2025 In Person Catch Up", "title": "November 2025 In Person Catch Up",
"description": "Monthly In Person Get Together. The PIN number for the meeting room is 452400.", "description": "Monthly In Person Get Together. The PIN number for the meeting room is 452400.",
"location": "Chermside Library" "location": "Chermside Library",
"presentation1": {
"presenter": "@Belfry",
"topic": "Solar in your Home Assistant"
},
"presentation2": {
"presenter": "",
"topic": "Loose ends - vLANs and DNS"
}
}, },
{ {
"coordinates": "", "coordinates": "",
@@ -85,7 +274,15 @@
"end": "2025-11-11T21:30", "end": "2025-11-11T21:30",
"title": "November 2025 Online Catch Up", "title": "November 2025 Online Catch Up",
"description": "Monthly Online Jitsi Get Together", "description": "Monthly Online Jitsi Get Together",
"location": "Jitsi" "location": "Jitsi",
"presentation1": {
"presenter": "@techman",
"topic": "My journey to FreeBSD and back"
},
"presentation2": {
"presenter": "",
"topic": ""
}
}, },
{ {
"coordinates": "-27.50129,153.1027015", "coordinates": "-27.50129,153.1027015",
@@ -93,7 +290,15 @@
"end": "2025-10-23T21:00", "end": "2025-10-23T21:00",
"title": "October 2025 In Person Catch Up", "title": "October 2025 In Person Catch Up",
"description": "Monthly In Person Get Together. The PIN number for the meeting room is 593134.", "description": "Monthly In Person Get Together. The PIN number for the meeting room is 593134.",
"location": "Carindale Library" "location": "Carindale Library",
"presentation1": {
"presenter": "@jdownie",
"topic": "Getting started with Docker"
},
"presentation2": {
"presenter": "",
"topic": "Q&A - Your questions asked"
}
}, },
{ {
"coordinates": "", "coordinates": "",
@@ -101,7 +306,15 @@
"end": "2025-10-14T21:00", "end": "2025-10-14T21:00",
"title": "October 2025 Online Catch Up", "title": "October 2025 Online Catch Up",
"description": "Monthly Online Jitsi Get Together", "description": "Monthly Online Jitsi Get Together",
"location": "Jitsi" "location": "Jitsi",
"presentation1": {
"presenter": "@Belfry",
"topic": "DNS part 2"
},
"presentation2": {
"presenter": "@jdownie",
"topic": "Getting started with Docker"
}
}, },
{ {
"coordinates": "-27.50129,153.1027015", "coordinates": "-27.50129,153.1027015",
@@ -109,7 +322,15 @@
"end": "2025-09-25T21:00", "end": "2025-09-25T21:00",
"title": "September 2025 In Person Catch Up", "title": "September 2025 In Person Catch Up",
"description": "Monthly In Person Get Together", "description": "Monthly In Person Get Together",
"location": "Carindale Library" "location": "Carindale Library",
"presentation1": {
"presenter": "",
"topic": ""
},
"presentation2": {
"presenter": "@Belfry",
"topic": "Homelab DNS - AdGuard Home / Pi-Hole / Technetium / NextDNS / Bind9"
}
}, },
{ {
"coordinates": "", "coordinates": "",
@@ -117,7 +338,15 @@
"end": "2025-09-09T21:00", "end": "2025-09-09T21:00",
"title": "September 2025 Online Catch Up", "title": "September 2025 Online Catch Up",
"description": "Monthly Online Jitsi Get Together", "description": "Monthly Online Jitsi Get Together",
"location": "Jitsi" "location": "Jitsi",
"presentation1": {
"presenter": "@kangie",
"topic": "WSL"
},
"presentation2": {
"presenter": "@techman",
"topic": "NixOS - The Curly Bits"
}
}, },
{ {
"coordinates": "-27.38621539644283,153.0351689206467", "coordinates": "-27.38621539644283,153.0351689206467",
@@ -125,7 +354,15 @@
"end": "2025-08-21T21:00", "end": "2025-08-21T21:00",
"title": "August 2025 In Person Catch Up", "title": "August 2025 In Person Catch Up",
"description": "Monthly In Person Get Together", "description": "Monthly In Person Get Together",
"location": "Chermside Library" "location": "Chermside Library",
"presentation1": {
"presenter": "@Belfry",
"topic": "Homelab Certificate Management"
},
"presentation2": {
"presenter": "@shirbo",
"topic": "n8n"
}
}, },
{ {
"coordinates": "", "coordinates": "",
@@ -133,7 +370,15 @@
"end": "2025-08-12T21:30", "end": "2025-08-12T21:30",
"title": "August 2025 Online Catch Up", "title": "August 2025 Online Catch Up",
"description": "Monthly Online Jitsi Get Together", "description": "Monthly Online Jitsi Get Together",
"location": "Jitsi" "location": "Jitsi",
"presentation1": {
"presenter": "@techman",
"topic": "NixOS"
},
"presentation2": {
"presenter": "@jdownie",
"topic": "Hyprland and starship"
}
}, },
{ {
"start": "2025-07-24T18:30:00", "start": "2025-07-24T18:30:00",
@@ -141,14 +386,30 @@
"title": "July 2025 In Person Catch Up", "title": "July 2025 In Person Catch Up",
"description": "Monthly In Person Get Together", "description": "Monthly In Person Get Together",
"location": "Chermside Library", "location": "Chermside Library",
"coordinates": "-27.38621539644283,153.0351689206467" "coordinates": "-27.38621539644283,153.0351689206467",
"presentation1": {
"presenter": "",
"topic": "Meshtastic - Up close and Personal"
},
"presentation2": {
"presenter": "",
"topic": ""
}
}, },
{ {
"start": "2025-07-08T19:00:00", "start": "2025-07-08T19:00:00",
"end": "2025-07-08T21:00", "end": "2025-07-08T21:00",
"title": "July 2025 Online Catch Up", "title": "July 2025 Online Catch Up",
"description": "Monthly Online Jitsi Get Together", "description": "Monthly Online Jitsi Get Together",
"location": "Jitsi" "location": "Jitsi",
"presentation1": {
"presenter": "James",
"topic": "Git"
},
"presentation2": {
"presenter": "Terry",
"topic": "Fossil"
}
}, },
{ {
"start": "2025-06-19T18:30:00", "start": "2025-06-19T18:30:00",
@@ -156,13 +417,29 @@
"title": "June 2025 In Person Catch Up", "title": "June 2025 In Person Catch Up",
"description": "Social get-together. Discussion about large language models and meshtastic experiments. Clumsy attempt at adhering to an agenda and taking minutes.", "description": "Social get-together. Discussion about large language models and meshtastic experiments. Clumsy attempt at adhering to an agenda and taking minutes.",
"location": "Chermside Library", "location": "Chermside Library",
"coordinates": "-27.38621539644283,153.0351689206467" "coordinates": "-27.38621539644283,153.0351689206467",
"presentation1": {
"presenter": "",
"topic": ""
},
"presentation2": {
"presenter": "",
"topic": ""
}
}, },
{ {
"start": "2025-06-10T19:00:00", "start": "2025-06-10T19:00:00",
"end": "2025-06-10T21:00", "end": "2025-06-10T21:00",
"title": "June 2025 Online Catch Up", "title": "June 2025 Online Catch Up",
"description": "Getting started with meshtastic", "description": "Getting started with meshtastic",
"location": "Jitsi" "location": "Jitsi",
"presentation1": {
"presenter": "",
"topic": ""
},
"presentation2": {
"presenter": "",
"topic": ""
}
} }
] ]

View File

@@ -0,0 +1,15 @@
1. 6.30 pm - Welcome
2. 6.35 pm - Agreement on Agenda Items
1. 6.40 pm - Administrivia (if any)
1. 6.45 pm - [Presentation 1 - Sway customisation](https://menu.downie.net.au/hlb/sway.zip) - @jdownie (held over from last meeting)
3. 7.15 pm - Recent (Discourse) Threads
1. Proposed
1. Antigravity & Claude Opus 4.6
2. [OpenRouter](https://openrouter.ai) - the unified interface for LLMs
3. Recycling, e-waste, repair, etc. resources and discussion
4. GitLab or GitHub Actions
5. HLB in the age of Online Safety [AgeRestricted Social Media Platforms Rules 2025](https://www.legislation.gov.au/F2025L00889/asmade/text)
6. More home assistant goodies
7. Proxmox backup server
4. 8.15 pm - Next meeting - online on 10 March 2026
5. 8.30 pm - Close