101010.pl is one of the many independent Mastodon servers you can use to participate in the fediverse.
101010.pl czyli najstarszy polski serwer Mastodon. Posiadamy wpisy do 2048 znaków.

Server stats:

574
active users

#rpi

4 posts3 participants0 posts today

Lately I've been doing more #SelfHosting again due to the current situation. Of course, I'm paying particular attention to power consumption and noise. After good experiences with the #ARM64 architecture, even with power-hungry applications such as [Mastodon](fedifreu.de/about), I'm now using the smartphone technology for my homeservers, too.

There are #SBCs with more open hardware, but the #RaspberryPi is widely available, well documented, powerful and inexpensive. And it is available with up to 16 GB of RAM.

Anyone operating a server on the Internet must install #security updates quickly. However, many people forget to restart running software so that the new version runs instead of the old one. The #needrestart tool helps with this on Debian-based Linux systems, which unfortunately is usually not pre-installed.

On my Raspberry Pi 4, `needrestart` always runs correctly (automatically after `apt upgrade`). On my Raspberry Pi 5, however, I first had to create a configuration file as described by the main developer here:
github.com/liske/needrestart/b
Previously, the tool *always* claimed that a reboot was necessary because it thought an outdated Linux kernel was running.

Next, I want to activate #LUKS hard drive encryption on both raspis. Unfortunately, this is not as easy under #Raspbian or #RaspberryPiOS as on other Debian systems. If you have managed this: Please let me know how you did it!

Mastodon, gehostet auf fedifreu.deFedifreudeDiese Mastodon-Instanz wird vom überregionalen netzaktivistischen Zusammenhang Datenfreude <https://datenfreu.de> betrieben. Dazu zählen https://datenpunks.de und https://kleindatenverein.org.
#rpi#rpi5#raspi

In letzter Zeit mache ich aus gegebenem Anlass wieder mehr #SelfHosting. Natürlich achte ich dabei besonders auf den Stromverbrauch. Nach guten Erfahrungen mit der #ARM64-Architektur selbst bei leistungshungrigen Anwendungen wie Mastodon setze ich jetzt auch zuhause auf auf die aus Smartphones bekannte Technologie.

Es gibt zwar #SBCs mit offenerer Hardware, aber der #RaspberryPi ist überall erhältlich, gut dokumentiert, leistungsfähig und preiswert. Und es gibt ihn mit bis zu 16 GB RAM.

Wer einen Server am Internet betreibt, muss zügig #Sicherheitsupdates einspielen. Viele vergessen aber, laufende Software neuzustarten, damit die neue Version läuft statt der alten. Dabei hilft auf debianbasierten Linux-Systemen das Tool #needrestart, das leider meist nicht vorinstalliert ist.

Auf meinem Raspberry Pi 4 läuft needrestart schon immer korrekt (automatisch nach apt upgrade). Auf meinem Raspberry Pi 5 musste ich aber erst eine Konfigurationsdatei anlegen, wie es der Hauptentwickler hier beschreibt:
github.com/liske/needrestart/b
Bis dahin behauptete das Tool immer, dass ein reboot nötig sei, weil ein veralteter Linux-Kernel laufe.

Als nächstes will ich auf beiden Raspis die Festplattenverschlüsselung aktivieren. Das ist unter #Raspbian bzw. #RaspberryPiOS leider nicht so einfach wie auf anderen Debian-Systemen. Wenn ihr das geschafft habt: Schreibt gern eure Tipps!

Mastodon, gehostet auf fedifreu.deFedifreudeDiese Mastodon-Instanz wird vom überregionalen netzaktivistischen Zusammenhang Datenfreude <https://datenfreu.de> betrieben. Dazu zählen https://datenpunks.de und https://kleindatenverein.org.
#rpi#rpi5#raspi

#TIL: #RaspberryPi5 doesn't support #WakeOnLAN 😩 🤦‍♂️

forums.raspberrypi.com/viewtop

So how am I supposed to reduce power consumption when not using our #LibreELEC setup on #RPi? 🤔

I do have Shelly Plug S available but I guess that I'd need a remote shutdown command before turning off power. Furthermore: how do I enable auto-boot when power resumes?

Any ideas?

forums.raspberrypi.comRPi5B wake-on LAN by magic packet? - Raspberry Pi Forums

It is amazing to see how good software does the job and stays out of your way. Example of this is #PiHole that is for years now running on tiny #RPi 3A+ without any problems 🙌 and serving all clients in my network. ❤️

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

Version 12.8 of the Workbench distribution "Amikit" is available to all registered users free of charge. The software collection has been expanded to include the Jump'n Run "Absolute Zero" and the "World Construction Set" as well as a utility that enables the use of joypads. You can now switch between different windows with the key combination LeftAmiga-Tab.

amiga-news.de/en/news/AN-2025-

www.amiga-news.deamiga-news.de - Workbench distribution: AmiKit 12.8

I think it is cool to get access these tech to tinker with it; great to learn hardware dev in a relatively safe and -documented- environment.. Be careful tho with vision projects, there are laws in Europe, and/or neighbors may not be happy to have a hobbyst surveillance camera pointing at their garden (some people do that and others complain on social media...)

Every Developer Needs a Raspberry Pi
youtu.be/Vp4glSVPT8o?si=aIqNGz

NB : "Kill all persons" is probably a bug..

#SBC#privacy#rpi

With Version 0.9.0, Howard Price released a major update of his disassembler Aira Force for Amiga programs under Windows/64-bit, Windows/32-bit, macOS, Linux/64-bit and the Raspberry Pi. The new version 0.9.1 offers, among other new features, Amiga audio DMA emulation:

amiga-news.de/en/news/AN-2025-

www.amiga-news.deamiga-news.de - Amiga disassembler with emulator: Aira Force 0.9.1 (Windows, Linux, macOS & RPi)

I'm starting a Raspberry Pi build that'll replace the 24/7 services my PC currently serves. It's a bittersweet project since my PC has been faithful for 12+ years but lately is really showing its age. I was actually given the PC by an old neighbor who was upgrading himself! It'll be very nice to save a little bit of energy and space in my office as well, as I move to a laptop for my daily grind and let the Pi do its thing on my shelf :)

#RaspberryPi#rpi#pc

#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 laniecarmelo@gmail.com
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