Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Logbook for truck drivers: trips, shifts, refuelling, cargo and containers. Android app and the online program my.vecturabook.com, 29 languages.
BusinessHTML · JavaScriptGitHub @germormdevOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Источник витрины — bare-репозиторий /volume1/Gromoz/CargoLogSite/Git/CargoLogSite.git на NAS, рабочий клон — /volume1/Gromoz/CargoLogSite/work.
Любое устройство клонирует оттуда (ssh://[email protected]/volume1/Gromoz/CargoLogSite/Git/CargoLogSite.git, ПК — F:\CargoLogSite,
мак — ~/dev/cargologsite) и пушит в main обратно. Хук post-receive на NAS подтягивает рабочий клон и Y:\CargoLog\Site (копия для
просмотра) и отправляет main на GitHub Pages (germormdev/germormdev.github.io, домен vecturabook.com) ключом, который лежит только
на NAS (/volume1/secrets/github). Не ушло на GitHub — пуш в NAS всё равно принят, причина в CargoLogSite/github-push.log, повтор:
sh /volume1/Gromoz/CargoLogSite/Git/push-to-github.sh. Напрямую на GitHub с устройств больше не пушат.
GitHub Pages, ветка main, домен vecturabook.com (репозиторий germormdev.github.io; старый адрес github.io мёртв и только перекидывает).
Пять страниц: index.html (EN), ru.html, he.html, privacy.html, versions.html.
python site_check.py
Когда: в начале каждой сессии и после каждой ручной вставки German в админку. Плюс перед любой правкой витрины — чтобы отличить своё от чужого.
«Смотрел, нового нет» — тоже строка отчёта. Сторож печатает строку на каждую проверку, включая зелёные: молчание при беде выглядит ровно как молчание при чистоте. Код возврата 0 — чисто, 2 — красное с перечнем. Ничего не правит.
Флаги: --local <папка> — проверить копию перед пушем; --no-firestore — без сети.
Что проверяет: все выпущенные версии из published_version_names.txt приложения присутствуют в истории (на 11.10.2026 — 16, свежая 2.5.2) · битых номеров
нет · у каждой версии полный набор языков · «What's New» не пуст · ни одного
заголовка без содержимого · og и canonical на всех пяти страницах ·
og:locale:alternate обе чужие локали · ролик Bth3gelqPeg жив на трёх языках
и на домене nocookie · счётчика посещений на витрине нет ни на одном языке ·
gtag подключён на всех пяти страницах ровно один раз · ни на одном языке не
вернулось обещание, что данные или местоположение не уходят на серверы.
Зубы сторожа проверяются укусом: Y:\CargoLog\Scratch\2026-09-03-sait-blok-A\d4-ukus-storozha.py
подсовывает восемь дефектов по одному. Зелёный сторож без укуса не принимается.
Сразу под шапкой на index.html, ru.html, he.html — блок <section class="promo" data-promo="<язык>">.
Язык ролика = язык страницы (EN → en, RU → ru, HE → he), меняется только переключателем языка сайта.
⛔ Вкладок языка над роликом нет и не ставить (German 27.10.2026): выбранная вкладка возвращалась кнопкой
«Назад» из памяти браузера, и на английской странице на S24 шёл ролик на иврите. Кнопку звука и загрузку
рисует promo.js, вид — promo.css: один файл на три страницы; блок помечен translate="no". Ролик — на самом сайте, video/promo-<язык>.mp4,
обложка до загрузки — video/promo-<язык>.jpg. Автозапуск беззвучный (со звуком браузеры не запускают),
файл качается только после загрузки страницы, вне экрана беззвучный ролик стоит на паузе, при «экономии
трафика» в браузере ждёт кнопки.
Замена ролика (источник — Y:\CargoLog\ForGerman\<дата>-reklamnyj-rolik\VecturaBook-promo-<язык>.mp4).
⛔ Звук — трек German (AAC 320 кбит/с), только копией (-c:a copy), не перекодировать:
ffmpeg -i VecturaBook-promo-ru.mp4 -map 0:v:0 -map 0:a:0 -vf scale=1280:-2:flags=lanczos \
-c:v libx264 -preset slow -tune animation -crf 27 -maxrate 1000k -bufsize 2000k \
-profile:v high -level 4.0 -pix_fmt yuv420p -g 60 -c:a copy -movflags +faststart video/promo-ru.mp4
ffmpeg -ss 12 -i video/promo-ru.mp4 -frames:v 1 -q:v 4 video/promo-ru.jpg # обложка — титул ролика
⛔ Звук в MP4 — только AAC. MP3 в упаковке MP4 плеер Apple (Safari на маке и iPhone, QuickTime) не видит и играет
немо (German заметил 27.10.2026; до пересборки ролика рядом лежал .mov). С 27.10.2026 звук AAC, файл один — .mp4
для всех браузеров, MOV убран.
Сторож: раздел [4.1] (блок первым под шапкой на трёх языках, файл и обложка на месте, звук AAC — читает заголовок
ролика, вкладок нет, promo.js не ищет MOV), укусы N, O, P, Q, S (звук MP3), T (ветка MOV).
Кнопка звука — в верхнем углу кадра: надписи ролика бывают только внизу и посередине (German 27.10.2026).
Переключатель языков в шапке — <div class="lang-switch flex … gap-4">, на иврите с dir="ltr" (порядок EN RU HE как
на остальных страницах). ⛔ Не space-x-* с space-x-reverse: в RTL отступ ложился не с той стороны, и «EN RU»
слиплись (S24, 27.10.2026). Сторож [9] меряет промежуток (меньше 8 px — красное), укус R; на маке [9] теперь
находит Chrome (раньше «не проверялось»).
Коллекции site_content, site_screenshots, site_videos — пусты, 0
документов. Всё, что видит человек, лежит в разметке страниц.
Отсюда следствие, о которое легко споткнуться:
ЛЮБАЯ запись в
site_contentподменит статику раздела ЦЕЛИКОМ.
loadSiteContent не дописывает и не сливает — он заменяет содержимое
контейнера тем, что пришло. Сохранил в админке вкладку Content с одним пунктом
в списке — на витрине останется один пункт, остальные пропадут, хотя в
index.html они на месте.
Пустой массив при этом статику НЕ трёт (проверка на length, 03.09.2026): пустой
список — это отсутствие содержимого, а не содержимое. Так закрыт третий случай
голого заголовка; два первых — раздел Videos и счётчик посещений — вырезаны.
Живые коллекции: version_history (история версий) и stats/visits (счётчик).
Считается, на витрине не показывается: ни разметки, ни числа, ни подписи ни
на одной из трёх языковых страниц. Числа видны в versions.html внутри
#admin-block, то есть только после входа Google.
sessionStorage: та же вкладка за сессию считается один раз;ADMIN_EMAILS) не считаются;Посуточная разбивка ждёт правил Firestore. Замер 03.09.2026: анонимная запись
в stats/visits/daily/<дата> отдаёт 403, правила такой путь не покрывают.
Пока правил нет, в админке вместо чисел стоят прочерки и оранжевая строка, а
общий счёт идёт как шёл. Нужное правило — в
Y:\CargoLog\Scratch\2026-09-03-sait-blok-A\firestore-rules-daily.txt.
GA4 — свой ресурс сайта, отдельный от программы (решение German 28.10.2026): в ресурсе программы
(cargolog-28bdd, 534432169) — только программа. Ресурс сайта — «vecturabook.com (сайт)», 561654276, веб-поток
G-7QCC1PSEZX (аккаунт German 392498240; завёл Клод Нетворк через Admin API 30.10.2026). Пустой GA_ID в
analytics.js — сайт не шлёт ничего (прежний общий поток G-1W3HBDDM7P не трогается). Наши проверки не пишут: шлёт только боевой хост, не navigator.webdriver, не браузер с меткой
?noga=1 (метка остаётся в localStorage). Недельная сводка NAS берёт сайт из site_property.txt рядом с
weekly.py (ID ресурса цифрами) — отдельным сообщением от программы.
Подключается одним общим куском — analytics.js, по одной строке на страницу.
Копий gtag в страницах быть не должно, сторож это проверяет.
Cookie-баннера нет и согласия сайт не спрашивает — осознанно: IP анонимизируется,
allow_google_signals и allow_ad_personalization_signals выключены. Заходы
админа не шлются вовсе: просмотр страницы уходит только после того, как выяснено
состояние входа.
События: page_view, store_click (store=google_play / rustore),
language_switch (to=en|ru|he).
git add; -c core.autocrlf=false здесь раздувает дифф на весь
файл (замер 31.08.2026, для этого репозитория правило обратно тому, что
записано для дерева приложения).~/.ssh/id_ed25519_github, аккаунт germormdev.