So background, my kid has seizures often. He is currently on 5 different medications to try to control it(plus 1 for sleeping and 1 for his liver enzymes) plus severe non verbal autism so he can’t tell us if he already had his meds. Currently when it’s medication time, it’s always “did you give him his meds yet?” and we have no way of tracking how many seizures he actually has besides “alot more recently” or “it’s gone down recently”. Yes he had multiple doctors and this is NOT a post looking for health advice.
I am creating an app for phones(c# Maui) which will send json objects to a api to store/retrieve data in a database(when he last had medication x, when he has a seizure etc). It will probably only be used with in my family, maybe 20 entries a day on a really bad day(7 medications twice daily + 6 seizures to give a round number) but should be less then 10 transactions(most medications given at same time).
What’s the cheapest/easiest was I can host something like this? I do not have a static ip. Yes it’s health information but I’m only storing first names and tracking time of events, not too worried about hippa like security.
I’m using a free web host plan from freehostia (chocolate plan), an SQLite database and a single php file from the github repo below to provide me api access to my database tables. I previously used the web hosts MySQL database.
Create some QR codes or NFC tags for specific medication/seizure events to make logging easy. For visibility you can create some reports and you’ve got yourself a solution.
I use this setup to manage and log my backup tape rotations at work.
Maybe use a filesystem and syncthing this way? https://github.com/39aldo39/DecSync
Or you could use the free tier of some PaaS like
https://render.com/docs/free if you prefer a traditional approach. Just remember to make backups, if it’s free it can disappear at any time.A VPS on Hetzner with 2 shared vCPUs, 4GB ram and 40GB storage costs me less than €5 per month. I use it for services that are more “critical” compared to what runs on my home server.
Why not Home Assistant? You can log seizures via buttons on the UI (web or mobile app), or via an NFC tag, have counters and stats. Counters can also be used for medication tracking. More advanced solution exist via custom integrations, e.g this.
Do you need a web app, or would a mobile app do? There are a number of medication trackers and one specifically for tracking stuff like this called Track & Graph. The DB export is a SQLite DB, which can be SyncThing’ed to a computer and worked with with whatever rolls you like.
I’d use something that already exists:
- https://life-notes.fr/
- https://github.com/babybuddy/babybuddy
- https://github.com/BabyTracker/baby-tracker
The focus of the latter two is slightly off, but it would work.
Actually, I’d probably not add a use-specific thing unless I needed something specific it offered. I’d just pop up another page on our shared wiki to track things, or put it in a synced note app.
Yes but for example for seizures I want a simple form, not having to type in entries. Especially for siezures, it’s normally a busy event of caring for him, having to add a seizure taking more than a minute means it probably won’t be used.
If you want to self-host, I recommend a used business thin client, docker + docker-compose, and Tailscale for access away from home if needed. Don’t forget to dump & back up nightly.
Edit: thin client because it beats a pi in every respect and doesn’t run on an SD card. Tailscale because you don’t have to open ports in your firewall and point a public domain at your house.
Or you could use hosted services, neon.tech and turso both offer really generous free tiers for SQL databases.
Or you could use a notebook and pen. Sometimes simplicity is king.
If you don’t have strong privacy concerns, you can use the free tier vps from oracle cloud or Google cloud. They are small, but are more than enough for this load.
I didn’t know they had free tiers… I’ll look into it
I’ve read very bad experiences about Oracle free tier VPS, like VPS disappeared for good with all the data.
Username checks out
HIPAA (not hippa) is not even remotely applicable.
Cheap and easy are in opposition here. Which matters more? There are symptom and medication apps already that would be easy and available right now. And you don’t need to do tech support for family.
Well it’s also a learning project as through a series of events I am technically a software developer in job title who got thrown into a c# code base with databases after doing a python boot camp for 9 weeks and have no mentor to tell me what I’m doing wrong on professional projects.
Ah - I get that. You have my sympathies.
A personal project like that would be a great way to train/get experience then. But do realize that it becomes a lot more complicated once you have people other than yourself relying on your application. Suddenly up-time becomes very important and up-time is hard. End-users, even friendly ones, get very frustrated when you say “try now please” a lot. They’ll just stop using it.
Google Sheets will be a simple solution you can do for free.
The app “Track & Graph” is another.
I have been logging all my medical events using Tasker and a Google Calendar. Analysis is manual using graphviz.
This is c/selfhosted
Check out OliveTin. I use it in a similar fashion to track when I take my daily meds and for other personal health tracking.
It’s a simple webapp that fires off shell scripts on your server. I store my data as CSV, but you can tailor the scripts to store and retrieve/present your data however you’d like.
Edit 2: adding that I host this on a Raspberry pi zero w. It’s ultra cheap. It’s only accessible on my lan by choice. I use a wireguard tunnel on my stupid cheap (~$1.50/month) vps to access it remotely.
Edit 1: fix link formatting
If it is for home use, why not go with a raspberry pi (or similar, there are lots of cheaper alternatives like it) which is only accessible from the local network and not from the internet?
If access through the internet is needed, you can use one of many free dyndns services. (e.g duckdns.org)
You could also look into existing projects and maybe contribute instead of building from scratch, but thats up to you. Through a quick search I found https://github.com/FSchiltz/Helse
Hmm…i do have a raspberry pi that isn’t being used… Since it’s asp.net should be Linux compatible… Not a bad idea
Just a quick note for hosting a DB on a pi (or anything that uses SD cards for the OS), SD cards fail with some regularity, so I strongly suggest getting an NVMe board with a stick of SSD memory to store the actual files, because it’s much more reliable long term for data integrity. SD cards support reading large amounts but writes wear them out more quickly.
You can find great cases that come with the boards (but not the SSD, however that’s very easy to find separately).
For RPi 4 I have an Argon (NVMe board sold as accessory): https://argon40.com/products/argon-one-v2-case-for-raspberry-pi-4
And fro RPi 5 I have a Pironman case (NVMe comes as part of the kit): https://www.sunfounder.com/products/pironman-5-nvme-m-2-ssd-pcie-mini-pc-case-for-raspberry-pi-5
I recommend both of those but your use case may vary.
Thank you very much for pointing this out.
I completely forgot to mention this, since I’ve been running compute modules with nvme’s for ages.
Just to add a further alternative: The pine64 soquartz baseboards are also compatible with rpi compute modules.
Also for extra saving: by the time you buy all that, there are a lot of second hand office mini PCs that are considerably cheaper on ebay.
Since you’re already working in C#, an ASP.Net Core backed, with whatever database you prefer, will do what you want.
You could self host it, but I wouldn’t call that easy. There are plenty of cloud providers that can integrate with your preferred git repo and really streamline the build and deployment process. I run a few applications as “Apps” on Digital Ocean. Once you get it configured properly, deployments are quick and easy.
@vrek have you looked at https://turso.tech/ or https://supabase.com/
Both good suggestions, thanks for the ideas