<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>http://blok.tydyt.cz/index.php?feed=atom&amp;namespace=0&amp;title=Speci%C3%A1ln%C3%AD%3ANov%C3%A9_str%C3%A1nky</id>
		<title>Poznámkový blok - Nejnovější stránky [cs]</title>
		<link rel="self" type="application/atom+xml" href="http://blok.tydyt.cz/index.php?feed=atom&amp;namespace=0&amp;title=Speci%C3%A1ln%C3%AD%3ANov%C3%A9_str%C3%A1nky"/>
		<link rel="alternate" type="text/html" href="http://blok.tydyt.cz/index.php/Speci%C3%A1ln%C3%AD:Nov%C3%A9_str%C3%A1nky"/>
		<updated>2026-04-07T12:44:28Z</updated>
		<subtitle>Z Poznámkový blok</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://blok.tydyt.cz/index.php/CzADSB-Mlat_web</id>
		<title>CzADSB-Mlat web</title>
		<link rel="alternate" type="text/html" href="http://blok.tydyt.cz/index.php/CzADSB-Mlat_web"/>
				<updated>2026-03-08T16:02:20Z</updated>
		
		<summary type="html">&lt;p&gt;Tydyt: /* Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Příprava ==&lt;br /&gt;
Pro správnou funkci je potřeba doinstalovat:&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install libdate-manip-perl jq&lt;br /&gt;
&lt;br /&gt;
== Načítání dat ==&lt;br /&gt;
Jako první zprovozníme načítání dat z mlat serverů. Bez těchto dat se nám stejně nic nezobrazí.&lt;br /&gt;
&lt;br /&gt;
Vytvoříme adresář kde uložíme synchronizační skript. V jeho úvodě upravíme cestu 'WEBPATH', kde bude uloženy soubory vlastního webu. V případě kdy budeme stahovat konfiguraci regionů 'REGIONS_URL' z jiného webu, nastavíme cestu na tento soubor.&lt;br /&gt;
 sudo mkdir /opt/mlat-sync&lt;br /&gt;
 sudo cp sync.sh /opt/mlat-sync/sync.sh &lt;br /&gt;
 sudo mcedit /opt/mlat-sync/sync.sh&lt;br /&gt;
&lt;br /&gt;
Pokud budeme používat místní konfiguraci regionů, vytvoříme tento soubor, v kterém doplníme adresy pro stažení informací o synchronizaci přijímačů.&lt;br /&gt;
 sudo mcedit /opt/mlat-sync/mirror_regions.json&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;0&amp;quot;:{ &amp;quot;region&amp;quot;:&amp;quot;EU&amp;quot;, &amp;quot;name&amp;quot;:&amp;quot;Europe&amp;quot;,        &amp;quot;enabled&amp;quot;:true,  &amp;quot;color&amp;quot;:&amp;quot;#1f78b4&amp;quot;, &amp;quot;syncdata&amp;quot;:&amp;quot;http://api.czadsb.cz/sync.json&amp;quot; },&lt;br /&gt;
 &amp;quot;1&amp;quot;:{ &amp;quot;region&amp;quot;:&amp;quot;AF&amp;quot;, &amp;quot;name&amp;quot;:&amp;quot;Africa&amp;quot;,        &amp;quot;enabled&amp;quot;:false, &amp;quot;color&amp;quot;:&amp;quot;#8dd3c7&amp;quot;, &amp;quot;syncdata&amp;quot;:&amp;quot;&amp;quot; },&lt;br /&gt;
 &amp;quot;2&amp;quot;:{ &amp;quot;region&amp;quot;:&amp;quot;AS&amp;quot;, &amp;quot;name&amp;quot;:&amp;quot;Asia&amp;quot;,          &amp;quot;enabled&amp;quot;:false, &amp;quot;color&amp;quot;:&amp;quot;#ff7f00&amp;quot;, &amp;quot;syncdata&amp;quot;:&amp;quot;&amp;quot; },&lt;br /&gt;
 &amp;quot;3&amp;quot;:{ &amp;quot;region&amp;quot;:&amp;quot;NA&amp;quot;, &amp;quot;name&amp;quot;:&amp;quot;North America&amp;quot;, &amp;quot;enabled&amp;quot;:false, &amp;quot;color&amp;quot;:&amp;quot;#33a02c&amp;quot;, &amp;quot;syncdata&amp;quot;:&amp;quot;&amp;quot; },&lt;br /&gt;
 &amp;quot;4&amp;quot;:{ &amp;quot;region&amp;quot;:&amp;quot;OC&amp;quot;, &amp;quot;name&amp;quot;:&amp;quot;Oceania&amp;quot;,       &amp;quot;enabled&amp;quot;:false, &amp;quot;color&amp;quot;:&amp;quot;#9fdc6a&amp;quot;, &amp;quot;syncdata&amp;quot;:&amp;quot;&amp;quot; },&lt;br /&gt;
 &amp;quot;5&amp;quot;:{ &amp;quot;region&amp;quot;:&amp;quot;SA&amp;quot;, &amp;quot;name&amp;quot;:&amp;quot;South America&amp;quot;, &amp;quot;enabled&amp;quot;:false, &amp;quot;color&amp;quot;:&amp;quot;#dddddd&amp;quot;, &amp;quot;syncdata&amp;quot;:&amp;quot;&amp;quot; }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Nakonec nastavíme do cron pravidelné spouštění skriptu pro aktualizaci synchronizačních dat&lt;br /&gt;
 sudo mcedit /etc/cron.d/mlat-sync&lt;br /&gt;
&lt;br /&gt;
 # Pravidelne stazeni synchronizacnich dat z mlat serveru&lt;br /&gt;
 */1 * * * * root cd /opt/mlat-sync &amp;amp;&amp;amp; /opt/mlat-sync/sync.sh&lt;br /&gt;
== Web ==&lt;br /&gt;
 # prvne nainstalujeme WebServer. Doporučuje se lighttpd, nebo nginx.&lt;br /&gt;
 sudo apt install -y lighttpd jq libdate-manip-perl&lt;br /&gt;
 sudo apt install -y lighttpd-modules-lua lua-luaossl&lt;br /&gt;
 sudo lighty-enable-mod alias&lt;br /&gt;
&lt;br /&gt;
 sudo mkdir -p /var/www/html/mlat&lt;br /&gt;
 # Kopírujeme celé složky, abychom zachovali strukturu&lt;br /&gt;
 sudo cp -r /cesta/k/repozitari/syncmap /var/www/html/mlat/&lt;br /&gt;
 sudo cp -r /cesta/k/repozitari/synctable /var/www/html/mlat/&lt;br /&gt;
&lt;br /&gt;
 # Vytvoření cesty sync/default uvnitř složky s mapou&lt;br /&gt;
 sudo mkdir -p /var/www/html/mlat/syncmap/sync/default/&lt;br /&gt;
 &lt;br /&gt;
 # Vytvoření symbolického odkazu na tvůj mlat-server soubor&lt;br /&gt;
 sudo ln -s /run/mlat-server/sync.json /var/www/html/mlat/syncmap/sync/default/sync.json&lt;br /&gt;
