๐Ÿš€ Dev Summary (2026-02-26): Today marks a significant step forward in our project development with a single impactful commit! ๐Ÿš€

In the stormux repository, we've made strides toward enhancing user flexibility and customization. Our latest commit introduces initial support for custom mount options, ensuring that all components are seamlessly integrated into the /mnt directory. This foundational work sets the stage for future enhancements, allowing users to tailor their environments with greater precision.

Stay tuned as we continue to push boundaries and deliver robust solutions! ๐Ÿš€๐Ÿ”

#DevUpdate #TechNews #stormux

Summary generated with Ollama using the qwen2.5:14b-instruct-q4_K_M model.

Any Tintin++ users out there willing to share tips? This is the only #MUD client I can get working on #Stormux, and to be honest, the scripting just to add a simple trigger and the error messages are confusing to me. I'm trying to set up some simple triggers for Erion MUD and having a hard time figuring out what I'm doing.
#MUDClients #MUDClient #tintin #orca #ScreenReader #Linux #archlinuxarm @mastoblind @main
Question to #blind #linux users: I'm stuck using my #RaspberryPi500 as my computer for a bit because my PC quit working. Can anyone recommend a #Mastodon client? I'm on #Stormux, based on #ArchLinuxArm.
#accessibility #orca #ScreenReader @mastoblind @main

In better news, Linux has a (work in progress) book reading package!

https://git.stormux.org/storm/bookstorm

#foss #linux #accessibility #blind #stormux

Okay, so some good news for once. I got the #stormux Raspberry Pi distribution running on a Pi 400. Makes me want to buy a Pi500 later on, but I think once my BTSpeak gets here I'll be all enamored with it. Anyway, it works. The Fenrir key being the Super key takes a second to get used to, but I'll deal with it. I'd so much rather it be the capslock key.

So, my "Linux in bed" dream is a reality. Of course, with the BTSpeak it'll be even better. But Stormux isn't bad, and even comes with a getting started utility for connecting to Wi-fi, setting location, filling out the SD card space, all that.

https://stormux.org/

#stormux #foss #RaspberryPi #linux

Stormux - The accessible Linux distribution for the Raspberry Pi 4 and 5

Stormux - The accessible Linux distribution for the Raspberry Pi 4 and 5

From the Stormux mailing list:

Howdy All,

I have been working on I38 after receiving some feedback from people who tested it. To everyone who did test, thank you for your time and help. Here is a non exhaustive list of changes:

- The menu has been completely revamped. It no longer requires expanding every submenu just to see the programs listed there. It is still accessed with alt+f1.
- A new panel mode with informational and task oriented items, weather, bluetooth (optional), system information, power controls (optional), and notes. To access the panel press control+alt+Tab. Because it's not a traditional tray, applications cannot be moved or minimized to it. Also, remind has been moved to the panel, and there is an experimental magic wormhole GUI.
- New installations open a guide that will hopefully be useful to new users. This only happens the first time i3 is launched after generating a new config.
- Updated README.

If no one finds any problems or reports bugs, I will make a new tag for the current stable version in the next few days.

Thanks,
Storm

#Stormux #i38 #linux #foss

To people who use #HomeAssistant, do you need #NodeRed to get the most out of it? Found this guide to setting up HomeAssistant in #Docker that helped me get both installed, but Node-Red's interface is pretty much unusable with a #ScreenReader, and I'm thinking of uninstalling it.
#SelfHosting #SelfHosted #RaspberryPi #RaspberryPi500 #RPi #RPi500 #Linux #Stormux #ArchLinuxARM
@selfhosting @selfhost @selfhosted
How to Install Home Assistant using Docker Compose

The Container Variant of Home Assistant

Pi My Life Up
Wondering if I should switch my #RaspberryPi OS from #Stormux, based on #ArchLinuxARM, to #HomeAssistantOS. I mostly work with it over SSH anyway and this might allow me to do more with it. What do others who #SelfHost think?
#SelfHosting #SelfHosted #Linux
@selfhost @selfhosting @selfhosted

I'm curious to hear what others are #SelfHosting! Here's my current setup:

Hardware & OS

Infrastructure & Networking

Security & Monitoring

Authentication & Identity Management

  • Authelia (Docker): Just set this up for two-factor authentication and single sign-on. Seems to be working well so far!
  • LLDAP (Docker): Lightweight LDAP server for managing authentication. Also seems to be working pretty well!
    #AuthenticationTools #IdentityManagement

