A de Byl Technologies LLC Nextcloud cloned from the Skudak instance: LibreSign signing for people without an account, registration off (admin-created accounts only), no Group Folders. DNS is a terraform-managed ALIAS to fulfillr.debyltech.com. - containers/debyltech/cloud.yml: nextcloud/mariadb/redis on port 8091. It installs unattended on the first deploy, sends mail through SES as noreply@debyltech.com, and re-asserts the Skudak LibreSign settings. - files/debyltechmail: skudakmail rebranded, with a new black-and-white wordmark and white web-UI logos. - LibreSign is pinned to 14.2.2 from the GitHub release (sha256-checked) rather than `occ app:install`. The app store served a same-day 14.2.3 whose tarball has no binary-signature metadata. 14.2.x also doesn't create its own download dirs, so they're pre-created. - The backup runs nightly at 04:15 to TrueNAS /mnt/glacier/debyltechcloud and reaches personal iDrive via the "iDrive E2 Backup" task; the TrueNAS side excludes /debyltechcloud/_backup/config/**. - Fix the libresign:configure:check gate in both instances: '\berror\b' becomes a backspace in Jinja and never matched, so a check reporting three errors passed clean. Now '\\berror\\b'. - vault: cloud_debyltech_* secrets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
41 lines
1.7 KiB
CSS
41 lines
1.7 KiB
CSS
/*
|
|
* Mobile fix for the LibreSign public signing page.
|
|
*
|
|
* PROBLEM: src/ExternalApp.vue sets `height: 100vh` on `html body #content`
|
|
* and again on `#app-sidebar` under `@media (max-width: 512px)`. iOS Safari
|
|
* resolves 100vh against the LARGE viewport -- as though the browser chrome
|
|
* were hidden -- so the element extends behind the bottom toolbar and the
|
|
* signing action bar is clipped off-screen. The built `external` chunk uses
|
|
* 100vh seven times and dvh/svh/safe-area zero times.
|
|
*
|
|
* WHY NOT safe-area-inset: the page's viewport meta is
|
|
* `width=device-width, initial-scale=1.0, minimum-scale=1.0` with no
|
|
* `viewport-fit=cover`, so env(safe-area-inset-bottom) resolves to 0 here.
|
|
*
|
|
* WHY dvh: the dynamic viewport unit tracks the chrome as it shows and hides,
|
|
* which is exactly the behaviour wanted. Browsers without dvh support drop the
|
|
* declaration entirely and keep LibreSign's own 100vh -- so this degrades to
|
|
* today's behaviour rather than to something broken. No @supports needed.
|
|
*
|
|
* SCOPING IS LOad-BEARING. `#content` and `#app-sidebar` are Nextcloud-wide
|
|
* IDs used throughout the authenticated UI. Every rule below is scoped to
|
|
* `#body-public` + `.app-public`, which the public signing page sets:
|
|
* <body id="body-public" class="layout-base">
|
|
* <div id="content" class="app-public" role="main">
|
|
* Widening these selectors would restyle the whole instance.
|
|
*
|
|
* UPSTREAM: patched at source in src/ExternalApp.vue (lines 34 and 46) and
|
|
* submitted to LibreSign. Once that lands and this instance runs a release
|
|
* containing it, this file can be deleted.
|
|
*/
|
|
|
|
#body-public #content.app-public {
|
|
height: 100dvh;
|
|
}
|
|
|
|
@media (max-width: 512px) {
|
|
#body-public #app-sidebar {
|
|
height: 100dvh;
|
|
}
|
|
}
|