&lt;br /&gt;
Vytvoř soubor /etc/lighttpd/conf-available/89-mlat.conf:&lt;br /&gt;
 # Mapa bude dostupná na /mlat/&lt;br /&gt;
 alias.url += ( &amp;quot;/mlat/&amp;quot; =&amp;gt; &amp;quot;/var/www/html/mlat/syncmap/&amp;quot; )&lt;br /&gt;
 # Tabulka bude dostupná na /mlat-table/&lt;br /&gt;
 alias.url += ( &amp;quot;/mlat-table/&amp;quot; =&amp;gt; &amp;quot;/var/www/html/mlat/synctable/&amp;quot; )&lt;br /&gt;
 &lt;br /&gt;
 # POVOLENÍ SYMLINKŮ (Bez tohoto originální skript data neuvidí)&lt;br /&gt;
 server.follow-symlink = &amp;quot;enable&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Nastavení pro správné načítání JSON bez kešování&lt;br /&gt;
 $HTTP[&amp;quot;url&amp;quot;] =~ &amp;quot;^/mlat/.*\.json$&amp;quot; {&lt;br /&gt;
     setenv.add-response-header += ( &amp;quot;Cache-Control&amp;quot; =&amp;gt; &amp;quot;no-store, no-cache, must-revalidate, max-age=0&amp;quot; )&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 sudo lighty-enable-mod alias&lt;br /&gt;
 sudo lighty-enable-mod setenv&lt;br /&gt;
 sudo systemctl restart lighttpd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DData ze ctou ze souboru 'sync.json'.&lt;br /&gt;
&lt;br /&gt;
== Odkazy ==&lt;br /&gt;
* [[ADS-B | Zpět na ADS-B ]]&lt;br /&gt;
* [[ADS-B#CzADSB | Zpět seznam CzADSB ]]&lt;br /&gt;
* [[CzADSB-Mlat_server | Instalace Mlat serveru ]]&lt;br /&gt;
* [[Raspberry#Projekty | Zpět na projekty Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Tydyt</name></author>	</entry>

	<entry>
		<id>http://blok.tydyt.cz/index.php/CzADSB-Mlat_server</id>
		<title>CzADSB-Mlat server</title>
		<link rel="alternate" type="text/html" href="http://blok.tydyt.cz/index.php/CzADSB-Mlat_server"/>
				<updated>2026-02-27T23:03:26Z</updated>
		
		<summary type="html">&lt;p&gt;Tydyt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Verze ==&lt;br /&gt;
* https://github.com/mutability/mlat-server        - 11 let starý kód, který se již neaktualizuje&lt;br /&gt;
* https://github.com/adsb-related-code/mlat-server - hlavni zdroj !                        This branch is 363 commits ahead of mutability/mlat-server:master&lt;br /&gt;
* https://github.com/adsbexchange/mlat-server                                              This branch is 1 commit behind                          adsb-related-code/mlat-server&lt;br /&gt;
* https://github.com/ADSBexchange/mlat-server                                              This branch is 2 commits ahead of and 1 commit behind   adsb-related-code/mlat-server&lt;br /&gt;
* https://github.com/TanerH/mlat-server            - starý kód, který se již neaktualizuje This branch is 1 commit ahead of and 320 commits behind adsb-related-code/mlat-server&lt;br /&gt;
* https://github.com/wiedehopf/mlat-server                                                 This branch is 325 commits ahead of and 1 commit behind TanerH/mlat-server&lt;br /&gt;
* https://github.com/adsblol/mlat-server                                                   This branch is 21 commits ahead of                      wiedehopf/mlat-server:master&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mapa:&lt;br /&gt;
* https://github.com/wiedehopf/mlat-server-sync-map/tree/master&lt;br /&gt;
&lt;br /&gt;
== Instalace ==&lt;br /&gt;
=== Příprava ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&lt;br /&gt;
 sudo apt install -y git python3-pip python3 python3-venv gcc&lt;br /&gt;
 sudo chmod 777 /opt/&lt;br /&gt;
 git clone https://github.com/adsblol/mlat-server.git /opt/mlat-server&lt;br /&gt;
 # Provedeme pripadnou opravu zdroje&lt;br /&gt;
 VENV=/opt/mlat-python-venv&lt;br /&gt;
 sudo rm -rf $VENV&lt;br /&gt;
 python3 -m venv $VENV&lt;br /&gt;
 source $VENV/bin/activate&lt;br /&gt;
 pip3 install -U pip&lt;br /&gt;
 pip3 install numpy scipy pykalman python-graph uvloop ujson Cython setuptools&lt;br /&gt;
 cd /opt/mlat-server&lt;br /&gt;
 python3 setup.py build_ext --inplace&lt;br /&gt;
 sudo chmod 755 /opt/&lt;br /&gt;
&lt;br /&gt;
Po každé aktualizaci kódu znovu zkompilujte věci Cython:&lt;br /&gt;
 VENV=/opt/mlat-python-venv&lt;br /&gt;
 source $VENV/bin/activate&lt;br /&gt;
 cd /opt/mlat-server&lt;br /&gt;
 python3 setup.py build_ext --inplace&lt;br /&gt;
&lt;br /&gt;
Starý, již neplatný &lt;br /&gt;
 pip3 install numpy scipy pykalman python-graph-core uvloop ujson Cython setuptools==81.0.0&lt;br /&gt;
&lt;br /&gt;
Opusteni VENV:&lt;br /&gt;
 deactivate&lt;br /&gt;
&lt;br /&gt;
=== Opravy ===&lt;br /&gt;
V novějších verzích Pythonu (striktně od verze 3.11, ale v 3.13 je to už definitivní) došlo ke změně ve funkci random.sample.&lt;br /&gt;
V některých uložištích tento nový formát není zohledněn. Prosím zkontrolujme soubor /opt/mlat-server/mlat/tracker.py, řádky 321 a 326. Pokud tam je:&lt;br /&gt;
 new_sync |= set(random.sample(acAvailable, k=min(len(acAvailable), addSome)))&lt;br /&gt;
přepíšeme na:&lt;br /&gt;
 new_sync |= set(random.sample(list(acAvailable), k=min(len(acAvailable), addSome)))&lt;br /&gt;
&lt;br /&gt;
=== User ===&lt;br /&gt;
Při instalaci se může stát, že se nevytvoří uživatel 'mlat-server' pod kterým služba běží. To můžeme zkontrolovat.&lt;br /&gt;
&lt;br /&gt;
Ověření zda uživatel existuje&lt;br /&gt;
 id mlat-server&lt;br /&gt;
&lt;br /&gt;
Vytvoření systémového uživatele a nastavení skupiny&lt;br /&gt;
 sudo useradd -r -s /usr/sbin/nologin -M mlat-server&lt;br /&gt;
 grep mlat-server /etc/passwd&lt;br /&gt;
&lt;br /&gt;
Nastavení vlastníka pro aplikaci a virtuální prostředí&lt;br /&gt;
 sudo chown -R mlat-server:mlat-server /opt/mlat-server&lt;br /&gt;
 sudo chown -R mlat-server:mlat-server /opt/mlat-python-venv&lt;br /&gt;
Pokud mlat-server potřebuje číst data ze složky lighttpd nebo naopak, může být užitečné přidat uživatele do skupiny www-data (volitelné)&lt;br /&gt;
 sudo usermod -a -G www-data mlat-server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Servises ==&lt;br /&gt;
=== Nové ===&lt;br /&gt;
 sudo cp /opt/mlat-server/systemd-service.example /usr/lib/systemd/system/mlat-server.service&lt;br /&gt;
 sudo mcedit /usr/lib/systemd/system/mlat-server.service&lt;br /&gt;
&lt;br /&gt;
 ExecStart=/opt/mlat-python-venv/bin/python3 /opt/mlat-server/mlat-server \&lt;br /&gt;
    --client-listen 40147:40147 \&lt;br /&gt;
    --motd &amp;quot;Dekujem ze predavas mlat data na CzADSB&amp;quot; \&lt;br /&gt;
    --filtered-basestation-listen 31003 \&lt;br /&gt;
    --basestation-listen 31004 \&lt;br /&gt;
    --write-csv /run/mlat-server/positions.csv \&lt;br /&gt;
    --work-dir /run/mlat-server \&lt;br /&gt;
    --check-leaks \&lt;br /&gt;
    --dump-pseudorange /run/mlat-server/pseudorange.json&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
 sudo systemctl enable mlat-server.service&lt;br /&gt;
 sudo systemctl restart mlat-server.service&lt;br /&gt;
&lt;br /&gt;
=== Původní ===&lt;br /&gt;
 ExecStart=/opt/mlat-python-venv/bin/ python3 /home/czadsb/mlat-server/mlat-server &lt;br /&gt;
    --client-listen 40147:40147&lt;br /&gt;
    --basestation-listen :31003&lt;br /&gt;
    --write-csv /home/czadsb/mlat-server/positions.csv&lt;br /&gt;
    --work-dir /home/czadsb/mlat-server&lt;br /&gt;
    --check-leaks&lt;br /&gt;
    --motd Ahoj, tohle je mlat-server czadsb.cz&lt;br /&gt;
&lt;br /&gt;
== Help ==&lt;br /&gt;
 options:&lt;br /&gt;
  -h, --help                      zobrazit tuto zprávu s nápovědou a ukončit&lt;br /&gt;
 &lt;br /&gt;
 Client connections:&lt;br /&gt;
  --client-listen CLIENT_LISTEN   poslouchejte na hostiteli [host:]tcp_port[:udp_port] pripojeníi od multilateration klientu. &lt;br /&gt;
                                  Meli byste mit alespon jeden z nich!&lt;br /&gt;
  --motd MOTD                     zprava odeslana klientum (vychozi: prazdna).&lt;br /&gt;
 &lt;br /&gt;
 Output methods:&lt;br /&gt;
  --write-csv WRITE_CSV           zapsat vysledky ve formatu CSV do lokalniho souboru&lt;br /&gt;
  --basestation-connect BASESTATION_CONNECT&lt;br /&gt;
                                  pripojit se k portu host:port a odeslat vysledky ve formatu Basestation.&lt;br /&gt;
  --basestation-listen BASESTATION_LISTEN&lt;br /&gt;
                                  naslouchat na portu [host:] a odesilat vysledky ve formatu Basestation klientum, kteri se pripojuji.&lt;br /&gt;
  --filtered-basestation-connect FILTERED_BASESTATION_CONNECT&lt;br /&gt;
                                  pripojit se k portu host:port a odeslat vysledky ve formatu Basestation.&lt;br /&gt;
  --filtered-basestation-listen FILTERED_BASESTATION_LISTEN&lt;br /&gt;
                                  naslouchat na portu [host:] a odesilat vysledky ve formatu Basestation klientum, kteri se pripojuji.&lt;br /&gt;
 &lt;br /&gt;
 Utility options:&lt;br /&gt;
  --work-dir WORK_DIR             adresar pro vystup ladeni/statistik a blacklist&lt;br /&gt;
  --check-leaks                   spoustet pravidelne kontroly uniku pameti (vyzaduje balicek objgraph).&lt;br /&gt;
  --dump-pseudorange DUMP_PSEUDORANGE&lt;br /&gt;
                                  vypsat data pseudorashu ve formatu JSON do souboru.&lt;br /&gt;
  --partition PARTITION           rozdeleni, napr. 1/1(vychozi: zadne rozdeleni).&lt;br /&gt;
  --tag TAG                       prefix nazvu procesu (vychozi: mlat-server, vyžaduje modul setproctitle).&lt;br /&gt;
  --status-interval STATUS_INTERVAL&lt;br /&gt;
                                  interval protokolu stavu v sekundách (vice z 15; pouziti -1 zakazat). Vychozi: 15.&lt;br /&gt;
&lt;br /&gt;
== Lighttpd ==&lt;br /&gt;
Mlat server sám o sobě nepotřebuje žádný web server. Dokonce nemá ani žádné API pro vzdálenou správu či podobně. &lt;br /&gt;
Pokud ale běží na samostatném serveru a chceme na jiném sledovat provozní stav jednotlivých přijmaču, potřebujeme zajistit &lt;br /&gt;
dostupnost souboru 'sync.json'. V tomto případě je pak je nějaký webserver doinstalovat.&lt;br /&gt;
&lt;br /&gt;
 # prvne nainstalujeme WebServer. Doporučuje se lighttpd, nebo nginx.&lt;br /&gt;
 sudo apt install -y lighttpd jq&lt;br /&gt;
 sudo lighty-enable-mod alias&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vytvoř soubor /etc/lighttpd/conf-available/89-mlat.conf:&lt;br /&gt;
 # Na4teme modul alias&lt;br /&gt;
 server.modules += ( &amp;quot;mod_alias&amp;quot; )&lt;br /&gt;
 &lt;br /&gt;
 # Namapování URL na konkrétní soubor&lt;br /&gt;
 alias.url += (&lt;br /&gt;
     &amp;quot;/mlatserver/sync.json&amp;quot; =&amp;gt; &amp;quot;/run/mlat-server/sync.json&amp;quot;&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo lighty-enable-mod alias&lt;br /&gt;
 sudo lighty-enable-mod setenv&lt;br /&gt;
 sudo systemctl restart lighttpd&lt;br /&gt;
&lt;br /&gt;
== Odkazy ==&lt;br /&gt;
* [[ADS-B | Zpět na ADS-B ]]&lt;br /&gt;
* [[ADS-B#CzADSB | Zpět seznam CzADSB ]]&lt;br /&gt;
* [[CzADSB-Mlat_web | Instalace Web Mlat přehledu ]]&lt;br /&gt;
* [[Raspberry#Projekty | Zpět na projekty Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Tydyt</name></author>	</entry>

	<entry>
		<id>http://blok.tydyt.cz/index.php/CzADSB-Agregator</id>
		<title>CzADSB-Agregator</title>
		<link rel="alternate" type="text/html" href="http://blok.tydyt.cz/index.php/CzADSB-Agregator"/>
				<updated>2026-02-19T16:32:46Z</updated>
		
		<summary type="html">&lt;p&gt;Tydyt: /* Konfigurace ReADSB */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Úvod ==&lt;br /&gt;
Tento návod slouží k rychlé instalaci ReADSB agregatoru pro CzADSB.&lt;br /&gt;
== ReADSB ==&lt;br /&gt;
=== Instalace ReADSB ===&lt;br /&gt;
Instalace ReADSB (kompilace, bez podpory SDR)&lt;br /&gt;
 sudo apt update &amp;amp;&amp;amp; sudo apt -y upgrade&lt;br /&gt;
 sudo apt install --no-install-recommends --no-install-suggests -y \&lt;br /&gt;
    git build-essential debhelper pkg-config fakeroot libncurses-dev zlib1g-dev libzstd-dev help2man&lt;br /&gt;
 &lt;br /&gt;
 git clone --depth 20 https://github.com/wiedehopf/readsb.git&lt;br /&gt;
 &lt;br /&gt;
 cd readsb&lt;br /&gt;
 rm -f ../readsb_*.deb&lt;br /&gt;
 export DEB_BUILD_OPTIONS=noddebs&lt;br /&gt;
 dpkg-buildpackage -b -ui -uc -us&lt;br /&gt;
 &lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -f /tmp/readsb_*.deb&lt;br /&gt;
 mv ./readsb_*.deb /tmp/&lt;br /&gt;
 sudo apt install /tmp/readsb_*.deb&lt;br /&gt;
&lt;br /&gt;
=== Konfigurace ReADSB ===&lt;br /&gt;
 sudo mcedit /etc/default/readsb&lt;br /&gt;
 &lt;br /&gt;
 # readsb configuration&lt;br /&gt;
 &lt;br /&gt;
 RECEIVER_OPTIONS=&amp;quot;\&lt;br /&gt;
 --write-receiver-id-json \&lt;br /&gt;
 --net-receiver-id \&lt;br /&gt;
 --net-ingest \&lt;br /&gt;
 --net-only \&lt;br /&gt;
 --net&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 DECODER_OPTIONS=&amp;quot;\&lt;br /&gt;
 --modeac \&lt;br /&gt;
 --modeac-auto \&lt;br /&gt;
 --max-range 500 \&lt;br /&gt;
 --preamble-threshold 200 \&lt;br /&gt;
 --forward-mlat \&lt;br /&gt;
 --forward-mlat-sbs \&lt;br /&gt;
 --write-json-every 1 \&lt;br /&gt;
 --decode-threads=2 \&lt;br /&gt;
 --preamble-threshold 30&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 NET_OPTIONS=&amp;quot;\&lt;br /&gt;
 --net-api-port 8008 \&lt;br /&gt;
 --net-receiver-id \&lt;br /&gt;
 --net-bi-port 30004 \&lt;br /&gt;
 --net-bo-port 30005 \&lt;br /&gt;
 --net-ro-port 30002 \&lt;br /&gt;
 --net-ri-port 30001 \&lt;br /&gt;
 --net-sbs-port 30003 \&lt;br /&gt;
 --net-sbs-in-port 30000 \&lt;br /&gt;
 --net-asterix-reduce \&lt;br /&gt;
 --net-vrs-port 30009 \&lt;br /&gt;
 --net-json-port 30006 \&lt;br /&gt;
 --tar1090-use-api \&lt;br /&gt;
 --api-shutdown-delay 2 \&lt;br /&gt;
 --net-api-port unix:/run/readsb/api.sock \&lt;br /&gt;
 --net-ro-interval=0.01 \&lt;br /&gt;
 --net-ro-interval-beast-reduce=0.02 \&lt;br /&gt;
 --net-beast-reduce-optimize-for-mlat \&lt;br /&gt;
 --net-json-port-include-noposition&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 JSON_OPTIONS=&amp;quot;\&lt;br /&gt;
 --json-location-accuracy 2 \&lt;br /&gt;
 --range-outline-hours 24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Lighttpd ==&lt;br /&gt;
=== Instalace Lightppd ===&lt;br /&gt;
Pro podporu api a stahovani stavů pres http doinstalujeme Lighttpd&lt;br /&gt;
 sudo apt install -y lighttpd&lt;br /&gt;
&lt;br /&gt;
=== Konfigurace Lighttpd ===&lt;br /&gt;
 sudo wget -q https://rxw.cz/adsb/install/web/64-readsb.conf -O /etc/lighttpd/conf-available/64-readsb.conf&lt;br /&gt;
 sudo ln -s ../conf-available/64-readsb.conf /etc/lighttpd/conf-enabled/64-readsb.conf&lt;br /&gt;
 sudo wget -q https://rxw.cz/adsb/install/web/system.cgi -O /var/www/html/system.cgi&lt;br /&gt;
 sudo systemctl reload lighttpd.service&lt;br /&gt;
== Help ==&lt;br /&gt;
&lt;br /&gt;
 Možnosti sítě:&lt;br /&gt;
  --net-connector=&amp;lt;IP,PORT,PROTOCOL[,options]&amp;gt;  připojit se jako TCP klient pro naslouchání na portu / TCP serveru na adrese &lt;br /&gt;
                                                  IP a PORT, lze zadat vícekrát (např. 127.0.0.1,23004,beast_out)&lt;br /&gt;
                                                Protokoly: - beast_in,      beast_out&lt;br /&gt;
                                                           - raw_in,        raw_out&lt;br /&gt;
                                                           - sbs_in,        sbs_out&lt;br /&gt;
                                                           - sbs_in_jaero,  sbs_out_jaero&lt;br /&gt;
                                                           - asterix_in,    asterix_out&lt;br /&gt;
                                                           - gpsd_in&lt;br /&gt;
                                                           - uat_in&lt;br /&gt;
                                                           - planefinder_in&lt;br /&gt;
                                                           -                vrs_out&lt;br /&gt;
                                                           -                json_out&lt;br /&gt;
                                                           -                uat_replay_out&lt;br /&gt;
                                                Options: - Lze zadat jednu záložní IP/adresu, port: primární-adresa,&lt;br /&gt;
                                                           primární-port,protokol,záložní-adresa,záložní-port&lt;br /&gt;
                                                         - Jakákoli pozice v seznamu odděleném čárkami může být&lt;br /&gt;
                                                           také buď silent_fail, nebo uuid=&amp;lt;uuid&amp;gt;&lt;br /&gt;
  --net                                         Povolit síťování&lt;br /&gt;
  --net-only                                    Starší možnost, Povolit síť, použijte místo toho --net&lt;br /&gt;
  --net-bind-address=&amp;lt;ip&amp;gt;                       IP adresa pro nslouchaní (default: Any; Use 127.0.0.1 for private)&lt;br /&gt;
  --net-bo-port=&amp;lt;ports&amp;gt;                         TCP Beast output listen ports      / TCP server(default: 0)&lt;br /&gt;
  --net-bi-port=&amp;lt;ports&amp;gt;                         TCP Beast input listen port        / TCP server (default: 0)&lt;br /&gt;
  --net-ro-port=&amp;lt;ports&amp;gt;                         TCP raw output listen port         / TCP server (default: 0)&lt;br /&gt;
  --net-ri-port=&amp;lt;ports&amp;gt;                         TCP raw input listen port          / TCP server  (default: 0)&lt;br /&gt;
  --net-uat-replay-port=&amp;lt;ports&amp;gt;                 UAT replay output listen port      / TCP server (default: 0)&lt;br /&gt;
  --net-uat-in-port=&amp;lt;ports&amp;gt;                     UAT input listen port              / TCP server (default: 0)&lt;br /&gt;
  --net-sbs-port=&amp;lt;ports&amp;gt;                        TCP BaseStation output listen port / TCP server (default: 0)&lt;br /&gt;
  --net-sbs-in-port=&amp;lt;ports&amp;gt;                     TCP BaseStation input listen port  / TCP server (default: 0)&lt;br /&gt;
  --net-sbs-jaero-port=&amp;lt;ports&amp;gt;                  TCP SBS Jaero output listen port   / TCP server (default: 0)&lt;br /&gt;
  --net-sbs-jaero-in-port=&amp;lt;ports&amp;gt;               TCP SBS Jaero input listen port    / TCP server (default: 0)&lt;br /&gt;
  --net-asterix-out-port=&amp;lt;ports&amp;gt;                TCP Asterix output listen port     / TCP server (default: 0)&lt;br /&gt;
  --net-asterix-in-port=&amp;lt;ports&amp;gt;                 TCP Asterix input listen port      / TCP server (default: 0)&lt;br /&gt;
  --net-asterix-reduce                          Apply beast reduce logic and interval to ASTERIX outputs&lt;br /&gt;
  --net-vrs-port=&amp;lt;ports&amp;gt;                        TCP VRS json output listen port    / TCP server (default: 0)&lt;br /&gt;
  --net-vrs-interval=&amp;lt;seconds&amp;gt;                  TCP VRS json output interval (default: 5.0)&lt;br /&gt;
  --net-json-port=&amp;lt;ports&amp;gt;                       Výstupní port pro naslouchání poloze TCP JSON / TCP server, pro každou přijatou &lt;br /&gt;
                                                pozici odesílá jeden řádek s objektem JSON obsahujícím podrobnosti o letadle.(default: 0) &lt;br /&gt;
                                                (consider raising --net-ro-size to 8192 for less fragmentation if this is a concern)&lt;/div&gt;</summary>
		<author><name>Tydyt</name></author>	</entry>

	<entry>
		<id>http://blok.tydyt.cz/index.php/CzADSB-Mapa</id>
		<title>CzADSB-Mapa</title>
		<link rel="alternate" type="text/html" href="http://blok.tydyt.cz/index.php/CzADSB-Mapa"/>
				<updated>2026-02-10T12:01:23Z</updated>
		
		<summary type="html">&lt;p&gt;Tydyt: /* Lighttpd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Uvod ==&lt;br /&gt;
Predpokladany postup instalace&lt;br /&gt;
* Pripravit si distribuci&lt;br /&gt;
* Zkompilovat ReADSB (nepotrebujeme zadne sdr ovladace)&lt;br /&gt;
* Nastavit ReADSB&lt;br /&gt;
* Nainstalovat Tar1090&lt;br /&gt;
* Zkonfigurovat Tar1090&lt;br /&gt;
&lt;br /&gt;
== Distribuce ==&lt;br /&gt;
Nebojime se niceho, takze jdeme do nejnovejsiho operacniho systemu, at mame na dlouho klid. Priparvime si komplet distribuci vcetne aktualizaci a ovladaci pro virtual ( [[ Linux &amp;amp; Aplikace ]] ).&lt;br /&gt;
&lt;br /&gt;
== WebServer ==&lt;br /&gt;
Pro provoz potrebujeme jeden ze dvou nize uvedenych web serveru. Volba je v podstate na vas, ale Tar1090 ma primo integrovanou podporu pro Lighttpd.&lt;br /&gt;
=== Lighttpd ===&lt;br /&gt;
 # prvne nainstalujeme WebServer. Doporu4uje se nginx, nebo lighttpd&lt;br /&gt;
 sudo apt install -y lighttpd&lt;br /&gt;
 sudo apt install -y lighttpd-modules-lua lua-luaossl&lt;br /&gt;
&lt;br /&gt;
=== Nginx ===&lt;br /&gt;
 # prvne nainstalujeme WebServer. Doporu4uje se nginx, nebo lighttpd&lt;br /&gt;
 sudo apt install nginx&lt;br /&gt;
&lt;br /&gt;
== ReADSB ==&lt;br /&gt;
=== Kompilace ===&lt;br /&gt;
 sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&lt;br /&gt;
 sudo apt install --no-install-recommends --no-install-suggests -y \&lt;br /&gt;
    git build-essential debhelper libusb-1.0-0-dev pkg-config fakeroot libncurses-dev zlib1g-dev libzstd-dev librtlsdr-dev help2man&lt;br /&gt;
 &lt;br /&gt;
 git clone --depth 20 https://github.com/wiedehopf/readsb.git&lt;br /&gt;
 cd readsb&lt;br /&gt;
 &lt;br /&gt;
 rm -f ../readsb_*.deb&lt;br /&gt;
 export DEB_BUILD_OPTIONS=noddebs&lt;br /&gt;
 dpkg-buildpackage -b -ui -uc -us&lt;br /&gt;
&lt;br /&gt;
Pokud již máme potřebný balíček, tak jej nainstalujeme:&lt;br /&gt;
 cd&lt;br /&gt;
 rm -f /tmp/readsb_*.deb&lt;br /&gt;
 cp ./readsb_*.deb /tmp/&lt;br /&gt;
 sudo apt install /tmp/readsb_*.deb&lt;br /&gt;
 rm -f /tmp/readsb_*.deb&lt;br /&gt;
&lt;br /&gt;
Dale vytvorime pravidlo pro Lighttpd (pokud jsme jej instalovali&lt;br /&gt;
 sudo wget -q https://rxw.cz/adsb/install/web/64-readsb.conf -O /etc/lighttpd/conf-available/64-readsb.conf&lt;br /&gt;
 sudo ln -s ../conf-available/64-readsb.conf /etc/lighttpd/conf-enabled/64-readsb.conf&lt;br /&gt;
 sudo wget -q https://rxw.cz/adsb/install/web/system.cgi -O /var/www/html/system.cgi&lt;br /&gt;
 sudo systemctl reload lighttpd.service&lt;br /&gt;
&lt;br /&gt;
=== Nastaveni ReADSB ===&lt;br /&gt;
 sudo mcedit /etc/default/readsb&lt;br /&gt;
&lt;br /&gt;
 # readsb configuration&lt;br /&gt;
 # This is sourced by /etc/systemd/system/default.target.wants/readsb.service as&lt;br /&gt;
 # daemon startup configuration.&lt;br /&gt;
 &lt;br /&gt;
 RECEIVER_OPTIONS=&amp;quot;--net --net-only --net-ingest --net-connector 10.0.0.74,30005,beast_in,silent_fail --net-connector 10.129.99.147,30005,beast_in,silent_fail --net-connector 10.0.0.73,30005,beast_in,silent_fail&amp;quot;&lt;br /&gt;
 DECODER_OPTIONS=&amp;quot;--write-json-every 1 --net-beast-reduce-interval 0.5 --net-heartbeat 60 --net-ro-size 1280 --net-ro-interval=0.05 --net-ro-interval-beast-reduce=0.12&amp;quot;&lt;br /&gt;
 NET_OPTIONS=&amp;quot;--net-ro-port 0 --net-sbs-port 0 --net-bi-port 0 --net-bo-port 0 --net-ri-port 0 --net-api-port unix:/run/readsb/api.sock --api-shutdown-delay 10 --tar1090-use-api&amp;quot;&lt;br /&gt;
 JSON_OPTIONS=&amp;quot;--write-receiver-id-json --write-json-every 1 --json-location-accuracy 2 --range-outline-hours 24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart readsb.service&lt;br /&gt;
&lt;br /&gt;
== Tar1090 ==&lt;br /&gt;
POZOR: Pokud neni funkcni ReADSB, tak nam nebude fungovat ani Tar. Ve skriptu si zjistuje kde ma data letadel a pokud je nema, tak se nespusti.&lt;br /&gt;
=== Instalace ===&lt;br /&gt;
 # Nainstalujeme vlastni Tar1090&lt;br /&gt;
 sudo bash -c &amp;quot;$(wget -nv -O - https://github.com/wiedehopf/tar1090/raw/master/install.sh)&amp;quot;&lt;br /&gt;
 sudo wget -O /usr/local/share/tar1090/aircraft.csv.gz https://github.com/wiedehopf/tar1090-db/raw/csv/aircraft.csv.gz&lt;br /&gt;
&lt;br /&gt;
=== Nastaveni Tar1090 ===&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &amp;quot;s/\/\/PlaneCountInTitle = false.*/PlaneCountInTitle = true;/g&amp;quot; /usr/local/share/tar1090/html/config.js&lt;br /&gt;
 sudo sed -i &amp;quot;/^\/\/shareBaseUrl = 'https:\/\/adsb\.lol\/'[^;]*/i shareBaseUrl = 'https://aircrafts.rxw.cz/'&amp;quot; /usr/local/share/tar1090/html/config.js&lt;br /&gt;
 sudo sed -i &amp;quot;s/\/\/ imageConfigLink = .*/imageConfigLink = 'https:\/\/user.czadsb.cz';/g&amp;quot; /usr/local/share/tar1090/html/config.js&lt;br /&gt;
 sudo sed -i &amp;quot;s/\/\/ imageConfigText = .*/imageConfigText = 'CzADSB';/g&amp;quot; /usr/local/share/tar1090/html/config.js&lt;br /&gt;
&lt;br /&gt;
== Autorizace ==&lt;br /&gt;
Za účelem přihlášení a přesměrování při neplatném přihlášení použijeme LUA skript. Ten máme uložen v sekci LUA. Pro jeho vlastni aktivaci pak musíme upravit předpis pro tar1090 kde přidáme:&lt;br /&gt;
&lt;br /&gt;
 sudo mcedit /etc/lighttpd/conf-available/88-tar1090.conf&lt;br /&gt;
&lt;br /&gt;
 server.modules += ( &amp;quot;mod_magnet&amp;quot; )&lt;br /&gt;
 &lt;br /&gt;
 # --- Presmerovani a overeni Cookie a opravneneho pristupu&lt;br /&gt;
 $HTTP[&amp;quot;url&amp;quot;] =~ &amp;quot;^/tar1090/.*\.(php|html)$|/$&amp;quot; {&lt;br /&gt;
     magnet.attract-raw-url-to = ( &amp;quot;/etc/lighttpd/lua/sso_auth.lua&amp;quot; )&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== LUA ==&lt;br /&gt;
Jde o velmi ořezaný skript jazyk uřečeny pro web servery ke zpracování, vyhodnocení nasměrovaní URL požadavků. Proto ani neumí pak zpracovat POST požadavky. U GET požadavku se musí pak dotaz parsovat jako celek. To ale nevadí pro zpracování cookie, IP adres a podobně. Přikládám pár užitečných pomocných skriptu.&lt;br /&gt;
=== debug-log.lua ===&lt;br /&gt;
&lt;br /&gt;
 -- Funkce pro logovani&lt;br /&gt;
 local function debug_log(msg)&lt;br /&gt;
     print(&amp;quot;[SSO-DEBUG] &amp;quot; .. tostring(msg))&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Funkce pro ziskani hodnoty z GET (uri.query)&lt;br /&gt;
 local function get_get_param(param_name)&lt;br /&gt;
     local query = lighty.env[&amp;quot;uri.query&amp;quot;]&lt;br /&gt;
     if not query then return nil end&lt;br /&gt;
     -- Hleda v retezci vzor: param=hodnota&lt;br /&gt;
     return query:match(param_name .. &amp;quot;=([^&amp;amp;]+)&amp;quot;)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Nacti promenne a hodnotu lighty.env&lt;br /&gt;
 debug_log(&amp;quot;-------------------------------------------------&amp;quot;)&lt;br /&gt;
 for k, v in pairs(lighty.env) do&lt;br /&gt;
     debug_log(&amp;quot;env     - [&amp;quot; .. k .. &amp;quot;]='&amp;quot; .. tostring(v) .. &amp;quot;'&amp;quot;)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Nacti promenne a hodnotu lighty.request&lt;br /&gt;
 for k, v in pairs(lighty.request) do&lt;br /&gt;
     debug_log(&amp;quot;request - [&amp;quot; .. k .. &amp;quot;]='&amp;quot; .. tostring(v) .. &amp;quot;'&amp;quot;)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Pouziti funkce ziskani hodnoty z GET:&lt;br /&gt;
 -- local page = get_get_param(&amp;quot;page&amp;quot;) -- vrati &amp;quot;login&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== debug-file.lua ===&lt;br /&gt;
&lt;br /&gt;
 local ts = os.date(&amp;quot;%Y%m%d-%H%M%S&amp;quot;)&lt;br /&gt;
 local fname = &amp;quot;/tmp/magnet_env-&amp;quot; .. ts .. &amp;quot;.log&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 local f = io.open(fname, &amp;quot;w&amp;quot;)&lt;br /&gt;
 if f then&lt;br /&gt;
 &lt;br /&gt;
   for k, v in pairs(lighty.env) do&lt;br /&gt;
     f:write(&amp;quot;env:     &amp;quot; .. k .. &amp;quot;=&amp;quot; .. tostring(v) .. &amp;quot;\n&amp;quot;)&lt;br /&gt;
   end&lt;br /&gt;
 &lt;br /&gt;
   forr k, v in pairs(lighty.request) do&lt;br /&gt;
     f:write(&amp;quot;request: &amp;quot; .. k .. &amp;quot;=&amp;quot; .. tostring(v) .. &amp;quot;\n&amp;quot;)&lt;br /&gt;
   end&lt;br /&gt;
 &lt;br /&gt;
   f:close()&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 return lighty.RESTART_REQUEST&lt;br /&gt;
&lt;br /&gt;
=== sso_auth.lua ===&lt;br /&gt;
&lt;br /&gt;
 -- Konfigurace&lt;br /&gt;
 local secret = &amp;quot;vase_velmi_tajne_heslo_123456&amp;quot;&lt;br /&gt;
 local login_url = &amp;quot;https://user.czadsb.cz/index.php?page=login&amp;amp;return=mapy&amp;amp;mapa=tar&amp;quot;&lt;br /&gt;
 local cookie_name = &amp;quot;czadsb_sso&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 -- Lokalni IP (whitelist)&lt;br /&gt;
 local trusted_ips = {&lt;br /&gt;
     [&amp;quot;127.0.0.1&amp;quot;] = true,&lt;br /&gt;
     [&amp;quot;::1&amp;quot;] = true,&lt;br /&gt;
     [&amp;quot;10.129.99.145&amp;quot;] = true,&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 -- Opustit statiku (bleskove)&lt;br /&gt;
 local uri = lighty.env[&amp;quot;uri.path&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
 if uri:match(&amp;quot;%.%w%w%w?$&amp;quot;) and not uri:match(&amp;quot;%.php&amp;quot;) and not uri:match(&amp;quot;%.html&amp;quot;) then&lt;br /&gt;
     return 0&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Zjisteni IP adresy a opustit pokud je v whitelist IP (bleskove)&lt;br /&gt;
 local final_ip = lighty.request[&amp;quot;X-Forwarded-For&amp;quot;] or lighty.env[&amp;quot;request.remote-ip&amp;quot;] or lighty.env[&amp;quot;remote_addr&amp;quot;]&lt;br /&gt;
 if final_ip then&lt;br /&gt;
     final_ip = final_ip:match(&amp;quot;([^, ]+)&amp;quot;)&lt;br /&gt;
     if trusted_ips[final_ip] then return 0 end&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Funkce pro logovani&lt;br /&gt;
 local function debug_log(msg)&lt;br /&gt;
     print(&amp;quot;[SSO-DEBUG] &amp;quot; .. tostring(msg))&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Funkce pro Base64 dekodovani&lt;br /&gt;
 local function base64_decode(data)&lt;br /&gt;
     local b = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'&lt;br /&gt;
     data = string.gsub(data, '[^'..b..'=]', '')&lt;br /&gt;
     return (data:gsub('.', function(x)&lt;br /&gt;
         if (x == '=') then return '' end&lt;br /&gt;
         local r,f='',(b:find(x)-1)&lt;br /&gt;
         for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)&amp;gt;0 and '1' or '0') end&lt;br /&gt;
         return r;&lt;br /&gt;
     end):gsub('%d%d%d%d%d%d%d%d', function(x)&lt;br /&gt;
         local r=0&lt;br /&gt;
         for i=1,8 do r=r+(x:sub(i,i)=='1' and 2^(8-i) or 0) end&lt;br /&gt;
         return string.char(r)&lt;br /&gt;
     end))&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Funkce pro URL dekodovani&lt;br /&gt;
 local function url_decode(str)&lt;br /&gt;
     str = string.gsub(str, &amp;quot;+&amp;quot;, &amp;quot; &amp;quot;)&lt;br /&gt;
     str = string.gsub(str, &amp;quot;%%(%x%x)&amp;quot;, function(h) return string.char(tonumber(h, 16)) end)&lt;br /&gt;
     return str&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Nacteni HMAC knihovny (lua-ossl)&lt;br /&gt;
 local status_hmac, openssl_hmac = pcall(require, &amp;quot;openssl.hmac&amp;quot;)&lt;br /&gt;
 if not status_hmac then&lt;br /&gt;
     debug_log(&amp;quot;CHYBA: Knihovna openssl.hmac nenalezena!&amp;quot;)&lt;br /&gt;
     return 500&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Nacteni a zpracovani Cookie&lt;br /&gt;
 local cookie_header = lighty.request[&amp;quot;Cookie&amp;quot;] or lighty.request[&amp;quot;cookie&amp;quot;]&lt;br /&gt;
 &lt;br /&gt;
 if cookie_header then&lt;br /&gt;
     local sso_cookie_raw = cookie_header:match(cookie_name .. &amp;quot;=([^;]+)&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
     if sso_cookie_raw then&lt;br /&gt;
         local sso_cookie = url_decode(sso_cookie_raw)&lt;br /&gt;
         local status_b64, decoded = pcall(base64_decode, sso_cookie)&lt;br /&gt;
 &lt;br /&gt;
         if status_b64 and decoded then&lt;br /&gt;
             local sep_pos = decoded:find(&amp;quot;||&amp;quot;)&lt;br /&gt;
             if sep_pos then&lt;br /&gt;
                 local payload = decoded:sub(1, sep_pos - 1)&lt;br /&gt;
                 local signature_raw = decoded:sub(sep_pos + 2)&lt;br /&gt;
 &lt;br /&gt;
                 -- RESENI: SHA256 HEX ma vzdy 64 znaku. Orizneme pripadne nuly z dekoderu.&lt;br /&gt;
                 local signature = signature_raw:sub(1, 64)&lt;br /&gt;
 &lt;br /&gt;
                 -- HMAC SHA256 vypocet&lt;br /&gt;
                 local h = openssl_hmac.new(secret, &amp;quot;SHA256&amp;quot;)&lt;br /&gt;
                 h:update(payload)&lt;br /&gt;
                 local bin_sig = h:final()&lt;br /&gt;
 &lt;br /&gt;
                 local hex_sig = &amp;quot;&amp;quot;&lt;br /&gt;
                 for i = 1, #bin_sig do&lt;br /&gt;
                     hex_sig = hex_sig .. string.format(&amp;quot;%02x&amp;quot;, string.byte(bin_sig, i))&lt;br /&gt;
                 end&lt;br /&gt;
 &lt;br /&gt;
                 if hex_sig == signature then&lt;br /&gt;
                     -- Rozdeleni payloadu (user_id|username|time)&lt;br /&gt;
                     local parts = {}&lt;br /&gt;
                     for part in (payload .. &amp;quot;|&amp;quot;):gmatch(&amp;quot;([^|]*)|&amp;quot;) do&lt;br /&gt;
                         table.insert(parts, part)&lt;br /&gt;
                     end&lt;br /&gt;
 &lt;br /&gt;
                     local u_time = tonumber(parts[3])&lt;br /&gt;
                     if u_time then&lt;br /&gt;
                         local diff = os.time() - u_time&lt;br /&gt;
                         if diff &amp;gt;= 0 and diff &amp;lt; 7200 then&lt;br /&gt;
 --                            debug_log(&amp;quot;Autentizace OK pro: &amp;quot; .. tostring(parts[2]))&lt;br /&gt;
                             return 0&lt;br /&gt;
                         else&lt;br /&gt;
                             debug_log(&amp;quot;Cookie vyprsela, rozdil: &amp;quot; .. diff)&lt;br /&gt;
                         end&lt;br /&gt;
                     end&lt;br /&gt;
                 else&lt;br /&gt;
                     debug_log(&amp;quot;Podpis nesouhlasi! (&amp;quot; .. final_ip .. &amp;quot;)&amp;quot;)&lt;br /&gt;
                     debug_log(&amp;quot;Vypocteno:          &amp;quot; .. hex_sig)&lt;br /&gt;
                     debug_log(&amp;quot;Prijato (upraveno): &amp;quot; .. signature)&lt;br /&gt;
                     debug_log(&amp;quot;Prijato (raw):      &amp;quot; .. signature_raw)&lt;br /&gt;
                 end&lt;br /&gt;
             end&lt;br /&gt;
         end&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Pridani hlavicek proti cachovani pro jistotu&lt;br /&gt;
 lighty.header[&amp;quot;Cache-Control&amp;quot;] = &amp;quot;no-cache, no-store, must-revalidate&amp;quot;&lt;br /&gt;
 lighty.header[&amp;quot;Connection&amp;quot;] = &amp;quot;close&amp;quot;&lt;br /&gt;
 lighty.header[&amp;quot;Pragma&amp;quot;] = &amp;quot;no-cache&amp;quot;&lt;br /&gt;
 lighty.header[&amp;quot;Expires&amp;quot;] = &amp;quot;0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 -- Pokud nic neproslo, presmerujeme&lt;br /&gt;
 debug_log(&amp;quot;Pristup odmitnut, presmerovani (&amp;quot; .. final_ip .. &amp;quot; | &amp;quot; .. uri .. &amp;quot;).&amp;quot;)&lt;br /&gt;
 lighty.header[&amp;quot;Location&amp;quot;] = login_url&lt;br /&gt;
 return 302&lt;/div&gt;</summary>
		<author><name>Tydyt</name></author>	</entry>

	<entry>
		<id>http://blok.tydyt.cz/index.php/CzADSB-Packages_script</id>
		<title>CzADSB-Packages script</title>
		<link rel="alternate" type="text/html" href="http://blok.tydyt.cz/index.php/CzADSB-Packages_script"/>
				<updated>2026-01-27T18:48:44Z</updated>
		
		<summary type="html">&lt;p&gt;Tydyt: /* ReADSB */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Úvod ==&lt;br /&gt;
Zde uvádím vlastní skripty které zkompiluji do Debin balíčků následující programy:&lt;br /&gt;
* [[ #ReADSB | ReADSB ]]&lt;br /&gt;
* [[ #Mlat-client | Mlat Client ]]&lt;br /&gt;
* [[ #PiAware | PiAware ]]&lt;br /&gt;
Před spuštěním si nezapomeňte připravit root crom, viz [[ CzADSB-Packages#Chroot | CzADSB-Packages ]]&lt;br /&gt;
&lt;br /&gt;
== ReADSB ==&lt;br /&gt;
 #!/usr/bin/env bash&lt;br /&gt;
 &lt;br /&gt;
 # Tohle musí být associative array&lt;br /&gt;
 declare -A PL&lt;br /&gt;
 &lt;br /&gt;
 url=&amp;quot;https://github.com/wiedehopf/readsb.git&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Cesta kam se ulozi jednotlive skompilovane balicky&lt;br /&gt;
 DIR_DEB=&amp;quot;install&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Seznam distribuci a platforem pro kompilaci&lt;br /&gt;
 PL[&amp;quot;bullseye&amp;quot;]='i386 amd64 armhf arm64'&lt;br /&gt;
 PL[&amp;quot;bookworm&amp;quot;]='i386 amd64 armhf arm64'&lt;br /&gt;
 PL[&amp;quot;trixie&amp;quot;]='amd64 armhf arm64'&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Z url zjisteni adresare, kde se kompilace provadi a zacatek nazvu balicku&lt;br /&gt;
 name=&amp;quot;${url##*/}&amp;quot;      # Odstraníme vše před posledním '/' -&amp;gt; readsb.git&lt;br /&gt;
 name=&amp;quot;${name%.*}&amp;quot;      # Odstraníme příponu -&amp;gt; readsb&lt;br /&gt;
 &lt;br /&gt;
 # Kontrola a pripadne vytvoreni adresare pro ulozeni jednotlivych deb balicku&lt;br /&gt;
 cd ~&lt;br /&gt;
 if [ ! -d ${DIR_DEB} ];then&lt;br /&gt;
     echo &amp;quot;Vytvarim adresar pro deb balicky ${DIR_DEB}&amp;quot;&lt;br /&gt;
     mkdir ${DIR_DEB}&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Mazu z aktualniho adresare ${name}&amp;quot;&lt;br /&gt;
 rm -r -f ${name}&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Stahuji z gitu repozitar ${url}&amp;quot;&lt;br /&gt;
 git clone --depth 10 ${url}&lt;br /&gt;
 &lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;Stazeno, presouvam se do adresare ${name}&amp;quot;&lt;br /&gt;
 cd $name&lt;br /&gt;
 # Postupne se bude provadet kompilace pro jednotliva distra a archytektury&lt;br /&gt;
 export DEB_BUILD_OPTIONS=&amp;quot;noautodbgsym nostrip&amp;quot;&lt;br /&gt;
 for distro in &amp;quot;${!PL[@]}&amp;quot;; do&lt;br /&gt;
     for arch in ${PL[$distro]}; do&lt;br /&gt;
         echo&lt;br /&gt;
         echo &amp;quot;* * * * * *          Bude se kompilovat distribuce: $distro / Arch: $arch            * * * * * *&amp;quot;&lt;br /&gt;
         echo &amp;quot;------------------------------------------------------------------------------------------------&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
         sbuild --arch=${arch} -d ${distro} -b --no-run-lintian --add-depends=python3-setuptools,python3-all --profiles=with_sdrs&lt;br /&gt;
         if [ &amp;quot;$?&amp;quot; == &amp;quot;0&amp;quot; ];then&lt;br /&gt;
             echo &amp;quot;Kompilace probehla v poradku, deb balicek presouvam do ${DIR_DEB}/${distro}/&amp;quot;&lt;br /&gt;
             if [ ! -d ../${DIR_DEB}/${distro} ];then&lt;br /&gt;
                 echo &amp;quot;Vytvarim adresar ${DIR_DEB}/${distro}&amp;quot;&lt;br /&gt;
                 mkdir ../${DIR_DEB}/${distro}&lt;br /&gt;
             fi&lt;br /&gt;
             if [ -e ../${DIR_DEB}/${distro}/${name}*${arch}* ];then&lt;br /&gt;
                 echo &amp;quot;Mazu puvodni soubor ${name}* v adresari ${distro}&amp;quot;&lt;br /&gt;
                 rm ../${DIR_DEB}/${distro}/${name}*${arch}*&lt;br /&gt;
             fi&lt;br /&gt;
             cp ../${name}_*.deb ../${DIR_DEB}/${distro}/&lt;br /&gt;
             rm ../${name}_*&lt;br /&gt;
             filedeb=$(ls ../${DIR_DEB}/${distro}/ | grep  -e &amp;quot;${name}_.*${arch}.deb&amp;quot;)&lt;br /&gt;
             symlink=&amp;quot;${filedeb/_*_/_last_}&amp;quot;&lt;br /&gt;
             echo &amp;quot;Pro ${filedeb} vytvarim symlink ${symlink}&amp;quot;&lt;br /&gt;
             ln -r -f -s ../${DIR_DEB}/${distro}/${filedeb} ../${DIR_DEB}/${distro}/${symlink}&lt;br /&gt;
         else&lt;br /&gt;
             echo &amp;quot;ERROR ! Pri kompilaci nastal problem, nic se nekopiruje !&amp;quot;&lt;br /&gt;
         fi&lt;br /&gt;
     done&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 cd ~&lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;------------------------------------------------------------------------------------------------&amp;quot;&lt;br /&gt;
 echo &amp;quot;* * * * * *          Kompilace je hotova. Doporucuji skopirovat na server.           * * * * * *&amp;quot;&lt;br /&gt;
 echo &amp;quot;------------------------------------------------------------------------------------------------&amp;quot;&lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;rsync -axv --progress ${DIR_DEB}/* webser1:/home/tydyt/rxw/dists/&amp;quot;&lt;br /&gt;
[[ #.C3.9Avod | Zpět na úvod ]]&lt;br /&gt;
&lt;br /&gt;
== Mlat-client ==&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env bash&lt;br /&gt;
 &lt;br /&gt;
 # Tohle musí být associative array&lt;br /&gt;
 declare -A PL&lt;br /&gt;
 &lt;br /&gt;
 url=&amp;quot;https://github.com/mutability/mlat-client.git&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Cesta kam se ulozi jednotlive skompilovane balicky&lt;br /&gt;
 DIR_DEB=&amp;quot;install&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Seznam distribuci a platforem pro kompilaci&lt;br /&gt;
 PL[&amp;quot;bullseye&amp;quot;]='i386 amd64 armhf arm64'&lt;br /&gt;
 PL[&amp;quot;bookworm&amp;quot;]='i386 amd64 armhf arm64'&lt;br /&gt;
 PL[&amp;quot;trixie&amp;quot;]='amd64 armhf arm64'&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Z url zjisteni adresare, kde se kompilace provadi a zacatek nazvu balicku&lt;br /&gt;
 name=&amp;quot;${url##*/}&amp;quot;      # Odstraníme vše před posledním '/' -&amp;gt; readsb.git&lt;br /&gt;
 name=&amp;quot;${name%.*}&amp;quot;      # Odstraníme příponu -&amp;gt; readsb&lt;br /&gt;
 &lt;br /&gt;
 # Kontrola a pripadne vytvoreni adresare pro ulozeni jednotlivych deb balicku&lt;br /&gt;
 cd ~&lt;br /&gt;
 if [ ! -d ${DIR_DEB} ];then&lt;br /&gt;
     echo &amp;quot;Vytvarim adresar pro deb balicky ${DIR_DEB}&amp;quot;&lt;br /&gt;
     mkdir ${DIR_DEB}&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Mazu z aktualniho adresare ${name}&amp;quot;&lt;br /&gt;
 rm -r -f ${name}&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Stahuji z gitu repozitar ${url}&amp;quot;&lt;br /&gt;
 git clone --depth 10 ${url}&lt;br /&gt;
 &lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;Stazeno, presouvam se do adresare ${name}&amp;quot;&lt;br /&gt;
 cd $name&lt;br /&gt;
 # Postupne se bude provadet kompilace pro jednotliva distra a archytektury&lt;br /&gt;
 export DEB_BUILD_OPTIONS=&amp;quot;noautodbgsym nostrip&amp;quot;&lt;br /&gt;
 for distro in &amp;quot;${!PL[@]}&amp;quot;; do&lt;br /&gt;
     for arch in ${PL[$distro]}; do&lt;br /&gt;
         echo&lt;br /&gt;
         echo &amp;quot;* * * * * *          Bude se kompilovat distribuce: $distro / Arch: $arch            * * * * * *&amp;quot;&lt;br /&gt;
         echo &amp;quot;------------------------------------------------------------------------------------------------&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
         sbuild --arch=${arch} -d ${distro} -b --no-run-lintian --add-depends=python3-setuptools,python3-all&lt;br /&gt;
         if [ &amp;quot;$?&amp;quot; == &amp;quot;0&amp;quot; ];then&lt;br /&gt;
             echo &amp;quot;Kompilace probehla v poradku, deb balicek presouvam do ${DIR_DEB}/${distro}/&amp;quot;&lt;br /&gt;
             if [ ! -d ../${DIR_DEB}/${distro} ];then&lt;br /&gt;
                 echo &amp;quot;Vytvarim adresar ${DIR_DEB}/${distro}&amp;quot;&lt;br /&gt;
                 mkdir ../${DIR_DEB}/${distro}&lt;br /&gt;
             fi&lt;br /&gt;
             if [ -e ../${DIR_DEB}/${distro}/${name}*${arch}* ];then&lt;br /&gt;
                 echo &amp;quot;Mazu puvodni soubor ${name}* v adresari ${distro}&amp;quot;&lt;br /&gt;
                 rm ../${DIR_DEB}/${distro}/${name}*${arch}*&lt;br /&gt;
             fi&lt;br /&gt;
             cp ../${name}_*.deb ../${DIR_DEB}/${distro}/&lt;br /&gt;
             rm ../${name}_*&lt;br /&gt;
             filedeb=$(ls ../${DIR_DEB}/${distro}/ | grep  -e &amp;quot;${name}_.*${arch}.deb&amp;quot;)&lt;br /&gt;
             symlink=&amp;quot;${filedeb/_*_/_last_}&amp;quot;&lt;br /&gt;
             echo &amp;quot;Pro ${filedeb} vytvarim symlink ${symlink}&amp;quot;&lt;br /&gt;
             ln -r -f -s ../${DIR_DEB}/${distro}/${filedeb} ../${DIR_DEB}/${distro}/${symlink}&lt;br /&gt;
         else&lt;br /&gt;
             echo &amp;quot;ERROR ! Pri kompilaci nastal problem, nic se nekopiruje !&amp;quot;&lt;br /&gt;
         fi&lt;br /&gt;
     done&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 cd ~&lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;------------------------------------------------------------------------------------------------&amp;quot;&lt;br /&gt;
 echo &amp;quot;* * * * * *          Kompilace je hotova. Doporucuji skopirovat na server.           * * * * * *&amp;quot;&lt;br /&gt;
 echo &amp;quot;------------------------------------------------------------------------------------------------&amp;quot;&lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;rsync -axv --progress ${DIR_DEB}/* webser1:/home/tydyt/rxw/dists/&amp;quot;&lt;br /&gt;
[[ #.C3.9Avod | Zpět na úvod ]]&lt;br /&gt;
&lt;br /&gt;
== PiAware ==&lt;br /&gt;
 #!/usr/bin/env bash&lt;br /&gt;
 &lt;br /&gt;
 # Tohle musí být associative array&lt;br /&gt;
 declare -A PL&lt;br /&gt;
 &lt;br /&gt;
 url=&amp;quot;https://github.com/flightaware/piaware_builder.git&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Cesta kam se ulozi jednotlive skompilovane balicky&lt;br /&gt;
 DIR_DEB=&amp;quot;install&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Seznam distribuci a platforem pro kompilaci&lt;br /&gt;
 PL[&amp;quot;bullseye&amp;quot;]='i386 amd64 armhf arm64'&lt;br /&gt;
 PL[&amp;quot;bookworm&amp;quot;]='i386 amd64 armhf arm64'&lt;br /&gt;
 #PL[&amp;quot;trixie&amp;quot;]='amd64 armhf arm64'&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Z url zjisteni adresare, kde se kompilace provadi a zacatek nazvu balicku&lt;br /&gt;
 name=&amp;quot;${url##*/}&amp;quot;      # Odstraníme vše před posledním '/' -&amp;gt; readsb.git&lt;br /&gt;
 name=&amp;quot;${name%.*}&amp;quot;      # Odstraníme příponu -&amp;gt; readsb&lt;br /&gt;
 &lt;br /&gt;
 # Kontrola a pripadne vytvoreni adresare pro ulozeni jednotlivych deb balicku&lt;br /&gt;
 cd ~&lt;br /&gt;
 if [ ! -d ${DIR_DEB} ];then&lt;br /&gt;
     echo &amp;quot;Vytvarim adresar pro deb balicky ${DIR_DEB}&amp;quot;&lt;br /&gt;
     mkdir ${DIR_DEB}&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Mazu z aktualniho adresare ${name}&amp;quot;&lt;br /&gt;
 rm -r -f ${name}&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Stahuji z gitu repozitar ${url}&amp;quot;&lt;br /&gt;
 git clone --depth 10 ${url}&lt;br /&gt;
 &lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;Stazeno, presouvam se do adresare ${name}&amp;quot;&lt;br /&gt;
 cd $name&lt;br /&gt;
 &lt;br /&gt;
 # Postupne se bude provadet kompilace pro jednotliva distra a archytektury&lt;br /&gt;
 export DEB_BUILD_OPTIONS=&amp;quot;noautodbgsym nostrip&amp;quot;&lt;br /&gt;
 for distro in &amp;quot;${!PL[@]}&amp;quot;; do&lt;br /&gt;
     echo &amp;quot;Prepinam PiAware na ${distro}&amp;quot;&lt;br /&gt;
     ./sensible-build.sh ${distro}&lt;br /&gt;
     cd ./package-${distro}&lt;br /&gt;
     export DEB_BUILD_OPTIONS=&amp;quot;noddebs noautodbgsym nostrip&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     for arch in ${PL[$distro]}; do&lt;br /&gt;
         echo&lt;br /&gt;
         echo &amp;quot;* * * * * *          Bude se kompilovat distribuce: $distro / Arch: $arch            * * * * * *&amp;quot;&lt;br /&gt;
         echo &amp;quot;------------------------------------------------------------------------------------------------&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
         sbuild --arch=${arch} -d ${distro} -b --no-run-lintian --add-depends=python3-setuptools,python3-all&lt;br /&gt;
         if [ &amp;quot;$?&amp;quot; == &amp;quot;0&amp;quot; ];then&lt;br /&gt;
             echo &amp;quot;Kompilace probehla v poradku, deb balicek presouvam do ${DIR_DEB}/${distro}/&amp;quot;&lt;br /&gt;
             if [ ! -d ../../${DIR_DEB}/${distro} ];then&lt;br /&gt;
                 echo &amp;quot;Vytvarim adresar ${DIR_DEB}/${distro}&amp;quot;&lt;br /&gt;
                 mkdir ../../${DIR_DEB}/${distro}&lt;br /&gt;
             fi&lt;br /&gt;
             if [ -e ../../${DIR_DEB}/${distro}/piaware*${arch}* ];then&lt;br /&gt;
                 echo &amp;quot;Mazu puvodni soubor piaware* v adresari ${distro}&amp;quot;&lt;br /&gt;
                 rm ../../${DIR_DEB}/${distro}/piaware*${arch}*&lt;br /&gt;
             fi&lt;br /&gt;
             cp ../piaware_*.deb ../../${DIR_DEB}/${distro}/&lt;br /&gt;
             rm ../piaware_*&lt;br /&gt;
             filedeb=$(ls ../../${DIR_DEB}/${distro}/ | grep  -e &amp;quot;piaware_.*${arch}.deb&amp;quot;)&lt;br /&gt;
             symlink=&amp;quot;${filedeb/_*_/_last_}&amp;quot;&lt;br /&gt;
             echo &amp;quot;Pro ${filedeb} vytvarim symlink ${symlink}&amp;quot;&lt;br /&gt;
             ln -r -f -s ../../${DIR_DEB}/${distro}/${filedeb} ../../${DIR_DEB}/${distro}/${symlink}&lt;br /&gt;
         else&lt;br /&gt;
             echo &amp;quot;ERROR ! Pri kompilaci nastal problem, nic se nekopiruje !&amp;quot;&lt;br /&gt;
         fi&lt;br /&gt;
     done&lt;br /&gt;
     cd ..&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 cd ~&lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;------------------------------------------------------------------------------------------------&amp;quot;&lt;br /&gt;
 echo &amp;quot;* * * * * *          Kompilace je hotova. Doporucuji skopirovat na server.           * * * * * *&amp;quot;&lt;br /&gt;
 echo &amp;quot;------------------------------------------------------------------------------------------------&amp;quot;&lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;rsync -axv --progress ${DIR_DEB}/* webser1:/home/tydyt/rxw/dists/&amp;quot;&lt;br /&gt;
[[ #.C3.9Avod | Zpět na úvod ]]&lt;/div&gt;</summary>
		<author><name>Tydyt</name></author>	</entry>

	<entry>
		<id>http://blok.tydyt.cz/index.php/WebSerInst</id>
		<title>WebSerInst</title>
		<link rel="alternate" type="text/html" href="http://blok.tydyt.cz/index.php/WebSerInst"/>
				<updated>2026-01-15T11:45:49Z</updated>
		
		<summary type="html">&lt;p&gt;Tydyt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nainstalovaní potřebných baličků&lt;br /&gt;
&lt;br /&gt;
 sudo apt install -y php maria-server php-mysql&lt;br /&gt;
&lt;br /&gt;
Doplnky k PHP&lt;br /&gt;
 sudo apt-get install php-curl libphp-phpmailer&lt;br /&gt;
&lt;br /&gt;
Povoleni doplnku:&lt;br /&gt;
&lt;br /&gt;
V php.ini nesmi byt zakomentovany radek extension=....&lt;br /&gt;
&lt;br /&gt;
Pro nacteni PHPmaileru zadame: &lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 # Nacteni knihovny a skriptu PHPMailer&lt;br /&gt;
 use PHPMailer\PHPMailer\PHPMailer;&lt;br /&gt;
 use PHPMailer\PHPMailer\SMTP;&lt;br /&gt;
 use PHPMailer\PHPMailer\Exception;&lt;br /&gt;
 &lt;br /&gt;
 require 'libphp-phpmailer/src/Exception.php';&lt;br /&gt;
 require 'libphp-phpmailer/src/PHPMailer.php';&lt;br /&gt;
 require 'libphp-phpmailer/src/SMTP.php';&lt;/div&gt;</summary>
		<author><name>Tydyt</name></author>	</entry>

	<entry>
		<id>http://blok.tydyt.cz/index.php/CzADSB-Packages</id>
		<title>CzADSB-Packages</title>
		<link rel="alternate" type="text/html" href="http://blok.tydyt.cz/index.php/CzADSB-Packages"/>
				<updated>2026-01-02T17:15:51Z</updated>
		
		<summary type="html">&lt;p&gt;Tydyt: /* Skript */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Úvod ==&lt;br /&gt;
Na následující stránce je postup na vytvoření balíčků pro Debian pro snadnou instalaci. Samozřejmě se časem může něco změnit, ale to teď nevím.&lt;br /&gt;
== Instalace podpory ==&lt;br /&gt;
Prvně provedeme aktualizaci a nainstalujeme potřebné programy a moduly:&lt;br /&gt;
 sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&lt;br /&gt;
 sudo apt install --no-install-recommends --no-install-suggests -y \&lt;br /&gt;
   git build-essential debhelper libusb-1.0-0-dev pkg-config fakeroot libncurses-dev zlib1g-dev libzstd-dev librtlsdr-dev help2man rsync&lt;br /&gt;
 sudo apt install --no-install-recommends --no-install-suggests -y \&lt;br /&gt;
   devscripts tcl8.6-dev autoconf python3-dev python3-venv python3-setuptools python3-build python3-pip python3-wheel \&lt;br /&gt;
   libz-dev openssl libboost-system-dev libboost-program-options-dev libboost-regex-dev libboost-filesystem-dev patchelf&lt;br /&gt;
&lt;br /&gt;
== ReADSB ==&lt;br /&gt;
Zdroj: https://github.com/wiedehopf/readsb&lt;br /&gt;
 cd&lt;br /&gt;
 git clone --depth 20 https://github.com/wiedehopf/readsb.git&lt;br /&gt;
 cd readsb&lt;br /&gt;
 &lt;br /&gt;
 rm -f ../readsb_*.deb&lt;br /&gt;
 export DEB_BUILD_OPTIONS=noddebs&lt;br /&gt;
 &lt;br /&gt;
 # Sestaveni bez podpory zavislosti na dalsi prijimace&lt;br /&gt;
 #    dpkg-buildpackage -b -ui -uc -us&lt;br /&gt;
 #&lt;br /&gt;
 # Seatvani s podporou rtlsdr&lt;br /&gt;
 #    dpkg-buildpackage -b -ui -uc -us --build-profiles=rtlsdr&lt;br /&gt;
 #&lt;br /&gt;
 # Sestaveni s podporou vsech zarizeni&lt;br /&gt;
 #    dpkg-buildpackage -b -ui -uc -us --build-profiles=with_sdrs&lt;br /&gt;
 #&lt;br /&gt;
 dpkg-buildpackage -b -ui -uc -us&lt;br /&gt;
 &lt;br /&gt;
 ls -l ../readsb_*.deb&lt;br /&gt;
 . /etc/os-release&lt;br /&gt;
 rsync ../readsb_*.deb webser1:/home/tydyt/rxw/dists/${VERSION_CODENAME}/&lt;br /&gt;
&lt;br /&gt;
== Mlat klient ==&lt;br /&gt;
Zdroj https://github.com/mutability/mlat-client&lt;br /&gt;
 cd&lt;br /&gt;
 git clone https://github.com/mutability/mlat-client.git&lt;br /&gt;
 cd mlat-client&lt;br /&gt;
 export DEB_BUILD_OPTIONS=noddebs&lt;br /&gt;
 dpkg-buildpackage -b -ui -uc -us&lt;br /&gt;
 &lt;br /&gt;
 ls -l ../mlat-client_*.deb&lt;br /&gt;
 . /etc/os-release&lt;br /&gt;
 rsync ../mlat-client_*.deb webser1:/home/tydyt/rxw/dists/${VERSION_CODENAME}/&lt;br /&gt;
== PiAware ==&lt;br /&gt;
Zdroj https://github.com/flightaware/piaware_builder - bohužel k dnešnímu dni nepodporuje pořád trixie !&lt;br /&gt;
 cd&lt;br /&gt;
 git clone https://github.com/flightaware/piaware_builder.git&lt;br /&gt;
 . /etc/os-release&lt;br /&gt;
 ./piaware_builder/sensible-build.sh ${VERSION_CODENAME}&lt;br /&gt;
 cd ./piaware_builder/package-${VERSION_CODENAME}&lt;br /&gt;
 &lt;br /&gt;
 export DEB_BUILD_OPTIONS=noddebs&lt;br /&gt;
 dpkg-buildpackage -b -ui -uc -us --no-sign&lt;br /&gt;
  &lt;br /&gt;
 ls -l ../piaware*.deb&lt;br /&gt;
 rsync ../piaware*.deb webser1:/home/tydyt/rxw/dists/${VERSION_CODENAME}/&lt;br /&gt;
== Archytektury ==&lt;br /&gt;
(amd64, arm64, armhf, i386) &lt;br /&gt;
=== Multiarchitektura ===&lt;br /&gt;
Jde o jednodušší veriantu z možností kompilace deb balíčků pro různé platformy. Problém je v případě potřeby python3-dev, který je potřeba pro jednotlivé platformy, ale ty jsou vzájemném konfliktu. To se obchází přidáním parametru -d při bildování. Toto řešení nelze také aplikovat pro starší distribuce, protože nastavá problém závislosti na verzích různých knihoven.&lt;br /&gt;
&lt;br /&gt;
Příprava:&lt;br /&gt;
&lt;br /&gt;
 # Upgradujeme system, aktivujeme pozadovane platformy a aktualizujeme seznam balicku&lt;br /&gt;
 sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&lt;br /&gt;
 sudo dpkg --add-architecture arm64 &lt;br /&gt;
 sudo dpkg --add-architecture armhf&lt;br /&gt;
 sudo dpkg --add-architecture i386&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 # Doinstalujeme potrebne balicky&lt;br /&gt;
 sudo apt install -y git build-essential devscripts debhelper help2man help2man pkg-config&lt;br /&gt;
 sudo apt install -y crossbuild-essential-i386 libncurses-dev:i386 zlib1g-dev:i386 &lt;br /&gt;
 sudo apt install -y python3-all python3-dev python3-setuptools gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf&lt;br /&gt;
 sudo apt install -y libpython3-dev:* libzstd-dev:*&lt;br /&gt;
 &lt;br /&gt;
 # Vlastni projekty pak vyzaduji knihovny. Musi se nainstalovat jejich vyvojove verze (-dev) pro jednotlive platformy. Pokud o tom vime, rovnou doinstalujeme.&lt;br /&gt;
 sudo apt install -y libusb-1.0-0-dev:* librtlsdr-dev:* libncurses-dev:* zlib1g-dev:*&lt;br /&gt;
&lt;br /&gt;
Následně se můžeme pustit do vlatní kompilace. Stáhneme projekt z gitu a postupně spustíme kompilaci. Pro mlat-client musíme ještě přidat parametr &amp;quot;-d&amp;quot; aby se ignoroval problem z python3-dev.&lt;br /&gt;
&lt;br /&gt;
 # Stahneme projekt z gitu a prepneme se do projektu&lt;br /&gt;
 git clone https://github.com/wiedehopf/readsb.git&lt;br /&gt;
 cd readsb&lt;br /&gt;
 &lt;br /&gt;
 # Nastavime options a postupne spustime bildovani&lt;br /&gt;
 export DEB_BUILD_OPTIONS=&amp;quot;noautodbgsym nostrip&amp;quot;&lt;br /&gt;
 dpkg-buildpackage -aamd64 -us -uc -b&lt;br /&gt;
 dpkg-buildpackage -aarm64 -us -uc -b&lt;br /&gt;
 dpkg-buildpackage -aarmhf -us -uc -b&lt;br /&gt;
 dpkg-buildpackage -ai386  -us -uc -b&lt;br /&gt;
&lt;br /&gt;
Hodnoty pro DEB_BUILD_OPTIONS:&lt;br /&gt;
* noautodbgsym: Zakáže vytváření -dbgsym balíčků.&lt;br /&gt;
* nostrip: Zabrání debhelperu v ořezávání binárek, což často vyřeší konflikt s křížovými nástroji.&lt;br /&gt;
&lt;br /&gt;
Hodnoty pro dpkg-buildpackage&lt;br /&gt;
* -aarm64 &amp;gt; specifikuje cílovou architekturu&lt;br /&gt;
* -us -uc &amp;gt; přeskočí podepisování balíčku&lt;br /&gt;
* -b &amp;gt; znamená sestavit pouze binární balíček (ne source balíček)&lt;br /&gt;
&lt;br /&gt;
Poznamka: Pokud při kompilaci budou chybět nějaké balíčky, zobrazí se v chybové správě. Většinou je stačí doinstalovat s příponou dle archytektury [ :arm64 | :armhf | ... ] &lt;br /&gt;
&lt;br /&gt;
Pro mlat klienta pouzijeme jeste parametr -d:&lt;br /&gt;
 dpkg-buildpackage -aarm64 -us -uc -b -d&lt;br /&gt;
&lt;br /&gt;
=== Chroot ===&lt;br /&gt;
Jedná se o emulaci konkrétní platformy. Jde o složitější způsob, ale měl by být &amp;quot;čistčí&amp;quot;. Přesto i zde nastavájí specifické problémy v závislosti na projektu.&lt;br /&gt;
&lt;br /&gt;
==== Příprava ====&lt;br /&gt;
 # Upgradujeme system a nainstalujeme potrebne balicky&lt;br /&gt;
 sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&lt;br /&gt;
 sudo apt install -y sbuild debian-archive-keyring schroot debootstrap qemu-user-static binfmt-support python3-setuptools python3-all dh-python&lt;br /&gt;
 &lt;br /&gt;
 # Pro jistotu vycistine adresare a doinstalujeme pozadovane platformy:&lt;br /&gt;
 sudo rm -rf /srv/chroot/*-sbuild&lt;br /&gt;
 &lt;br /&gt;
 sudo sbuild-createchroot --arch=amd64 bullseye /srv/chroot/bullseye-amd64-sbuild http://deb.debian.org/debian/&lt;br /&gt;
 sudo sbuild-createchroot --arch=arm64 bullseye /srv/chroot/bullseye-arm64-sbuild http://deb.debian.org/debian/&lt;br /&gt;
 sudo sbuild-createchroot --arch=armhf bullseye /srv/chroot/bullseye-armhf-sbuild http://deb.debian.org/debian/&lt;br /&gt;
 sudo sbuild-createchroot --arch=i386  bullseye /srv/chroot/bullseye-i386-sbuild http://deb.debian.org/debian/&lt;br /&gt;
 &lt;br /&gt;
 sudo sbuild-createchroot --arch=amd64 bookworm /srv/chroot/bookworm-amd64-sbuild http://deb.debian.org/debian/&lt;br /&gt;
 sudo sbuild-createchroot --arch=arm64 bookworm /srv/chroot/bookworm-arm64-sbuild http://deb.debian.org/debian/&lt;br /&gt;
 sudo sbuild-createchroot --arch=armhf bookworm /srv/chroot/bookworm-armhf-sbuild http://deb.debian.org/debian/&lt;br /&gt;
 sudo sbuild-createchroot --arch=i386  bookworm /srv/chroot/bookworm-i386-sbuild http://deb.debian.org/debian/&lt;br /&gt;
 &lt;br /&gt;
 sudo sbuild-createchroot --arch=amd64 trixie /srv/chroot/trixie-amd64-sbuild http://deb.debian.org/debian/&lt;br /&gt;
 sudo sbuild-createchroot --arch=arm64 trixie /srv/chroot/trixie-arm64-sbuild http://deb.debian.org/debian/&lt;br /&gt;
 sudo sbuild-createchroot --arch=armhf trixie /srv/chroot/trixie-armhf-sbuild http://deb.debian.org/debian/&lt;br /&gt;
 &lt;br /&gt;
 # Nastavime prava na uzivatele, odhlasime se a znovu prihlasime aby se prava aplikovali (mozna jde pouzit newgrp)&lt;br /&gt;
 sudo sbuild-adduser $USER&lt;br /&gt;
 cp /usr/share/doc/sbuild/examples/example.sbuildrc /home/$USER/.sbuildrc&lt;br /&gt;
 logout&lt;br /&gt;
==== Příklad ====&lt;br /&gt;
Po opětovném přihlášení se mužeme spustit do bildování. Pokud je repozitář správně připraven, tak by mělo být vše v pořádku. Často se stává že v souboru `debian/control` chybí v sekci `Build-Depends` potřebné knihovny. To lze pořešit přidáním parametru `--add-depends`.&lt;br /&gt;
&lt;br /&gt;
 # Stahneme z gitu pozadovany zdroj&lt;br /&gt;
 &lt;br /&gt;
 # Pro ARM 64-bit (misto prametru -b muze byt --debbuildopts=&amp;quot;-b -us -uc -ui&amp;quot;)&lt;br /&gt;
 export DEB_BUILD_OPTIONS=&amp;quot;noautodbgsym nostrip&amp;quot;&lt;br /&gt;
 sbuild --arch=arm64 -d bookworm -b --no-run-lintian --add-depends=python3-setuptools,python3-all&lt;br /&gt;
 &lt;br /&gt;
 # Pro ARM 32-bit (armhf)&lt;br /&gt;
 export DEB_BUILD_OPTIONS=&amp;quot;noautodbgsym nostrip&amp;quot;&lt;br /&gt;
 sbuild --arch=armhf -d bookworm -b --no-run-lintian --add-depends=python3-setuptools,python3-all&lt;br /&gt;
==== [[ CzADSB-Packages_script | Skript ]] ====&lt;br /&gt;
Pro co nejednoduší vytvoření balíčků napříč distribucemi a platformami jsou vytvořené na [[ CzADSB-Packages_script ]] bash skripty.&lt;br /&gt;
&lt;br /&gt;
== Mlat Server ==&lt;br /&gt;
Zdroj: https://github.com/fabian-stettler/mlat-server-wiedehopf-wipro&lt;/div&gt;</summary>
		<author><name>Tydyt</name></author>	</entry>

	</feed>