Public web-only release: SvxPortal front-end + auth backend, install templates and INSTALL.md

Stripped from the internal repo: per-box deploy trees, Go services (nodelist/astmeta/proxy/svxdr),
deploy/sync scripts and all secrets. Config templates for nginx, PHP-FPM, Redis and tmpfiles
live in install/ with CHANGEME placeholders.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-09-26 23:07:05 +02:00
co-authored by Claude Fable 5.1
commit 25b481e2ae
93 changed files with 13357 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
'use strict';
// Tab switching for help.html. Deep-linkable: #build, #setup, #admin, #portal.
(function(){
const tabs = document.getElementById('helpTabs');
if (!tabs) return;
function show(name){
document.querySelectorAll('.tab-section').forEach(s =>
s.classList.toggle('d-none', s.id !== 'tab-' + name));
tabs.querySelectorAll('button').forEach(b =>
b.classList.toggle('active', b.dataset.tab === name));
}
tabs.addEventListener('click', e => {
const b = e.target.closest('button[data-tab]');
if (!b) return;
show(b.dataset.tab);
history.replaceState(null, '', '#' + b.dataset.tab);
});
const h = location.hash.replace('#', '');
if (h && document.getElementById('tab-' + h)) show(h);
})();