Guacamole isporucuje 22 rasporeda, hrvatskog nema. Rasporedi se
kompajliraju u libguac-client-rdp, pa se ne mogu dodati naknadno —
guacd se mora ponovno prevesti.
guacd-hr/hr_hr_qwertz.keymap
Izveden iz X11 "hr" rasporeda na stvarnom sustavu (hr -> rs(latin):
rs(common) za brojcani red, rs(latalpha) za s/d/c/c/z s dijakriticima,
rs(latlevel3) za AltGr), ne po sjecanju. Strukturno prati cs-cz-qwertz
jer njegov caps model dira samo slova, dok de_de_qwertz izvrce i
brojcani red.
guacd-hr/build.sh
Preuzme sluzbeni izvor tražene verzije, ubaci keymap u keymaps/ i u
popis rdp_keymaps, pa gradi koristeci Dockerfile koji dolazi uz taj
izvor. Namjerno se ne prepisuje upstream receptura, da nadogradnja
bude "./build.sh 1.7.0" umjesto odrzavanja vlastitog builda.
Ovisnosti su zakljucane jer ih upstream gradi iz gita i bira najnoviji
tag, pa gradnja pukne sama od sebe: libwebsockets v5 trazi GnuTLS
kojeg build okruzenje 1.6.0 nema, a FreeRDP 2.x je odmakao na razvojne
tagove koje configure odbija. Zakljucani su na v4.x i 2.11.7 — ono sto
nosi sluzbeni guacd:1.6.0 — i pregazivi su preko env varijabli.
install.sh
Novo pitanje pri instalaciji; ako se prihvati, gradi image i compose
koristi njega umjesto sluzbenog guacd-a. Postojeci image se ne gradi
ponovno.
Provjereno cistom instalacijom na Ubuntu 24.04: gradnja prolazi u sklopu
installera, image sadrzi hr-hr-qwertz uz svih 22 standardnih, FreeRDP je
2.11.7 kao u sluzbenom, i svih 9 GUI stranica vraca 200.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1) Debian/Ubuntu u jail.d/defaults-debian.conf postavlja globalni
backend = systemd. Nasi nginx jailovi ga nisu nadjacali, pa su
naslijedili systemd, ignorirali logpath i citali journal u kojem
nginx access loga nema. "fail2ban-client get nginx-basicauth
logpath" je vracao "No file is currently monitored" — jailovi
nikad nisu banali nista, iako fail2ban-regex nad istim logom
nalazi 48 poklapanja. Dodan eksplicitan backend = auto na oba
nginx jaila; sshd ostaje na systemd backendu gdje mu je mjesto.
2) Novo pitanje pri instalaciji: je li server iza reverse proxyja.
Ako da, generira se conf.d/guacamole-realip.conf sa
set_real_ip_from / real_ip_header X-Forwarded-For. Bez toga je
$remote_addr uvijek IP proxyja, pa bi fail2ban banirao proxy i
zakljucao sve korisnike odjednom, rate limit bi bio jedan
zajednicki budzet, a GeoIP bi gledao krivu adresu.
Provjereno iza Nginx Proxy Managera: direktan pristup i dalje daje
LAN IP, spoofani X-Forwarded-For s nepovjerljive adrese se ignorira,
a kroz proxy fail2ban sad biljezi stvarni javni IP klijenta.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
install.sh je nosio vlastitu kopiju Web GUI-ja u heredoc blokovima i ta
se kopija razisla s webgui/ direktorijem: inline verzija imala je 8
stranica, webgui/ ih ima 10. Stranice Backup i Azuriranja, koje README
i UPUTE.txt dokumentiraju, tako nikad nisu zavrsile na serveru.
Sada se app.py i predlosci kopiraju iz webgui/ pokraj skripte (SRC_DIR).
Uklonjeno ~1090 linija duplikata. Ako webgui/ nedostaje, skripta pukne s
jasnom porukom umjesto da instalira nepotpun GUI.
README i UPUTE dopunjeni: treba kopirati cijeli repo, ne samo install.sh.
Provjereno cistim installom na Ubuntu 24.04: svih 9 stranica vraca 200,
backup stvarno kreira arhivu s pg_dumpom i nginx/ssl konfiguracijom,
TOTP se ucitava, sve prezivi reboot.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
All-in-one installer za Apache Guacamole s Nginx reverse proxy,
fail2ban, SSL (Let's Encrypt / Self-signed), GeoIP blokiranjem
i Flask web GUI za upravljanje.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>