Skip to content

docs: add a local demo environment (stackiq-compose.yaml + setup page) - #783

Merged
rubenvdlinde merged 1 commit into
developmentfrom
docs/demo-environment
Aug 28, 2026
Merged

docs: add a local demo environment (stackiq-compose.yaml + setup page)#783
rubenvdlinde merged 1 commit into
developmentfrom
docs/demo-environment

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Adds a self-contained demo environment: stackiq-compose.yaml at the repository root and docs/Installation/demo-environment.md describing it.

What it does

Postgres + Nextcloud, with openregister (required), thematiq and integriq (optional) and stackiq installed from release tarballs and enabled in dependency order. Versions float to the newest release, pre-releases included, and each is pinnable.

Two deliberate choices

Nothing is bind-mounted. Nextcloud installs and updates an app by deleting its directory and extracting a fresh archive over it. Point that at a checkout and an app-store update deletes the working tree — measured on a development machine on 2026-08-27, where \OC\Updater::upgradeAppStoreApp fired on a container restart and removed every top-level file from a bind-mounted checkout, .git included.

Release tarballs, not git clone. A tarball is a complete app carrying vendor/ and the built js/. A clone carries neither, and an app with no vendor/ does not fail loudly: it warns once and keeps loading, so it looks installed while every service needing a dependency is quietly absent.

Note on the dependency

The openregister dependency is not declared in appinfo/info.xml — no app in the fleet declares an <app> dependency — so nothing stops the App Store installing this app without it. It would then load and find no register to attach to. The compose encodes the dependency the manifest does not.

Verification

docker compose config parses and interpolates this file. The same generated file was booted end to end for portaliq: 4 apps installed and enabled, 17 registers, 86 schemas, 13 magic tables for its own register, and the portal content API returned a real site rather than an empty shell — a content check, since the page returns HTTP 200 either way.

Adds `stackiq-compose.yaml` and a setup page describing it.

The compose brings up Postgres and Nextcloud, installs openregister (required),
thematiq and integriq (optional) and stackiq from release tarballs, and enables
them in dependency order. Nothing is bind-mounted: Nextcloud installs an app by
deleting its directory and extracting an archive over it, so pointing that at a
checkout deletes the working tree — measured on a development machine on
2026-08-27, where an app-store update fired on a container restart and removed
every top-level file including .git.

Release tarballs rather than a clone for a second reason: a tarball is a
complete app carrying vendor/ and the built js/, and an app with no vendor/
does not fail loudly — it warns once and keeps loading, so it looks installed
while every service needing a dependency is absent.

The openregister dependency is not declared in appinfo/info.xml — no app in the
fleet declares an <app> dependency — so the compose encodes what the manifest
does not.

Verified: docker compose config parses and interpolates; the same generated
file was booted end to end for portaliq, which produced 17 registers, 86
schemas and 13 magic tables for its own register, with the portal content API
returning a real site rather than an empty shell.
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/stackiq @ 49a0d8d

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
check-vue-demi
test-l10n
format
check-schema-l10n
check-l10n-js
composer ✅ 130/130
npm ✅ 721/721
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman ⏭️
Playwright 🚨 NO VERDICT — enabled but never ran
Hydra gates

Quality workflow — 2026-08-28 13:42 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 181aaa4 into development Aug 28, 2026
45 checks passed
@rubenvdlinde
rubenvdlinde deleted the docs/demo-environment branch August 28, 2026 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant