gronod
c1fb55c5b8
merge: resolve ARCHITECTURE.md conflict, keep develop version (Mermaid + history docs)
CI / Security audit (pull_request) Successful in 44s
CI / Tests & coverage (pull_request) Successful in 47s
Build and Push Docker Image / build (push) Successful in 24s
CI / Security audit (push) Successful in 43s
CI / Tests & coverage (push) Successful in 45s
2026-05-17 13:49:50 +01:00
gronod
742f34f6eb
ci: remove v2-develop branch from build pipeline
Build and Push Docker Image / build (push) Successful in 20s
CI / Security audit (push) Successful in 37s
CI / Tests & coverage (push) Successful in 41s
CI / Security audit (pull_request) Successful in 34s
CI / Tests & coverage (pull_request) Successful in 39s
2026-05-17 13:25:50 +01:00
gronod
2b089871a0
design(light-theme): replace purple scheme with logo-aligned teal palette, WCAG AA compliant
Build and Push Docker Image / build (push) Successful in 21s
CI / Security audit (push) Successful in 39s
CI / Tests & coverage (push) Successful in 42s
2026-05-17 13:12:58 +01:00
gronod
e8ffd7f7dd
feat(ui): split downloads and history into tabs
2026-05-17 13:09:01 +01:00
gronod
dd7e3e2a90
fix(history): add tagBadges to history items in showAll mode
2026-05-17 13:05:23 +01:00
gronod
557137421d
fix(history): reload history when showAll toggle changes
2026-05-17 13:02:15 +01:00
gronod
71880c6298
ci: add v2-develop branch to build pipeline (tags as sofarr:v2-develop)
Build and Push Docker Image / build (push) Successful in 22s
CI / Security audit (push) Successful in 38s
CI / Tests & coverage (push) Successful in 39s
2026-05-17 12:50:23 +01:00
gronod
6b995a136d
chore: remove legacy .env.example (superseded by .env.sample)
2026-05-17 12:06:38 +01:00
gronod
fa3c625fb8
docs: update ARCHITECTURE.md and README for history feature (v2)
2026-05-17 12:05:53 +01:00
gronod
57b3254f70
test(history): add unit and integration tests for historyFetcher and /api/history/recent
2026-05-17 12:05:45 +01:00
gronod
eb321312dc
feat(history): add Recently Completed section to frontend dashboard
2026-05-17 12:05:39 +01:00
gronod
ddcfbda0c2
feat(history): add /api/history/recent endpoint with Sonarr/Radarr history fetching, tag filtering, and 5-min cache
2026-05-17 12:05:30 +01:00
gronod
ffd9e84a00
docs: merge Mermaid diagram migration from develop
2026-05-17 12:04:00 +01:00
gronod
2a674c6bcd
docs: replace ASCII art diagrams with Mermaid (renders natively in Gitea)
2026-05-17 12:03:49 +01:00
gronod
da0898f52a
feat: native HTTPS support with bundled snakeoil default cert
...
Build and Push Docker Image / build (push) Successful in 32s
CI / Security audit (push) Successful in 48s
CI / Tests & coverage (push) Successful in 56s
server/index.js:
- Import http and https modules
- Resolve TLS_ENABLED early (before Helmet) so upgradeInsecureRequests
CSP directive fires when TLS is active directly (not only via proxy)
- loadTlsCredentials() reads TLS_CERT/TLS_KEY (defaulting to bundled
snakeoil) and returns null on failure (graceful HTTP fallback)
- Start https.createServer or http.createServer depending on credentials
- Startup banner now shows protocol, TLS cert path, and snakeoil warning
certs/:
- Add bundled snakeoil self-signed certificate (RSA 2048, 10yr, SAN for
localhost + 127.0.0.1) for out-of-the-box HTTPS without configuration
- .gitignore allows only snakeoil.{crt,key} — real certs must not be
committed
Dockerfile:
- COPY certs/ into image so snakeoil default is always available
- HEALTHCHECK updated to https:// with --no-check-certificate
docker-compose.yaml:
- Port now exposes HTTPS directly by default
- TLS_CERT/TLS_KEY/TLS_ENABLED/TRUST_PROXY documented with Option A/B
- cert volume mount examples added (commented out)
- healthcheck updated to https with --no-check-certificate
.env.sample:
- New TLS/HTTPS section with TLS_ENABLED, TLS_CERT, TLS_KEY
- openssl self-signed cert generation example included
docs/ARCHITECTURE.md:
- Configuration table: TLS_ENABLED, TLS_CERT, TLS_KEY env vars added
- Docker image section: TLS default behaviour documented
- Docker Compose example: Option A (direct TLS) / Option B (proxy) layout
- Security checklist: HTTPS now first item, updated for TLS modes
2026-05-17 10:50:38 +01:00
gronod
224ec33a14
docs: migrate all diagrams from PlantUML to Mermaid
...
Build and Push Docker Image / build (push) Successful in 38s
CI / Security audit (push) Successful in 52s
CI / Tests & coverage (push) Successful in 1m0s
CI / Security audit (pull_request) Successful in 48s
CI / Tests & coverage (pull_request) Successful in 57s
- Replace section 13 of ARCHITECTURE.md with 9 inline Mermaid diagrams
(component, auth sequence, dashboard SSE sequence, polling sequence,
server class, data model, UI state, poller state, matching flowchart)
- Diagrams render natively in Gitea/GitHub — no CI job required
- Delete docs/diagrams/*.puml (all 9 files)
- Delete .gitea/workflows/render-diagrams.yml
- Update CI/CD table note and ToC entry
2026-05-17 10:37:46 +01:00
gitea-actions[bot]
cc8de12740
ci: render PlantUML diagrams [skip ci]
2026-05-17 09:31:59 +00:00
gronod
a05aaf8d71
fix(diagrams): replace par/and/end with group in seq-polling
...
Build and Push Docker Image / build (push) Successful in 22s
CI / Security audit (push) Successful in 1m4s
CI / Tests & coverage (push) Has been cancelled
Render PlantUML Diagrams / Render .puml → .png (push) Successful in 1m2s
par keyword is not supported in the PlantUML version on the Gitea runner.
Replace with a group block (universally supported) and a spanning note
to convey the parallelism.
2026-05-17 10:28:46 +01:00
gronod
9751dbf98d
docs(diagrams): review + fix all .puml files; touch all to trigger render
...
Build and Push Docker Image / build (push) Successful in 31s
CI / Security audit (push) Successful in 51s
CI / Tests & coverage (push) Successful in 1m6s
Render PlantUML Diagrams / Render .puml → .png (push) Failing after 47s
seq-auth:
- startAutoRefresh() -> startSSE(), stopAutoRefresh() -> stopSSE()
- Cookie secure flag: 'secure (prod)' -> 'secure (if TRUST_PROXY)'
component:
- Fix typo creatApp -> createApp
- Add GET /csrf, POST /logout to browser->auth arrow
- Add GET /stream (SSE) to browser->dashboard arrow
class-server:
- Add subscribers Set, onPollComplete(), offPollComplete() to Poller class
class-data:
- Add SSE Event /stream shape alongside API Response /user-downloads
- Add sser *-- dl relationship
state-ui:
- Fix invalid multi-line transition labels with raw Unicode arrows
(broke PlantUML parser); replace with valid \n escapes on single line
seq-dashboard, seq-polling, state-poller, activity-matching:
- Whitespace touch to trigger render-diagrams CI workflow
2026-05-17 10:20:52 +01:00