From 9f0ddb142cbc322ba9cb4042e66477165dcb5572 Mon Sep 17 00:00:00 2001 From: Rob Wiederstein Date: Mon, 9 Mar 2026 11:53:32 -0400 Subject: [PATCH] Mark deployment complete in TODO --- TODO.md | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/TODO.md b/TODO.md index 7bcebd1..ea6d02d 100644 --- a/TODO.md +++ b/TODO.md @@ -14,16 +14,28 @@ Note: app must reload `owners.rds` after refresh — either restart container or make app reactive to file changes +## Features + +- [ ] Add RentCast active listings tab + - Pull active listings via RentCast API (see veniceProp/sarco for prior work) + - Spatially filter to St. Andrews subdivision boundaries (`data/plats/plats.shp`) + - Display on map + table (similar to Owners tab) + - Store API key as environment variable, not in code + - Consider caching results (API has rate limits) + +## Performance + +- [ ] Optimize CI build time: create a pre-built base image with R packages + already installed so renv restore is skipped on redeploy. Cold builds + currently take ~10 minutes due to geo stack (sf, gdal) compilation. + ## Deployment -Everything must be scripted from within the project folder. No manual steps -on the server outside of what the workflow handles. +- [x] Create Dockerfile, docker-compose.yml, .gitea/workflows/deploy.yaml +- [x] Push to Gitea — act_runner deploys on push to main +- [x] App live at apps.robwiederstein.org/stAndrews/ -- [ ] Create Dockerfile (follow veniceProp pattern — `rocker/shiny:4.5.2`) -- [ ] Create docker-compose.yml (bind to `127.0.0.1::3838`) -- [ ] Create `.gitea/workflows/deploy.yaml` that: - - Builds the Docker image - - Runs `docker compose up -d` - - SSHes into analytics VM and idempotently adds route to gateway Caddyfile - - Restarts the gateway container -- [ ] Push to Gitea — act_runner handles all future deploys automatically +Notes: +- Gateway route is hardcoded in ~/docker/gateway/Caddyfile (import pattern failed) +- Volume mounts: only ./data and ./www — app code baked into image to avoid renv conflict +- act_runner registered at user level, not repo level