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.
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.
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.
You can drploy a Cloudflare worker that exposes an APi endpoint with an SQLite DB completely for free and without doing any maintenance. I don’t think the DB is encrypted , so it wouldn’t be my first choice if privacy is a concern. There’s a bit of a learning curve with all the UI bloat but once you figured it out it’s a very hassle free solution.
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.I’m not sure of the availability guarantees, but Oracle and other cloud services have free tiers for low CPU/RAM/storage needs. If the availability guarantees are there, this could be an option. It works fine for FoundryVTT and hasn’t cost me anything for the last couple years, and I don’t imagine your projected needs would outstrip Foundry’s.
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.
You can get a VPS on Vultr for $5 a month that’ll be plenty for your use case. For security look into mTLS. Web servers like Caddy support it pretty easy. You put a certificate on you and your wife’s phones and only you will be able to connect to your endpoint.
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.
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.
Username checks out
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