Productivity & Personal Tools

Notifications & Development Workflow

  • Notifications via: #Ntfy (Docker) and Zoho's ZeptoMail (#Zoho)
  • Development Environment: Mostly using VSCode connected to my server via Remote-SSH extension. #VSCodeRemote

Accessibility Focus โ™ฟ๏ธ๐Ÿ–ฅ๏ธ

Accessibility heavily influences my choicesโ€”I use a screen reader full-time (#ScreenReader), so I prioritize services usable without sight (#InclusiveDesign#DigitalAccessibility). Always open to discussing accessibility experiences or recommendations!

I've also experimented with:

  • Ollama (#Ollama): Not enough RAM on my Pi.
  • Habit trackers like Beaver Habit Tracker (#HabitTracking): Accessibility issues made it unusable for me.

I don't really have a media collection, so no Plex or Jellyfin here (#MediaServer)โ€”but I'm always open to suggestions! I've gotten a bit addicted to exploring new self-hosted services! ๐Ÿ˜„

What's your setup like? Any cool services you'd recommend I try?

#SelfHosted #LinuxSelfHost #OpenSource #TechCommunity #FOSS #TechDIY

@selfhost @selfhosted @selfhosting

#SelfHosted #LinkAce Bookmark Manager Running, but Unable to Check for Updates or Generate a Cron Token

Hi all. Hoping someone in the #SelfHosting community can help here. I'm running LinkAce in #Docker behind non-Dockerized #Caddy and #Authelia, and most things are working, but I'm seeing "Could not check for updates" at the bottom of each page, and when I tried to generate a cron token, nothing happened except for the generate button graying out. I am seeing one or two 404 errors in my logs, but I don't know if that's causing the problem or not. I don't know much about #PHP applications.

Logs

2025-02-22 23:25:26,460 INFO supervisord started with pid 1
2025-02-22 23:25:27,465 INFO spawned: 'php-fpm' with pid 8
2025-02-22 23:25:27,467 INFO spawned: 'caddy' with pid 9
[22-Feb-2025 23:25:27] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root
[22-Feb-2025 23:25:27] NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root
[22-Feb-2025 23:25:27] NOTICE: fpm is running, pid 8
[22-Feb-2025 23:25:27] NOTICE: ready to handle connections
{"level":"info","ts":1740266727.5264525,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
{"level":"info","ts":1740266727.5280282,"msg":"adapted config to JSON","adapter":"caddyfile"}
{"level":"warn","ts":1740266727.5280406,"msg":"Caddyfile input is not formatted; run 'caddy fmt --overwrite' to fix inconsistencies","adapter":"caddyfile","file":"/etc/caddy/Caddyfile","line":2}
{"level":"info","ts":1740266727.529092,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//localhost:2019","//[::1]:2019","//127.0.0.1:2019"]}
{"level":"warn","ts":1740266727.529331,"logger":"http.auto_https","msg":"server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server","server_name":"srv0","http_port":80}
{"level":"info","ts":1740266727.5294206,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0x40000bab00"}
{"level":"warn","ts":1740266727.530186,"logger":"http","msg":"HTTP/2 skipped because it requires TLS","network":"tcp","addr":":80"}
{"level":"warn","ts":1740266727.530195,"logger":"http","msg":"HTTP/3 skipped because it requires TLS","network":"tcp","addr":":80"}
{"level":"info","ts":1740266727.530198,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}
{"level":"info","ts":1740266727.5412574,"msg":"autosaved config (load with --resume flag)","file":"/home/www-data/.config/caddy/autosave.json"}
{"level":"info","ts":1740266727.541271,"msg":"serving initial configuration"}
{"level":"info","ts":1740266727.5477707,"logger":"tls","msg":"cleaning storage unit","storage":"FileStorage:/home/www-data/.local/share/caddy"}
{"level":"info","ts":1740266727.5541356,"logger":"tls","msg":"finished cleaning storage units"}
2025-02-22 23:25:28,555 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2025-02-22 23:25:28,555 INFO success: caddy entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
::1 - 22/Feb/2025:23:25:34 +0000 "GET /index.php" 200
::1 - 22/Feb/2025:23:25:34 +0000 "GET /index.php" 404

Docker Compose file

services:
# --- LinkAce
linkace:
image: docker.io/linkace/linkace:latest
container_name: linkace
restart: unless-stopped
depends_on:
- linkace_db
ports:
- "0.0.0.0:3009:80"
volumes:
- ./.env:/app/.env
- ./backups:/app/storage/app/backups

# --- Database
linkace_db:
image: docker.io/library/mariadb:11.5
container_name: linkace_db
restart: unless-stopped
command: mariadbd --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
environment:
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
- MYSQL_USER=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
- MYSQL_DATABASE=${DB_DATABASE}
volumes:
- db:/var/lib/mysql

# --- Cache
linkace_redis:
image: docker.io/bitnami/redis:7.4
container_name: linkace_redis
restart: unless-stopped
environment:
- REDIS_PASSWORD=${REDIS_PASSWORD}

volumes:
db:

.env (secrets redacted)

## LINKACE CONFIGURATION

# The app key is generated later, please leave it like that
APP_KEY=redacted
APP_ENV=development

## Configuration of the database connection
## Attention: Those settings are configured during the web setup, please do not modify them now.
# Set the database driver (mysql, pgsql, sqlsrv, sqlite)
DB_CONNECTION=mysql
# Set the host of your database here
DB_HOST=linkace_db
# Set the port of your database here
DB_PORT=3306
# Set the database name here
DB_DATABASE=linkace
# Set both username and password of the user accessing the database
DB_USERNAME=linkace
# Wrap your password into quotes (") if it contains special characters
DB_PASSWORD=redacted

## Redis cache configuration
# Set the Redis connection here if you want to use it
REDIS_HOST=linkace_redis
REDIS_PASSWORD=redacted
REDIS_PORT=6379
APP_DEBUG=true

# SSO configuration
SSO_ENABLED=true
SSO_OIDC_ENABLED=true
SSO_REGISTRATION_ENABLED=true
REGULAR_LOGIN_DISABLED=true
SSO_OIDC_BASE_URL=https://auth.laniecarmelo.tech/ # Your Authelia base URL
SSO_OIDC_CLIENT_ID=linkace
SSO_OIDC_CLIENT_SECRET='redacted'
SSO_OIDC_SCOPES=openid,profile,email

Caddyfile snippet

{
email [email protected]
debug
acme_dns cloudflare redacted
http_port 80
https_port 443
admin :2019 {
origins 127.0.0.1:2019 0.0.0.0:2019 stormux:2019 caddy.laniecarmelo.tech
}
}

(logconfig) {
log {
output stdout
format json
}
}

(auth_headers) {
header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
}

(proxy_config) {
header_up Host {http.request.host}
header_up X-Real-IP {http.request.remote}
header_up X-Forwarded-User {http.auth.user.id} # Pass user ID
header_up X-Forwarded-Email {http.auth.user.email} # Pass email
}

(authelia_middleware) {
forward_auth localhost:9091 {
uri /api/verify?rd=https://auth.laniecarmelo.tech
copy_headers Remote-User Remote-Email Remote-Groups Authorization
}
}

bookmarks.laniecarmelo.tech {
route {
import authelia_middleware
reverse_proxy localhost:3009 { # Directly proxy to LinkAce's web server
import proxy_config
}
}
import logconfig
import auth_headers
}

Authelia config snippet

- domain: "*.laniecarmelo.tech"
policy: bypass
networks:
- 192.168.1.0/24 # Local network
- 172.17.0.0/16 # Docker bridge network
- 100.64.0.0/10 # Tailscale network

- domain: "bookmarks.laniecarmelo.tech"
resources: ["^/api.*"]
policy: bypass

- domain: "*.laniecarmelo.tech"
policy: one_factor

- client_id: linkace
client_name: LinkAce bookmarking app
client_secret: redacted
public: false
authorization_policy: one_factor
scopes: [openid, groups, profile, email, offline_access]
redirect_uris:
- https://bookmarks.laniecarmelo.tech/auth/oidc/callback
grant_types: [authorization_code]
response_types: [code]
response_modes: [form_post, query]
userinfo_signed_response_alg: none
consent_mode: explicit
pre_configured_consent_duration: "1y"

Does anyone know what might be causing this and how I can fix it?
#Linux #ArchLinuxARM #Stormux #RaspberryPi #RaspberryPi500 #RPi #RPi500 #tech #technology
@selfhost @selfhosted @selfhosting