major rewrite - combined separate docs-lib and moongate apps into single app using prefixes with multiple route files; merged DB functions into model which is now a D2 plugin, providing encapsulated model domains (infolib, moongate & dpw); uses route names to allow tt to call uri_for_route, but some caveats: * route names must be unique across all route files * uri_for_route cannot be used in any template loaded after a forward since the data required in request.uri_for_route($name) is deleted during the forwarding process leading to fatal error when tt calls the uri_for_route function; META function no longer works since tt WRAPPER function disabled to allow routes to define layout
major rewrite - combined separate docs-lib and moongate apps into single app using prefixes with multiple route files; merged DB functions into model which is now a D2 plugin, providing encapsulated model domains (infolib, moongate & dpw); uses route names to allow tt to call uri_for_route, but some caveats: * route names must be unique across all route files * uri_for_route cannot be used in any template loaded after a forward since the data required in request.uri_for_route($name) is deleted during the forwarding process leading to fatal error when tt calls the uri_for_route function; META function no longer works since tt WRAPPER function disabled to allow routes to define layout
moved documents_path setting to config_local.yml files to allow site-specific configuration; Moongate documents_path now defined in config_local.yml (same way DPW docs_path is defined); new test file for household based on moongate.t, most dpw.t tests now skipped as they are not htmx-aware
converted dpw section to SPA using htmx; renamed moongate new-document route to match other route prefixes; removed unused route names; removed unused all_documents() subs from all route files; new test file for htmx requests
10 weeks ago
README.txt
* app is designed for perl v5.34.0 & Feature::Compat::Class, does not work on later since signatures
are not handled unless perl >= 5.36 specified in 'use'
* requires development_local.yml & test_local.yml in environments dir to run tests and dev server
* any new function expects db name to be same as prefix
* to dump query to console, set flag in development_local.yml, can be over-ridden by
'SQL_TRACE=0/1' command-line
$ ln -s production.yml deployment.yml
on volvox.online [Apache2] ==================================================================
# /etc/apache2/websites/volvox.online.ssl
# documents library (check running port map in docker-compose.yml):
ProxyPass /docs-lib http://localhost:5001/docs-lib
ProxyPassReverse /docs-lib http://localhost:5001/docs-lib
# reconfig timezone for GB:
$ dpkg-reconfigure tzdata [select 8 then 27]
OR [https://stackoverflow.com/questions/44331836/apt-get-install-tzdata-noninteractive]:
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y tzdata
RUN unlink /etc/localtime
RUN ln -s /usr/share/zoneinfo/Europe/London /etc/localtime
## to run:
$ docker compose up -d
## to restart:
$ docker compose [stop|start] documents_library
# to rebuild:
docker compose up --build --force-recreate --no-deps documents_library
https://volvox.online/docs-lib
on ZBOX [lighttpd] =================================================================================:
$ plenv install 5.34.0
$ plenv local 5.34.0
$ plenv version # to confirm perl version
$ plenv install-cpanm
$ cpanm Carmel
$ cpanm Plack
$ carmel install
$ carmel rollout
$ plenv rehash
# to test:
$ perl -Ilocal/lib/perl5 local/bin/plackup [-E deployment] -p 5003 bin/app.psgi
# for deployment, see bin/daemon-control.pl
# \etc\lighttpd\conf-enabled\20-proxy.conf
$HTTP["host"] =~ "docslib.zbox.local$" {
server.document-root = "/home/raj/apps/DocsLibrary/public/"
proxy.server = (
"" => (
(
"host" => "127.0.0.1", "port" => 5003,
#"host" => "/tmp/docslib.sock",
"check-local" => "disable",
)
)
)
}
on Windows client C:\Windows\System32\drivers\etc\hosts:
192.168.0.112 zbox.local
[...]
192.168.0.112 docslib.zbox.local
https://docslib.zbox.local/dpw/