![User banner](https://caneandable.social/system/accounts/headers/113/388/894/999/756/599/original/572a6982093d8be2.jpg)
![RareBird15](https://caneandable.social/system/accounts/avatars/113/388/894/999/756/599/original/fd9a6d2569a65d5e.jpg?format=webp&thumbnail=64)
\#Christian woman. #Aroace. Totally #blind and #autistic with multiple #chronicIllnesses. #UsabilityTester, aspiring #AccessibilityConsultant. #Disability rights advocate. Interests: #technology, #reading, #gaming, #food, #OpenSource. Human to Squeaker (MinPin). Creating a nonprofit for multiply disabled people. \#tfr, #Fedi22
@Xanza Not sure what you mean. I wanted to use my services with my domain. I tried a reverse proxy by itself and it wouldn't work because my ISP blocks ports, so I set up Cloudflare instead. Then I found out my services would work better with Caddy, so I set that up. I also originally wasn't using Unbound, but then I realized my services were having trouble communicating, and I thought it would help to have more control over DNS rules, which it has.
@toastal My ISP blocks ports. Cloudflare was the only way I could get reverse proxying to work.
@tofuwabohu Yes, I'm running Docker directly on the Raspberry Pi. IDrive automatically backs up the folders you specify at a time you choose. I think it uses Cron or something.
๐ Self-Hosting Journey Update! ๐
๐ Self-Hosting Journey Update! ๐
After weeks of work, I'm excited to share my self-hosted setup! ๐ I'm running everything on a Raspberry Pi 500 with Stormux (Arch Linux ARM-based), 8 GB RAM, and a 512 GB SD card (planning to upgrade to SSD or NAS as soon as I can afford it). Here's what Iโve built so far:
๐ง Services in Action: \- Development: Forgejo, Code-Server, Woodpecker CI \- Productivity: Joplin Server, Monica CRM, Homepage dashboard \- Monitoring: Prometheus + Alertmanager, Grafana, Netdata, Uptime Kuma \- Networking: AdGuardHome + Unbound, Tailscale VPN \- Tools: MiniFlux, Linkding, TheLounge \- Management: Portainer, Cockpit, Watchtower
๐ Security & Access: \- Caddy + Cloudflare Zero Trust/Access for reverse proxy & SSO \- FirewallD + Fail2ban for extra protection
๐ง Emails Powered by Zoho ZeptoMail: All email-capable services (e.g., Forgejo, Joplin) are configured for reliable notifications.
๐พ Backups: Using IDrive's 5 TB plan for peace of mind.
This journey has been challenging yet rewarding! ๐ I'd love to hear your thoughtsโespecially tips on scaling storage or optimizing performance. Let's chat! ๐ฌ
\#SelfHosting #RaspberryPi #Linux #ArchLinuxARM #Stormux #Tech #OpenSource #DIYTech #HomeLab #CloudComputing #AdGuardHome #Grafana #Prometheus #CodeServer #Portainer
@NegativeLookBehind I updated the gist with some log files. There are a lot of 401 errors in the homepage logs. I know my API keys are correct so I'm not sure how to fix them.
Help Needed: Homepage Configuration โ Missing Widgets & API Errors
Help Needed: Homepage Configuration โ Missing Widgets & API Errors
Hi everyone,
I'm running Homepage (v0.10.9) in Docker on Arch Linux ARM (Stormux) and encountering issues with missing widgets and API errors. Some widgets are showing as "Missing" on the dashboard, and I'm seeing repeated HTTP 401 errors for Portainer and Tailscale in the logs.
Setup Details: \- Homepage Version: v0.10.9 \- Host OS: Arch Linux ARM (Stormux) \- Host IP: 192.168.1.137 \- Docker Network: All containers are on homepage\_net (gateway: 172.23.0.1) \- Docker Containers: Homepage, Portainer, Miniflux, Uptime Kuma, Glances, etc.
Issues:
- Several widgets showing as "Missing": \- AdGuard (running on host, not in Docker) \- Netdata \- Uptime Kuma \- Docker \- Portainer \- Miniflux \- Tailscale
- Repeated HTTP 401 errors for Portainer and Tailscale in logs.
What I've Tried:
- Separated service definitions (services.yaml) and widget configurations (widgets.yaml).
- Updated widget URLs to use appropriate addresses (host IP for AdGuard, container names or Docker network IPs for containerized services).
- Regenerated API keys for Portainer and Tailscale.
- Verified all containers are on the same network (homepage\_net).
- Enabled debug logging in Homepage.
Configuration Files: I've uploaded my configuration files here: https://gist.github.com/Lanie-Carmelo/e01d973bc3b208e5082011e4b76532f6. API keys and passwords have been redacted.
Any help troubleshooting this would be greatly appreciated! Let me know if you need additional details.
Hashtags & Mentions: \#SelfHosting #Linux #ArchLinux #Docker #HomeLab #OpenSource #WebDashboard #ArchLinuxARM @selfhosted @linux @docker @opensource @selfhosting @selfhost
@MaggiWuerze I thought 443 might have been blocked by my ISP at first because I tried it and had the same issues with it.
@jyarbrough @selfhost
@bravemonkey @selfhosting @selfhosted @linux @MangoPenguin @geillescas Yeah, I'm very tempted to go back to the way I had things, which allowed me to access services with my Raspberry Pi's IP and a port number. Since I don't leave home much and I'm not the ISP account holder, this is starting to seem like more trouble than it's worth.
@bravemonkey The plan was to set it to low temporarily. The choices were high, medium, low, or off. One of the ports Traefik listens on is 80. I used portchecktool.com and it told me the connection was timing out.
@geillescas @selfhost @selfhosting @selfhosted @linux I'll have to see about this. I'm not the account holder and the one who is, my stepdad, isn't exactly tech-savvy. My router did have a firewall blocking traffic, but I changed its security level and looked at the rules, so that shouldn't be an issue anymore.
@MangoPenguin Nope, public IP starts with 69.58.
@Jimbabwe Yes. I originally tried 443 but when it didn't work, I thought it might have been blocked by my ISP.
I'm new to self-hosting and struggling to get my services accessible externally. I'm using Traefik as a reverse proxy on a Raspberry Pi 500 running Stormux (Arch Linux ARM-based). My public IP
I'm new to self-hosting and struggling to get my services accessible externally. I'm using Traefik as a reverse proxy on a Raspberry Pi 500 running Stormux (Arch Linux ARM-based). My public IP resolves correctly via Dynu DNS, and ports 80 and 8444 are forwarded in my router. I've configured Traefik to use port 8444 for HTTPS, but external connections time out. Iโve tried: โข Forwarding ports 80 and 8444 in my router โข Allowing ports in iptables and FirewallD โข Setting my router's firewall to low security โข Verifying Traefik is listening on port 8444 locally (works with curl) โข Using Authelia for authentication (middleware configured in Traefik) Internal access works fine, but external access fails. Could this be an ISP block or something Iโm missing? Any advice is appreciated! ๐ \#SelfHosting #Traefik #RaspberryPi #DynuDNS #ReverseProxy #Networking #Help #Tech #Technology #Linux @selfhost @selfhosting @selfhosted @linux
๐ Help Needed: Traefik + Authelia Setup ๐
๐ Help Needed: Traefik + Authelia Setup ๐
I'm trying to set up Traefik with Authelia for my self-hosted services using my domain, but I'm running into issues like Traefik generating invalid domains (traefik-traefik
). I've posted all the details here:
๐ https://community.traefik.io/t/help-needed-traefik-with-authelia-and-domain-setup-traefik-traefik-error/26010
If you're experienced with Traefik, Authelia, or self-hosting, Iโd greatly appreciate your insights!
๐ My configuration files are available for download in the post.
\#Traefik #Authelia #SelfHosting #ReverseProxy #Docker #YAML #Linux #RaspberryPi #Tech #Technology #ArchLinuxARM #Stormux
Tagging relevant groups for visibility: ๐ฅ @selfhosting @linux
Also tagging Lemmy communities: ๐ @selfhost @selfhosted
@selfhost @selfhosting @selfhosted @linux Authelia configuration.yml:
theme: light
server:
address: 0.0.0.0:9091
log:
level: debug
format: text
file\_path: /var/log/authelia/authelia.log
totp:
issuer: laniesplace.us
period: 30
skew: 1
authentication\_backend:
file:
path: /config/users\_database.yml
password:
algorithm: argon2id
iterations: 3
memory: 65536
parallelism: 4
salt\_length: 16
key\_length: 32
access\_control:
default\_policy: deny
rules:
\# Public Access
\- domain:
\- "pihole.laniesplace.us"
\- "homer.laniesplace.us"
policy: bypass
\# High Security (Two Factor)
\- domain:
\- "portainer.laniesplace.us"
\- "netdata.laniesplace.us"
\- "cockpit.laniesplace.us"
\- "glances.laniesplace.us"
\- "code.laniesplace.us"
policy: two\_factor
subject:
\- "group:admins"
\# Medium Security (One Factor Admin)
\- domain:
\- "forgejo.laniesplace.us"
\- "files.laniesplace.us"
\- "uptime.laniesplace.us"
policy: one\_factor
subject:
\- "group:admins"
\# Standard Auth (One Factor)
\- domain:
\- "thelounge.laniesplace.us"
\- "miniflux.laniesplace.us"
\- "linkding.laniesplace.us"
\- "wiki.laniesplace.us"
policy: one\_factor
\# Catch-all rule
\- domain: "\*.laniesplace.us"
policy: one\_factor
session:
name: authelia\_session
domain: laniesplace.us
same\_site: lax
expiration: 3600
inactivity: 300
remember\_me: 1M
regulation:
max\_retries: 3
find\_time: 120
ban\_time: 300
storage:
local:
path: /config/db.sqlite3
notifier:
disable\_startup\_check: false
smtp:
address: submission://smtp.gmail.com:587
username: [email protected]
password: rcig lqpk cbsg aqcm
sender: "Authelia \<[email protected]\>"
identifier: auth.laniesplace.us
subject: "[Authelia] {title}"
startup\_check\_address: [email protected]
timeout: 5s
identity\_validation:
reset\_password:
jwt\_secret: ${AUTHELIA\_JWT\_SECRET\_FILE}
@selfhost @selfhosting @selfhosted @linux Authelia docker-compose.yml:
services:
authelia:
image: authelia/authelia:latest
container\_name: authelia
volumes:
\- ./config:/config
\- ./logs:/var/log/authelia
networks:
\- web
\- authelia\_internal
environment:
\- TZ=America/Chicago
\- AUTHELIA\_JWT\_SECRET\_FILE=/config/secrets/jwt\_secret
\- AUTHELIA\_SESSION\_SECRET\_FILE=/config/secrets/session\_secret
\- AUTHELIA\_STORAGE\_ENCRYPTION\_KEY\_FILE=/config/secrets/storage\_encryption\_key
labels:
\- "traefik.enable=true"
\- "traefik.http.routers.authelia.rule=Host(`auth.laniesplace.us`)"
\- "traefik.http.routers.authelia.entrypoints=websecure"
\- "traefik.http.routers.authelia.tls.certresolver=le"
\- "traefik.http.middlewares.authelia.forwardauth.authRequestHeaders=X-Forwarded-Proto,X-Forwarded-Host"
\- "traefik.http.middlewares.authelia-basic.forwardauth.authResponseHeaders=Remote-User,Remote-Name,Remote-Email"
\- "traefik.http.middlewares.authelia.forwardauth.tls.insecureSkipVerify=true"
\- "traefik.http.services.authelia.loadbalancer.server.port=9091"
\- "traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=[https://auth.laniesplace.us](https://auth.laniesplace.us)"
\- "traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true"
\- "traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=Remote-User,Remote-Groups,Remote-Name,Remote-Email"
restart: unless-stopped
security\_opt:
\- no-new-privileges:true
depends\_on:
\- redis
healthcheck:
test: ["CMD", "wget", "--no-check-certificate", "--quiet", "--tries=1", "--spider", "http://localhost:9091/api/health"]
interval: 30s
timeout: 10s
retries: 3
start\_period: 60s
redis:
image: redis:alpine
container\_name: authelia\_redis
networks:
\- authelia\_internal
restart: unless-stopped
volumes:
\- ./redis:/data
command: redis-server --save 60 1 --loglevel warning
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 3
security\_opt:
\- no-new-privileges:true
networks:
web:
external: true
authelia\_internal:
internal: true
@selfhost @selfhosting @selfhosted @linux traefik middlewares.yml:
http:
middlewares:
dashboard-auth:
basicAuth:
users:
\- "admin:$apr1$t5/O0mIb$M6Mkxlqxmi2RRJHNL007Q1"
@selfhost @selfhosting @selfhosted @linux traefik services.yml:
http:
services:
\# Docker Services
homer:
loadBalancer:
servers:
\- url: "http://homer:8080"
glances:
loadBalancer:
servers:
\- url: "http://glances:61208"
uptime-kuma:
loadBalancer:
servers:
\- url: "http://uptime-kuma:3001"
miniflux:
loadBalancer:
servers:
\- url: "http://miniflux:8080"
pihole:
loadBalancer:
servers:
\- url: "http://pihole:8088"
portainer:
loadBalancer:
servers:
\- url: "http://portainer:9000"
linkding:
loadBalancer:
servers:
\- url: "http://linkding:9090"
\# Non-Docker Services
filebrowser:
loadBalancer:
servers:
\- url: "http://127.0.0.1:8085"
netdata:
loadBalancer:
servers:
\- url: "http://127.0.0.1:19999"
forgejo:
loadBalancer:
servers:
\- url: "http://127.0.0.1:3000"
dokuwiki:
loadBalancer:
servers:
\- url: "http://127.0.0.1:81"
cockpit:
loadBalancer:
servers:
\- url: "http://127.0.0.1:9090"
@selfhost @selfhosting @selfhosted @linux traefik routers.yml:
http:
routers:
dashboard:
rule: "Host(`traefik.laniesplace.us`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
service: api@internal
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- dashboard-auth
homer:
rule: "Host(`laniesplace.us`)"
service: homer
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
glances:
rule: "Host(`glances.laniesplace.us`)"
service: glances
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "glances.laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
uptime-kuma:
rule: "Host(`uptime.laniesplace.us`)"
service: uptime-kuma
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "uptime.laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
miniflux:
rule: "Host(`rss.laniesplace.us`)"
service: miniflux
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "rss.laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
pihole:
rule: "Host(`pihole.laniesplace.us`)"
service: pihole
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
\- pihole-redirect
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "pihole.laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
portainer:
rule: "Host(`portainer.laniesplace.us`)"
service: portainer
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "portainer.laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
linkding:
rule: "Host(`bookmarks.laniesplace.us`)"
service: linkding
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "bookmarks.laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
Remote-User: "{{ .Request.Headers.Remote-User }}"
filebrowser:
rule: "Host(`files.laniesplace.us`)"
service: filebrowser
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "files.laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
netdata:
rule: "Host(`netdata.laniesplace.us`)"
service: netdata
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "netdata.laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
forgejo:
rule: "Host(`git.laniesplace.us`)"
service: forgejo
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "git.laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
dokuwiki:
rule: "Host(`wiki.laniesplace.us`)"
service: dokuwiki
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "wiki.laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
cockpit:
rule: "Host(`cockpit.laniesplace.us`)"
service: cockpit
entryPoints:
\- websecure
tls:
certResolver: le
middlewares:
\- authelia@docker
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Forwarded-Host: "cockpit.laniesplace.us"
X-Forwarded-Uri: "/"
X-Forwarded-For: "true"
@selfhost @selfhosting @selfhosted @linux traefik docker-compose.yml:
networks:
web:
external: true
services:
traefik:
image: traefik:v3.2.5
container_name: traefik
security_opt:
- no-new-privileges:true
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/etc/traefik/traefik.yml:ro
- ./acme.json:/acme.json
- ./dynamic:/etc/traefik/dynamic:ro
- ./logs:/etc/traefik/logs
networks:
- web
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard.rule=Host(traefik.laniesplace.us
)"
- "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.routers.dashboard.entrypoints=websecure"
- "traefik.http.routers.dashboard.tls.certresolver=le"
- "traefik.http.routers.dashboard.middlewares=dashboard-auth"
@selfhost @selfhosting @selfhosted @linux Web services docker-compose.yml, includes Linkding:
services:
linkding:
image: sissbruecker/linkding:latest-plus
container\_name: linkding
environment:
LD\_ENABLE\_AUTH\_PROXY: "true"
LD\_AUTH\_PROXY\_HEADER: "Remote-User"
LD\_AUTH\_PROXY\_AUTO\_LOGIN: "true"
LD\_AUTH\_PROXY\_LOGOUT\_URL: "[https://auth.laniesplace.us/logout](https://auth.laniesplace.us/logout)"
volumes:
\- linkding\_data:/etc/linkding/data
healthcheck:
test: ["CMD", "node", "-e", "const http = require('http'); const options = {host: 'localhost', port: 9090, path: '/', timeout: 2000}; const request = http.request(options, (res) =\> { process.exit([200, 302].includes(res.statusCode) ? 0 : 1)}); request.on('error', () =\> process.exit(1)); request.end()"]
interval: 30s
timeout: 10s
retries: 3
networks:
\- web
labels:
\- "traefik.enable=true"
\- "traefik.http.routers.linkding.rule=Host(`bookmarks.laniesplace.us`)"
\- "traefik.http.routers.linkding.entrypoints=websecure"
\- "traefik.http.routers.linkding.tls.certresolver=le"
\- "traefik.http.services.linkding.loadbalancer.server.port=9090"
\- "traefik.http.routers.linkding.middlewares=authelia@docker"
volumes:
linkding\_data:
networks:
web:
external: true
Hi #SelfHosted community. I've figured out a lot of my setup. I now have a new domain, laniesplace.us, just for #HomeServer stuff. It's set up through Porkbun with Dynu for #DDNS. I've now got
Hi #SelfHosted community. I've figured out a lot of my setup. I now have a new domain, laniesplace.us, just for #HomeServer stuff. It's set up through Porkbun with Dynu for #DDNS. I've now got #Traefik, #TailscaleVPN, #Linkding, #Forgejo, #Dokuwiki, Code-Server, #Portainer, #Netdata, #Watchtower, #Cockpit, #Pihole, #MiniFlux, #TheLounge, #Filebrowser, #UptimeKuma, and the #Homer dashboard service installed. I'm now trying to set up #Authelia so I can have single sign-on to my services. For some, it's working now, but I can't seem to get Linkding to work no matter what I do. This is on a #RaspberryPi 500 with 8 GB RAM and a 512 GB SD card, running #Stormux, which is based on #ArchlinuxARM. Can anyone help? I'll reply to this post with all my relevant config files in separate posts. What's happening is this: Linkding is supposed to be available at bookmarks.laniesplace.us. When I go there, I see a 401 unauthorized error and a link to sign into Authelia. Once I sign in, though, it redirects back to the page with the 401 error. I've been trying to figure this out for hours with no luck. Files will be in replies to this post. \#SelfHosting #Linux #HomeLab #RPi #RaspberryPi500 #RPi500 #Tech #Technology @selfhost @selfhosting @selfhosted @linux
@fmstrat Ah yeah just noticed you're on Lemmy. Yeah I'm posting from Mastodon.
@fmstrat Not sure what you mean. I included hashtags in my post, but there was no title to it or anything.
Would anyone who knows #Traefik and #YAML or #TOML be willing to help me out? I'm trying to get Traefik set up with my new domain but running into trouble, and I'm not sure what I'm doing wrong. I can
Would anyone who knows #Traefik and #YAML or #TOML be willing to help me out? I'm trying to get Traefik set up with my new domain but running into trouble, and I'm not sure what I'm doing wrong. I can send you my traefik.toml and dashboard.yml files. \#SelfHosted #SelfHosting #Linux #Tech #Technology @selfhost @selfhosting @selfhosted
Hi everyone! How are you all doing tonight? I just had a frustrating experience trying to set up a free #domain or #subdomain for my #SelfHosted services. Unfortunately, I can't use my
Hi everyone! How are you all doing tonight? I just had a frustrating experience trying to set up a free #domain or #subdomain for my #SelfHosted services. Unfortunately, I can't use my laniecarmelo.tech domain because its current configuration doesn't allow me to add subdomains. I discovered EU.org, which offers free domains, and decided to give it a try. However, they require you to have authoritative #DNS #nameservers before requesting a domain. I tried using #Cloudflare, but it wasn't authoritative. Then I looked into Hostry.com, Hurricane Electric DNS, and FreeDNS. Hostry requires you to add DNS records for your domain before using their serviceโbut how can I do that when my domain doesnโt exist yet? ๐คฆโโ๏ธ As for FreeDNS and Hurricane Electric, both have inaccessible #CAPTCHAs on their registration forms with no audio alternatives! ๐ก At this point, I'm so frustrated that I've decided to take a break from figuring this out. If anyone has tips for setting up a free domain or knows of accessible DNS services, Iโd really appreciate your advice! ๐ \#Accessibility #TechFrustration #WebHosting #BlindTech #blind #DisabilityInTech #tech #Technology #SelfHosting @selfhost @selfhosting @selfhosted @mastoblind @main
#RaspberryPi owners, how do you back up your #RPi?
\#RaspberryPi owners, how do you back up your #RPi? I donโt have an extra hard drive, so I need to back up to #GoogleDrive. Iโve installed #Rclone and tried creating a #BASH script, but Iโm struggling with it. If youโve set up something similar or have recommendations for an efficient backup workflow, Iโd love to hear them! Bonus points if you know any good courses or resources to improve my scripting skills. \#Linux #Tech #SelfHosted #SelfHosting #RaspberryPiBackup #RaspberryPi500 #RaspberryPiProjects #RPiBackup #RaspberryPiOS #RPiProjects #LinuxBackup #LinuxTips #LinuxCommunity #TechSupport #OpenSource #DataBackup #CloudBackup #GoogleDriveBackup #CloudStorage #FileBackup #Rclone #BASHScript #ShellScripting #ProgrammingHelp #CodeNewbie #LearnToCode #TechSolutions #Automation #techhacks @linux @selfhost @selfhosting @selfhosted
#SelfHosting community, how do you get notifications about your projects?
\#SelfHosting community, how do you get notifications about your projects?
I'm setting up a couple of #BASH #Scripts to back things up and notify me about events on my #RaspberryPi, but I've hit some roadblocks. Here's my situation:
\- I know #email is one option, but I'm not set up for it yet. My domain is on porkbun.com, but its nameservers point to vultr.com, where my #WordPress site is hosted. The Vultr server is managed by a friend, so I don't have access to add #DNSRecords for platforms like #Brevo. I've asked him to add the records but am waiting on that.
\- I've been using a #Discord webhook, but I've run into issues with rate limiting when scripts send too many messages. Long messages also cause errors.
Now, I'm exploring other ways to send notifications. Does anyone have suggestions for reliable methods or tools that work well in self-hosted setups?
\#Linux #Tech #Technology #BASHScripts #SelfHosted #Notifications @selfhost @selfhosted @linux @selfhosting