diff --git a/README.md b/README.md index 76dd07f..71d396f 100644 --- a/README.md +++ b/README.md @@ -1,187 +1,84 @@ # ForgeFlow -**Van lokale wijziging naar aantoonbaar juiste serverversie — zonder de Git- en deploymentcontext over verschillende tools te verspreiden.** +

From a local change to a verified server revision.

+

Product tour · Features · Get started · Deployment model

-ForgeFlow is een Windows-desktopapp voor wie Git, Gitea en eigen Docker- of Unraid-servers gebruikt. Je ziet in één werkruimte wat lokaal gewijzigd is, wat op Gitea staat en welke exacte commit op de server draait. ForgeFlow begeleidt je daarna veilig door review, commit, push, deployment en verificatie. +ForgeFlow is a Windows desktop application for teams that use Git, Gitea and self-hosted Docker or Unraid servers. It brings local changes, remote commits and the exact revision running on a server into one workspace, then guides review, commit, push, deployment and verification. -> Huidige release: **0.10.15** · [download de laatste Windows-release](https://gitea.itworx.tech/Jens/ForgeFlow/releases/latest) +**Downloads:** Existing signed Windows releases remain at [the legacy ForgeFlow release page](https://gitea.itworx.tech/Jens/ForgeFlow/releases/latest) during the public-repository transition. The [curated public source](https://gitea.itworx.tech/Jens/ForgeFlow-Public) is separate; it will become the release destination only after signing and update compatibility are verified. -![ForgeFlow release-overzicht](docs/screenshots/overview.png) +## See the workflow -## Wat ForgeFlow voor je oplost +![ForgeFlow release overview using demo repositories](docs/screenshots/overview.png) -- **Eén duidelijke actielijst:** zie meteen welke repository aandacht nodig heeft en waarom. -- **Veilige Git-flow:** review wijzigingen, stage volledige bestanden of afzonderlijke hunks, commit, push en herstel conflicten zonder contextwissel. -- **Veilige Gitea-sync:** bekijk vooraf welke bestanden wijzigen of verdwijnen, bewaar lokale commits in een recovery branch en zet gewijzigde of untracked bestanden in een stash voordat de werkmap exact gelijk wordt gemaakt aan Gitea. -- **Deployment op een exacte commit:** ForgeFlow gebruikt volledige commit-SHA's en toont lokaal, Gitea en server naast elkaar. -- **Automatische serverinventaris:** ForgeFlow herkent draaiende en gestopte Docker-, Compose- en DockerMan-workloads, koppelt alleen op betrouwbaar bewijs en houdt tijdelijke of externe containers apart. -- **Veilige server-pull:** Unraid haalt de exacte commit uit Gitea met een unieke, repository-scoped read-only deploy key en een vastgepinde SSH-hostsleutel. -- **Ingebouwde Git Validator:** controleer repository-identiteit, branch protection, synchronisatie-instellingen, documentatie, geheimen en grote bestanden; veilige verbeteringen kunnen gericht worden toegepast. -- **Doorzoekbaar Helpcentrum:** open **Help** voor stapsgewijze uitleg of spring vanuit workspace sync meteen naar de relevante veiligheidsinstructies. -- **Lokale controle:** configuratie en credentials blijven op het toestel en diagnostische exports worden lokaal geredigeerd. +| Review local work | Reconcile deployments | +| --- | --- | +| ![Repository workspace and selective staging](docs/screenshots/repository-workspace.png) | ![Server inventory and deployment links](docs/screenshots/deployments.png) | -## Snel starten +*The captures use example repositories and demo state; they are not a live infrastructure dashboard.* -### Aanbevolen: de Windows-app installeren +## Key capabilities -1. Open de [laatste ForgeFlow-release](https://gitea.itworx.tech/Jens/ForgeFlow/releases/latest). -2. Download de Windows-installer of portable executable. -3. Start ForgeFlow en doorloop de setupwizard. -4. Voeg je Gitea-server, token en lokale projectmappen toe. -5. Voeg optioneel een Docker- of Unraid-server toe. Start daarna **Scan servers** om bestaande deployments te ontdekken en veilig aan repositories te koppelen. +| Area | What ForgeFlow helps you do | +| --- | --- | +| Action queue | See which repositories need review, a push, deployment or health attention. | +| Git review | Inspect diffs, stage files or hunks, commit, push and recover from common sync problems. | +| Gitea awareness | Compare local and remote revisions, review branch protection and open a pull request. | +| Server inventory | Discover Docker, Compose and DockerMan workloads and link them only when repository evidence matches. | +| Exact-commit deployment | Dispatch a reviewed revision and compare the full local, Gitea and live commit SHAs. | +| Git Validator | Inspect repository identity, protection, documentation, secret hygiene and oversized files. | +| Diagnostics | Keep configuration local and redact sensitive values in support exports. | -Vanuit **Settings → Updates** kun je nieuwe packaged releases ophalen. ForgeFlow accepteert uitsluitend de release die bij de exacte Gitea-commit hoort, controleert de SHA-256-checksum én verifieert vanaf 0.10.13 een onafhankelijk Ed25519-releasemanifest met de ingebouwde publieke sleutel. Zie [UPDATING.md](docs/UPDATING.md) voor oudere of source-only installaties. +ForgeFlow distinguishes a matching commit from a healthy deployment. It keeps incomplete evidence visible instead of claiming that a server is current when its live SHA is unknown. -### Eerst vrijblijvend bekijken +## Get started -De interactieve demomodus gebruikt uitsluitend representatieve voorbeelddata en maakt geen verbinding met Git, Gitea of een server: +### Install the Windows app + +1. Download an installer or portable executable from the [published release page](https://gitea.itworx.tech/Jens/ForgeFlow/releases/latest). +2. Launch ForgeFlow and complete the setup wizard. +3. Add your Gitea URL, a token with the required repository permissions, and the local folders to scan. +4. Optionally add a Docker or Unraid host, then use **Scan servers** to review detected workloads. + +The packaged updater checks a release against the exact remote commit, its SHA-256 checksum and the embedded Ed25519 publisher key. Existing installations continue to use the legacy release endpoint until the migration is qualified. + +### Explore with example data + +Requirements: Node.js 22, npm and Git. ```powershell -npm install +npm ci npm run demo ``` -Open daarna `http://127.0.0.1:41737`. +Open . The browser demo uses example repositories and server state; it does not mutate your Git checkouts or deploy a workload. To run the full desktop application from source, use `npm start` after `npm ci`. -## De dagelijkse workflow +## Deployment model -### 1. Begin bij wat aandacht vraagt +```mermaid +flowchart LR + Desktop[ForgeFlow desktop] --> Git[Local Git worktree] + Desktop --> Gitea[Gitea repository and Actions] + Gitea --> Runner[Approved deployment workflow] + Runner --> Server[Docker or Unraid host] + Server --> Evidence[Live revision and health evidence] + Evidence --> Desktop +``` -Het release-overzicht vertaalt technische status naar concrete acties: wijzigingen reviewen, commits pushen, synchroniseren, deployen of een ongezonde omgeving onderzoeken. De repositorylijst blijft beschikbaar zodat je snel van context kunt wisselen. +For server-pull deployments, the host fetches the **exact approved commit** with a repository-scoped read-only deploy key and a pinned SSH host key. ForgeFlow validates Compose configuration and checks post-deployment health. A direct copy remains an explicit fallback, never an implicit replacement for the verified pull path. -### 2. Review en publiceer code +Start with the [setup guide](docs/SETUP_GUIDE.md), [deployment setup](docs/DEPLOYMENT_SETUP.md), [SSH and Unraid deployment](docs/SSH_UNRAID_DEPLOYMENT.md), and [migration example](docs/DEPLOYMENT_MIGRATION_EXAMPLE.md). Keep runtime data and credentials outside Git. The [diagnostics guide](docs/DIAGNOSTICS.md) explains safe support bundles. -![Repositorywerkruimte met diff en volgende actie](docs/screenshots/repository-workspace.png) - -In de repositorywerkruimte zie je de volledige keten **Local → Gitea → Server**. Je kunt wijzigingen selecteren, diffs bekijken, gedeeltelijke hunk-staging behouden, branch protection controleren en een pull request openen. Destructieve of publicerende acties vereisen altijd expliciete bevestiging. - -### 3. Deploy en verifieer de live versie - -![Deploymentsoverzicht met herkenbare containerkaarten](docs/screenshots/deployments.png) - -Elke deploymentkaart benoemt repository, container, omgeving, uitvoeringsmethode, live commit, Gitea-commit, vorige versie en healthstatus. Zo blijven ook tientallen containers visueel van elkaar te onderscheiden. ForgeFlow ondersteunt gecontroleerde deployments via Gitea Actions en SSH/Unraid, met preflightcontrole en rollback waar beschikbaar. - -Bij server discovery vergelijkt ForgeFlow runtime-, Compose-, DockerMan- en Git-bewijs met Gitea. Exact bewezen matches worden automatisch gekoppeld; kandidaten, historische mappen en externe containers worden niet als productie-deployment geforceerd. Een exacte overeenkomst tussen de volledige live SHA en de actuele Gitea-SHA wordt als gelijklopende versie weergegeven. Ontbreekt de live SHA, dan meldt ForgeFlow eerlijk dat verificatie nog onvolledig is. - -De belangrijkste statussen zijn: - -| Status | Wat je ermee doet | -| --- | --- | -| **Ready** | De repository, servertoegang, live commit en runtime zijn geverifieerd. | -| **Commit mismatch** | De workload is correct gekoppeld, maar Gitea en de server draaien niet dezelfde commit. | -| **Verification incomplete** | De koppeling bestaat, maar de server bevat nog onvoldoende commitbewijs. Een ForgeFlow-beheerde deployment vult dit veilig aan. | -| **Access failed** | Controleer of herstel de repositorygebonden read-only deploy key voordat je deployt. | - -### 4. Verbeter de repository met Git Validator - -![Git Validator met assurance score en veilige fixes](docs/screenshots/git-validator.png) - -Git Validator groepeert bevindingen per onderwerp en maakt onderscheid tussen geslaagde controles, aanbevelingen en kritieke problemen. Alleen fixes die ForgeFlow veilig en voorspelbaar kan uitvoeren worden als automatische actie aangeboden; governancewijzigingen zoals branch protection blijven zichtbaar en expliciet. - -## Wanneer is een release werkelijk in orde? - -ForgeFlow houdt drie soorten waarheid bewust apart: - -| Controle | Betekenis | -| --- | --- | -| **Local ↔ Gitea** | De lokale branch volgt de juiste upstream en is niet onverwacht ahead, behind of divergent. | -| **Gitea ↔ Server** | De volledige commit-SHA op de server is exact gelijk aan de relevante commit op Gitea. | -| **Runtime health** | De container of applicatie draait en de geconfigureerde healthcheck slaagt. | - -Een gelijke commit bewijst welke code draait; een geslaagde healthcheck bewijst dat die versie ook functioneert. ForgeFlow combineert beide signalen zonder het ene voor het andere te laten doorgaan. - -## Belangrijkste functies - -### Git en Gitea - -- repositories ontdekken, favorieten beheren en ontbrekende lokale clones koppelen; -- status, diff, staging, partial hunks, commit, push, fetch, pull, stash en conflict recovery; -- read-only achtergrondfetch en een expliciete preview om een lokale projectmap veilig exact met de upstream Gitea-branch te synchroniseren; -- branches maken, wisselen, vergelijken en opruimen; -- branch protection controleren en pull requests openen; -- Git Validator met assurance score, bewijs per controle en gerichte veilige fixes. - -### Deployments - -- deploymentprofielen per repository en omgeving; -- Gitea Actions en SSH/Unraid als gecontroleerde uitvoeringsroutes; -- serverinventaris van draaiende en gestopte Docker-, Compose- en DockerMan-workloads; -- automatische koppeling op exact bewijs, expliciete review voor echte twijfelgevallen en herkenning van tijdelijke, historische en externe workloads; -- server-pull als aanbevolen route, met een afzonderlijke read-only deploy key per repository; -- directe checksum-gecontroleerde copy als alternatief zonder servertoegang tot Gitea; -- reconciliatie van deployments die buiten ForgeFlow werden bijgewerkt, op basis van de actuele Gitea- en serverwaarheid; -- verificatie op volledige SHA, runtime health en recente serverwaarheid; -- preflight, live logs, deploymenthistoriek en rollback naar de vorige bekende versie. - -### Veiligheid en beheer - -- credentials versleuteld via de beveiligde opslag van het besturingssysteem; -- origin-checks voorkomen dat een Gitea-token naar een andere host wordt gestuurd; -- updatepakketten worden alleen vanaf de geconfigureerde Gitea-origin gedownload en met checksums plus een vastgepinde Ed25519-publisherhandtekening geverifieerd; -- lokale redactie van tokens, wachtwoorden en gevoelige diagnostische data; -- versleutelde configuratieback-up, herstelvoorbeeld en lokale audittrail; -- packaged builds als Windows-installer en portable executable. - -Meer achtergrond staat in [SECURITY.md](docs/SECURITY.md) en [ARCHITECTURE.md](docs/ARCHITECTURE.md). - -## Eerste configuratie - -Voor normaal gebruik heb je nodig: - -- Windows 10 of 11; -- Git op het toestel; -- toegang tot een Gitea-account en een token met de benodigde repositoryrechten; -- minstens één lokale hoofdmap waarin ForgeFlow projecten mag ontdekken. - -Voor serverdetectie en SSH-deployments heb je daarnaast een bereikbare Docker- of Unraid-host en een werkende SSH-configuratie nodig. Begin bij: - -- [SETUP_GUIDE.md](docs/SETUP_GUIDE.md) — Gitea, projectmappen en eerste ingebruikname; -- [DEPLOYMENT_SETUP.md](docs/DEPLOYMENT_SETUP.md) — deploymentprofielen en verificatie; -- [SSH_UNRAID_DEPLOYMENT.md](docs/SSH_UNRAID_DEPLOYMENT.md) — SSH- en Unraid-vereisten; -- [DEPLOYMENT_MIGRATION_EXAMPLE.md](docs/DEPLOYMENT_MIGRATION_EXAMPLE.md) — veilig een bestaande servercheckout onder beheer brengen; -- [DIAGNOSTICS.md](docs/DIAGNOSTICS.md) — veilige controles en supportbundels. - -## Ontwikkelen vanuit de broncode - -Vereisten: Node.js 22, npm en Git. +## Develop and verify ```powershell npm ci npm run check -npm start +npm run acceptance ``` -Handige opdrachten: +`npm run check` performs source verification, linting and tests. Browser acceptance and Windows packaging are separate release gates. `src/main/` contains desktop services and IPC, `src/renderer/` contains the UI, `src/shared/` holds shared policies, `scripts/` contains validation and release tooling, and `tests/` covers core behavior. -| Opdracht | Doel | -| --- | --- | -| `npm run dev` | Start Electron in ontwikkelmodus. | -| `npm run demo` | Start de browserdemo met voorbeelddata. | -| `npm run check` | Voert bronverificatie en de volledige testset uit. | -| `npm run doctor` | Controleert de lokale ontwikkelomgeving. | -| `npm run acceptance` | Voert de release-acceptatiecontroles uit. | -| `npm run signing:setup` | Maakt eenmalig de lokale Ed25519-releasesleutel en schrijft alleen de publieke sleutel naar het project. | -| `npm run dist:win` | Bouwt Windows installer + portable package, schrijft checksums en een ondertekend releasemanifest en ruimt oude dist-artifacts op. | -| `.\Publish-ForgeFlow-Release.ps1` | Publiceert broncode én de bijbehorende Windows-release-assets als één gecontroleerde release. | -| `.\Publish-Missing-Binary-Release.ps1` | Herstelt een reeds gepushte versie waarvoor de Gitea binary release ontbreekt. | +This repository remains the download and update endpoint for existing Windows installations during the migration. The curated, content-only source is published at [ForgeFlow-Public](https://gitea.itworx.tech/Jens/ForgeFlow-Public). New binary publication there remains manual until signing and updater compatibility are verified. -De belangrijkste onderdelen zijn: - -```text -electron/ beveiligde desktopintegraties en IPC -src/ renderer, gebruikersflows en visuele componenten -scripts/ build-, release-, demo- en verificatiehulpmiddelen -tests/ unit- en integratietests -docs/ setup, deployment, beveiliging en release-informatie -``` - -Aanvullende kwaliteitsdocumentatie: - -- [TEST_MATRIX.md](docs/TEST_MATRIX.md) -- [ACCEPTANCE.md](docs/ACCEPTANCE.md) -- [STATUS_ENDPOINT.md](docs/STATUS_ENDPOINT.md) -- [ROADMAP.md](docs/ROADMAP.md) - -## Licentie - -ForgeFlow is beschikbaar onder de [MIT-licentie](LICENSE). +ForgeFlow is available under the [MIT License](LICENSE). Report security issues through [SECURITY.md](SECURITY.md).