3.5 KiB
First public deployment — completed
On 2026-09-08 the user postponed Google OIDC setup and prioritized publishing the existing JVM prototype. No Google credentials are needed for this interim page; no account admission or tracking data is implemented in the deployed artifact.
Deployed artifact
- URL: https://werkjournal.javagil.de/ (without www).
- Successful Werkator source commit:
f7464cf232, 93-second build, production JAR/PWA smoke PASS. - JAR SHA-256: 6aaa1639aca222b759f1755033cc4916beab2f0db7ddd8093dd153c14f40e73d.
- Exact downloaded JAR and manifest were transferred; no deployment-time build.
Hostsharing layout
User: mih04-werkjournal@mih04.hostsharing.net, home /home/pacs/mih04/users/werkjournal.
- Managed JDK: ~/opt/jdk25.
- Releases: ~/opt/werkjournal/releases/; current is a relative symlink.
- Deployed manifest: ~/opt/werkjournal/deployed.json.
- Original index.html and .htaccess backups: ~/opt/werkjournal/initial-site-backup/{http,https} outside the public roots.
- HTTPS root: ~/doms/werkjournal.javagil.de/htdocs-ssl.
- HTTP root: ~/doms/werkjournal.javagil.de/htdocs, redirecting to HTTPS.
- Unit: ~/.config/systemd/user/werkjournal-backend.service, enabled for user startup.
- Optional future secrets: ~/.config/werkjournal/environment; the installer never writes that file.
The service binds to 127.0.0.1:18090, with a 384 MiB heap ceiling and 192 MiB metaspace ceiling. These limits do not cap total process RSS. systemd reported approximately 246 MiB shortly after the initial startup.
Verification and proxy correction
The independent maintenance page returned HTTP 503 before public access was enabled. Public info, HTML, PWA manifest, manifest icons, service worker and offline resource return HTTP 200 with appropriate content types. Plain HTTP redirects to the HTTPS domain.
The browser initially showed Connection lost even though all simple resource checks passed. A temporary, removed Tomcat access-log diagnostic proved that Apache transformed the root initialization request into /index.html while preserving its query. Internal /?v-r=init returned JSON; the public request reached /index.html?v-r=init and returned static HTML. DirectoryIndex disabled in the HTTPS .htaccess prevents the directory-index subrequest. The proxy also passes QUERY_STRING explicitly. The deployment gate now checks the actual Flow initialization response as JSON with appConfig, in addition to the info endpoint.
After correction, the public browser rendered the Werkjournal heading, “Technischer Prototyp – noch keine Datenerfassung.” and Online. The old “nothing here” index files have been backed up and removed. Temporary diagnostic configuration and logs were removed.
Operations and remaining scope
The first-deployment command uses a deployment lock, strict archive member validation, checksums on both ends, maintenance gating and readiness checks. It refuses existing services, releases or H2 data. Failed first startup keeps maintenance enabled and stops/disables the service; it requires inspection before another attempt.
Service inspection on the target:
systemctl --user status werkjournal-backend.service
journalctl --user -u werkjournal-backend.service -n 100 --no-pager
This completes the requested initial public prototype deployment. Data-aware upgrades, matched application/database rollback, automatic deployment from CI and the complete remote command facade remain the dedicated implementation nodes. Google setup is postponed; the remaining auth and PWA feasibility work is not marked complete.