Installation choices · User guide
This configuration uses unencrypted HTTP. Use only on a trusted private LAN with test data. Never forward TCP 8090 from your router. The iOS development build must explicitly permit local HTTP.
1. Prepare Ubuntu
Install Ubuntu 24.04, create a non-root account with sudo access, and open a terminal.
sudo apt update
sudo apt install -y git ca-certificates curl python3 python3-cryptography
mkdir -p ~/git/listmyday
git clone https://gitlab.com/careboard/listmyday-server.git ~/git/listmyday/listmyday-server
cd ~/git/listmyday/listmyday-server
python3 -c 'from cryptography.hazmat.primitives.ciphers.aead import AESGCM'
2. Install the server
bash install.sh new
sudo loginctl enable-linger "$(id -un)"
ip -4 addrFind the computer's actual private IPv4 address. For example, replace 192.168.1.50 below with that address:
bash tools/bootstrap/home-http.sh 192.168.1.50
3. Restrict the network
If UFW is active, allow port 8090 only from your own home subnet (example below; replace with your real subnet). Do not allow it from everywhere.
sudo ufw allow from 192.168.1.0/24 to any port 8090 proto tcp
sudo ufw status verbose
4. Connect devices
Use http://192.168.1.50:8090 in a development iOS app build that permits local HTTP. Keep caregiver approval and device authentication enabled. An App Store build may reject HTTP.
5. Verify and maintain
systemctl --user status listmyday.service --no-pager
systemctl --user status listmyday-deletion.timer --no-pager
curl -fsS http://192.168.1.50:8090/v1/healthTo update, pull GitLab changes and run bash install.sh upgrade. For complete details and security limitations, see the maintained home installation runbook.
Automated installation verification
Install jq if it is not already available. The verifier reports PASS/FAIL and writes a structured JSON diagnostic file in logs/verification/. No household secrets are included. A passing result does not replace firewall, backup-restore, or external exposure checks.
bash tools/bootstrap/verify.sh home 192.168.1.50Replace the example IP with the home server's actual address where applicable. Inspect the generated JSON with jq . REPORT_PATH.