Spreadsheets become manual operations when nobody turns the data into a screen. Deployment also needs to avoid credentials inside the image and run on AMD64/ARM64.
dashboard-sheets
Streamlit project to read spreadsheets, keep credentials outside the image and publish a multi-arch image via GitHub Actions/GHCR.
Technical reading
Quick case read
The dashboard reads Google Sheets through a read-only mounted credential, runs as a non-root user, publishes a multi-arch image and includes a healthcheck without depending on curl.
Streamlit · Google Sheets API · Docker multi-arch · GitHub Actions
Open-source
Architecture
Spreadsheet becomes a panel without putting secrets in the image
Compose mounts `credentials.json` as read-only and controls resources through env. The image uses a multi-arch Python slim base.
Technical flow
- Input
- Processing
- Storage
- Output
Step-by-step flow
Diagram source (Mermaid)
flowchart LR
sheets["Google Sheets"]
credentials["Credentials/API"]
streamlit["Streamlit"]
transform["Transformation/cache"]
dashboard["Web dashboard"]
image["Docker/GHCR"]
sheets --> credentials
credentials --> streamlit
streamlit --> transform
transform --> dashboard
dashboard --> imageStack and responsibilities
- Streamlit
Fast interface for operational data.
- Google Sheets API
External data source.
- Docker buildx
Multi-arch AMD64/ARM64 build.
- GitHub Actions / GHCR
Automatic image publishing.
Technical decisions
- No Alpine
README chooses `python:3.12-slim` to avoid painful native builds for scientific dependencies.
- Secret outside the image
`credentials.json` comes through a read-only bind mount, not the build.
- Lower-privilege container
Non-root user, read-only filesystem, tmpfs and no-new-privileges documented.
Operations
- documentedPortainer
Guide with ready image or Git build stack.
- documentedHealthcheck
Health via Python inside the container.
- documentedGHCR
Workflow publishes `ghcr.io/gabedsam01/dashboard-sheets:latest`.
Status and next steps
- Add screen examples when safe public data exists.
- Document authentication variations by environment.
Contact
Want something similar for your process?
If there is repeated input, a manual step and an expected output, there is probably a system to design.