Skip to content

Architecture

Tetsuya1126 edited this page Dec 3, 2025 · 8 revisions


🧠 Architecture.md

# Architecture

This system is built around:

- systemd service + timer
- OverlayFS
- Stage-based state machine
- Cooldown window
- Watchdog fail-safe recovery

The goal is to guarantee:

- Safe upgrade
- SD card protection
- Automatic overlay recovery

---

## Core files

| File | Purpose |
|------|----------|
| overlay-auto-update.sh | Main controller |
| overlay-auto-update.timer | Weekly scheduler |
| overlay-auto-update.service | Controlled execution |
| STATE_FILE | Stage & cooldown bookmark |


## Work flow
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚   systemd timer   β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜γ€€γ€€γ€€[STAGE2 guard]
                           |γ€€      γ€€γ€€γ€€γ€€γ€€- if DONE_AT exists -> cooldown
                           v
                      β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”
                      β”‚ STAGE 0 β”‚  (Overlay ON)
                      β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜
                           |
                disable overlay + reboot (systemd timer -> script rerun)
                           |
                           v
                      β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”
                      β”‚ STAGE 1 β”‚ (Overlay OFF)
                      β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜
                           |
                      apt upgrade
                           |
                      set_stage 2
                           |
                        reboot (systemd timer -> script rerun)
                           |
                           v
                      β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”
                      β”‚ STAGE 2 β”‚
                      β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜
                           |
        +------------------+------------------+
        |                                     |
    Overlay OFF                          Overlay ON
 restore overlay + reboot                  cleanup
        |
        v
   Normal mode

Clone this wiki locally