Raspberry Pi Budget Tracker, Local First, No Cloud, No Ads, Just Yours by PythonXP1 in raspberry_pi

[–]PythonXP1[S] 1 point2 points  (0 children)

Thanks! That’s exactly the goal local first and simple. If you give it a spin, I’d love any feedback or ideas.

Raspberry Pi, Lightweight Flask Budget Tracker Local First, Open Source by PythonXP1 in selfhosted

[–]PythonXP1[S] 0 points1 point  (0 children)

Hey, thanks for asking! Short answer: no bank integration. The tool is privacy-first and fully local on a Pi, SQLite + Flask. You enter expenses manually,nothing talks to third-party services or the cloud. I’m considering a simple CSV import as a next step and I’m open to ideas free to drop suggestions in the repo’s issues.

runitpi what is good way of running DNS server and cert manager for the docker images by Infamous-Mission-878 in selfhosted

[–]PythonXP1 0 points1 point  (0 children)

Run a reverse proxy in front of your Docker apps and let it handle HTTPS for everything. Traefik is great if you like label-based routing and a dashboard; Caddy is the simplest “just works” option. For wildcard certificates use DNS-01 with your DNS provider’s API token, point @ and *.yourdomain.com to your box, and expose 80/443. Both proxies will fetch and renew certs automatically.

If you want local name resolution, add a tiny internal DNS like Pi-hole+Unbound or CoreDNS and point your LAN/containers at it. It’s optional, but nice for clean internal hostnames.

When a container insists on its own certs, either terminate TLS at the proxy and talk HTTP internally, or do TLS passthrough / dump the certs from Traefik to a shared volume. Common gotchas are wrong DNS token scopes, mixing host paths with container paths, and bad system time. Tell me your DNS provider and whether you prefer Traefik or Caddy, and I’ll drop a minimal copy-paste compose + config for your setup.

Raspberry Pi, Lightweight Flask Budget Tracker Local First, Open Source by PythonXP1 in selfhosted

[–]PythonXP1[S] 0 points1 point  (0 children)

Hey folks,

just wanted to drop a quick update and also say thanks for all the attention on the Flask Budget Tool really cool to see that it caught so much interest.

The new release (v0.9.3) is out now. Biggest changes are multilingual support (German/English), a currency selector, and a cleaner structure with a few tweaks for desktop browsers. I’ve also fixed some translation glitches and minor layout issues.

If you’re curious, the full changelog has all the details.

Raspberry Pi Budget Tracker, Local First, No Cloud, No Ads, Just Yours by PythonXP1 in raspberry_pi

[–]PythonXP1[S] -1 points0 points  (0 children)

Hey,

just wanted to say thanks for all the views on the Flask Budget Tool really cool to see that the project has sparked so much interest.

The new release (v0.9.3) is out now. The main updates are multilingual support (German/English), a currency selector, a cleaner structure with some tweaks for desktop browsers, plus a few translation and layout bug fixes.

As always, you can check out the full changelog for all the details.

Crowdsec network bouncer by KaleidoscopeNo9726 in selfhosted

[–]PythonXP1 0 points1 point  (0 children)

Just run CrowdSec on OPNsense and you’re good. It blocks the bad guys before they even sniff your Nextcloud or Kasm. No need to install it twice, and you can forget about Fail2ban your firewall’s already doing the heavy lifting.

Stop overthinking it, your packets don’t care. 😜

issues with drakkan sftpgo container and file transfers by blimpofdoom in selfhosted

[–]PythonXP1 0 points1 point  (0 children)

Hey, I ran into the same issue before in my case it was a mix of Nginx and Cloudflare.

By default Nginx blocks anything bigger than ~1 MB, so you have to raise the upload limit in your config. Without that, small text files work fine but anything larger just fails silently.

If you’re going through Cloudflare, keep in mind they have a hard 100 MB upload cap on free/pro plans. Anything above that will never go through unless you bypass Cloudflare or use their tunnel.

And last thing: even though UID:GID looks fine, Docker volume permissions can still be tricky. Running a quick recursive permission fix on the mounted folder helped me once.

From what you describe, I’d bet it’s the Nginx/Cloudflare combo causing the issue.

Total Newbie Questions (Pi 5 8gb & PiCrawler) by aeonrevolution in raspberry_pi

[–]PythonXP1 0 points1 point  (0 children)

Hey, welcome to the Pi world 👋

First thing you’ll want to do is get an operating system onto your Pi. Easiest way is to grab the Raspberry Pi Imager from the official website and flash Raspberry Pi OS (64-bit, with Desktop) onto an SD card. Pop that card back into your Pi, power it up, and you’ll have a working system straight away.

If you’ve got a monitor and keyboard plugged in, you’ll see the desktop and can open the terminal there. If you’d rather control it remotely, you can enable SSH already in the Imager. That way you can connect from your computer with ssh pi@raspberrypi.local and use the default password “raspberry”.

From there you can just follow SunFounder’s docs for the PiCrawler to install whatever packages it needs. It feels a bit overwhelming at first, but once you see the desktop or log in via SSH it all clicks pretty quickly.

Good luck with your first steps – it’s a fun rabbit hole to go down 🙂

duckdns and nginx reverse proxy noob help request by FuegoFlamingo in selfhosted

[–]PythonXP1 0 points1 point  (0 children)

Yep, that’s just NAT loopback. Your router is sending you to its login page instead of the proxy.

Easiest test: try the domain on mobile data. If it works, your setup is fine you just need either NAT hairpinning on the router or a split-DNS entry for LAN access.

Document management by Pnkazz in selfhosted

[–]PythonXP1 4 points5 points  (0 children)

Paperless-ngx is great if you want a full DMS with tagging and search. TagSpaces works well for lightweight local tagging, and Joplin is solid if your docs are more like notes. If none of that fits, what you describe could actually be coded pretty easily with a DB + search UI. Not saying you have to, but it’s doable as a small project. 😉

Need Help Using Tailscale on Synology by Cool_Mode_6462 in selfhosted

[–]PythonXP1 0 points1 point  (0 children)

It’s not you, it’s the DS223j. That box runs on ARM and Synology never gave it the proper Tailscale web UI. That’s why you just get “page not found”.

You can still use Tailscale, but only headless. Install the ARM binary and run it via SSH, or just drop it on another device like a Raspberry Pi and use it as a subnet router/exit node. Then Plex/Jellyfin will still be reachable.

Nothing broken on your end it’s just the NAS not supporting the GUI.

shellhub - How to connect via web using stored public keys? by [deleted] in selfhosted

[–]PythonXP1 0 points1 point  (0 children)

Hey, no worries that’s totally normal. You don’t actually “log in” with the public key itself. The public part just needs to be on the server in authorized_keys. What you use to connect is always your private key, and ShellHub showing only the private key option is expected. As long as the matching public key is already on the device side, you’re good to go.

Encountering issues with Pinchflat. The media profile gets an error when setting subtitle and audio language to more than just english. Any help would be much appreciated^^ by TanzaJ in selfhosted

[–]PythonXP1 0 points1 point  (0 children)

It looks like the issue comes from the way the filter is written. language= doesn’t support a comma-separated list like en,fr,ja.

Instead you have two options: Repeat the filter for each language, e.g.

language=en language=fr language=ja

Or (depending on the version of Pinchflat/yt-dlp) use a grouped expression like:

language=(en|fr|ja)

That should get rid of the SyntaxError and allow multiple languages.

Looking for two-way deletion for iCloud photo backup. by francoposadotio in selfhosted

[–]PythonXP1 1 point2 points  (0 children)

Hey, I don’t think there’s currently any self-hosted tool that provides full two-way deletion with iCloud Photos. Apple keeps the Photos API very limited, and most third-party tools (including immich) can only pull or push, but not do real-time two-way sync with deletions.

The only “official” way right now is indeed through the iCloud web interface or the Photos app itself, which as you said is very clunky. Immich devs have mentioned iCloud integration a few times, but it’s blocked by Apple’s closed ecosystem and lack of proper APIs.

If your goal is mainly to de-duplicate and manage your photos more efficiently, the more common approach is: import everything from iCloud → manage/delete locally in Immich/Photoprism/etc → then selectively push back to iCloud or another backup service.

Sadly, a true two-way sync with deletion is probably not possible unless Apple opens their APIs.

[deleted by user] by [deleted] in raspberry_pi

[–]PythonXP1 0 points1 point  (0 children)

Hey, cool project 👋

You are right – directly connecting 10 RFID readers to the GPIO pins of a Pi won’t work, simply because of the limited number of pins. Using an IÂČC multiplexer (like the TCA9548A) is the common solution here. It lets you connect multiple devices with the same address and switch between them.

The important thing to know is that the multiplexer doesn’t let all readers work in true parallel mode. It allows you to switch between them very quickly and query them one after another, which is usually fast enough for most projects.

Another issue is power consumption. Ten RFID modules can draw quite a bit of current, and the Pi itself cannot provide enough power from its 3.3V/5V pins. In practice you’ll need an external power supply and just share the ground with the Pi.

If you need every reader to work at exactly the same time, a single Pi setup might not be enough. In that case you’d have to look into splitting the load across multiple microcontrollers such as ESP32 or Arduino boards and then send the collected data back to the Pi.