Byla vydána (𝕏) nová verze 24.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 24.7 je Thriving Tiger. Přehled novinek v příspěvku na fóru.
Binarly REsearch upozorňuje na bezpečnostní problém PKFail (YouTube) v ekosystému UEFI. Stovky modelů zařízení používají pro Secure Boot testovací Platform Key vygenerovaný American Megatrends International (AMI) a jeho privátní část byla při úniku dat prozrazena. Do milionů zařízení (seznam v pdf) po celém světě tak útočníci mohou do Secure Bootu vložit podepsaný malware. Otestovat firmware si lze na stránce pk.fail. Ukázka PoC na Linuxu na Windows na YouTube.
Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.2 (Mastodon, 𝕏). Přehled novinek na GitLabu. Vypíchnuta je rodičovská kontrola.
Společnost OpenAI představila vyhledávač SearchGPT propojující OpenAI modely umělé inteligence a informace z webů v reálném čase. Zatím jako prototyp pro vybrané uživatele. Zapsat se lze do pořadníku čekatelů.
Distribuce Linux Mint 22 „Wilma“ byla vydána. Je založená na Ubuntu 24.04 LTS, ale s desktopovým prostředím Cinnamon (aktuálně verze 6.2), příp. MATE nebo Xfce, balíkem aplikací XApp, integrací balíčků Flatpak a dalšími změnami. Více v přehledu novinek a poznámkách k vydání.
Příspěvek na blogu Truffle Security: Kdokoli může přistupovat ke smazaným a privátním repozitářům na GitHubu.
Byla vydána nová verze 14 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Vypíchnout lze podporu rozšíření v Lua.
Byla vydána verze 1.80.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Apple oznámil, že v beta verzi spustil své Apple Maps na webu. Podporován je také webový prohlížeč Chrome. Ne však na Linuxu.
Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 65 tisíc vývojářů. Z Česka jich bylo 710. Ze Slovenska 246.
Původní dokumentaci jsem tvořil formou adresářové strukturu, jejíž součástí byly různé txt, doc, pdf, schémata a další. Celé jsem to commitoval do svn. Toto řešení je ok pro menší věci, pak nastává problém. Čím větší obsah, tím jsou větší nároky na spoustu dalších fcí. Mezi základní požadavky patřilo:
Koukali jsme na spoustu projektů jako DokuWiki, Wiki.js, XWiki, DocBook a mnoho dalších. Nakonec jsme se rozhodli pro Mediawiki a nelitujeme toho.
Začátky byly trochu složitější, asi jako u každého jiného projektu. Tj. pochopit filozofii řešení, co a jak funguje, celkový koncept, nesnažit se věci ohýbat moc přes koleno apod. Za tu dobu už nějaké problémy přestaly existovat, projekt se vyvíjí velkým tempem a spousta dočasných nabastlených věcí se opravila. Např. WYSIWYG fungoval tak, že volal přes API službu, která běžela na serveru na pozadí (Parsoid). Tato služba neměla jednotné api, takže musel existovat compatibility matrix s různými verzemi Mediawiki apod. Pak to přepsali do php a nyní je to součásti Mediawiki projektu a není třeba se s tím dál babrat.
Vše budeme nasazovat na Debian 11. Mediawiki je MariaDB + php + Apache. Budeme nasazovat git verzi 1.39, protože ta obsahuje spoustu nových fcí včetně nového tématu vector-2022 (sice se mi moc nelíbí, ale má dynamický obsah generovaný do levého sidebaru). Před instalací je třeba si ověřit kompatibilitu php verze s verzí Mediawiki (Compatibility). Poté můžeme začít bojovat:
# instalace závislostí apt-get install php7.4 php7.4-curl php7.4-mbstring php7.4-xml php7.4-mysql php7.4-intl php7.4-gd apache2 mariadb-server mariadb-client git # konfigurace db mariadb-secure-installation
Nyní naladíme Mediawiki:
# stáhneme projekt cd /var/www git clone https://gerrit.wikimedia.org/r/mediawiki/core.git --branch REL1_39 mediawiki cd mediawiki git submodule update --init --recursive # ověříme si, že máme správnou výchozí verzi php php -v PHP 7.4.33 # spustíme instalaci s příslušnýma parametrama php maintenance/install.php --dbname=wiki.devaine.cz --dbserver="localhost" --installdbuser=root --installdbpass=heslonaroota --dbuser=mediawiki --dbpass=hesloprodbuzivatelemediawiki --pass=hesloprouzivatelewiki "Devaine Wiki" admin
Pro jistotu ještě pořešíme práva (apache běží pod uživatelem a skupinou www-data)
chown -R root:root /var/www/mediawiki chown -R www-data:www-data /var/www/mediawiki/images chown -R www-data:www-data /var/www/mediawiki/cache
Nyní je třeba doladit konfigurační soubor Mediawiki, kterým je "LocalSettings.php". Je třeba definovat si jazyk, ve kterém bude Mediawiki. Tento jazyk by se pak během života wikiny neměl měnit. Závisí pak na něm spousta věcí, obzvláště pokud chceme používat např. překlady. Tady tedy základ, co změnit / nastavit do začátku:
# vlastní logo pro wiki $wgLogos = [ '1x' => "$wgResourceBasePath/resources/assets/Logo.svg", 'icon' => "$wgResourceBasePath/resources/assets/Logo.svg", ]; # hlavní jazyk wiki, nutné i do budoucna kvůli překladům $wgLanguageCode = "cs"; # správné kódování $wgShellLocale = "C.UTF-8"; $wgResponsiveImages = "true"; # timezone $wgLocaltimezone = "Europe/Prague"; # název wikiny $wgSitename = "Devaine Wiki"; $wgMetaNamespace = "Devaine_Wiki"; # správné url wikiny $wgServer = "https://wiki.devaine.cz"; $wgScriptPath = ""; # nastavení emailové komunikace (níže bez ověření, protože lokální postfix) $wgEnableEmail = true; $wgEnableUserEmail = true; $wgEmergencyContact = "wiki-noreply@devaine.cz"; $wgPasswordSender = "wiki-norelpy@devaine.cz"; $wgEnotifUserTalk = false; $wgEnotifWatchlist = false; $wgEmailAuthentication = true; $wgSMTP = [ 'host' => '127.0.0.1', 'IDHost' => 'devaine.cz', 'localhost' => 'devaine.cz', 'port' => 25, 'auth' => false, 'username' => 'wiki-norelpy@devaine.cz', 'password' => 'my_password' ]; # základní systém oprávnění (nepřihlášení uživatelé mohou číst) $wgGroupPermissions['*']['createaccount'] = false; $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['*']['read'] = true; # definice povolených souborů pro upload $wgFileExtensions = array('png','gif','jpg','jpeg','doc','xls','pdf','ppt','tiff','docx','xlsx','pptx','svg'); # úprava globálních proměnných $wgEnableWriteAPI = true; $wgEnableUploads = true; $wgAllowJavaUploads = true; $wgGroupPermissions['user']['upload'] = true; # default téma a jejich výběr pro uživatele $wgDefaultSkin = "vector-2022"; wfLoadSkin( 'MinervaNeue' ); wfLoadSkin( 'MonoBook' ); wfLoadSkin( 'Timeless' ); wfLoadSkin( 'Vector' ); # povolení wikieditoru wfLoadExtension( 'WikiEditor' ); # povolení grafického editoru wfLoadExtension( 'VisualEditor' ); $wgDefaultUserOptions['visualeditor-enable'] = 1; $wgHiddenPrefs[] = 'visualeditor-enable';
Wikina standardně nemá všechny rozšíření, které si tahá by default sebou, povolené. Je tedy možné, že např. ve výchozím nastavení nebude povolený grafický editor. Po potencionálním povolení/zakázání rozšíření tedy proveďte aplikaci těchto změn do db:
cd /var/www/mediawiki/maintenance php update.php
Po úspěšném prokousání se těmito kroky můžeme přistoupit na nastavení apache.
Povolíme si vhodné moduly.
a2enmod vhost_alias ssl rewrite php7.4 alias
Předgenerujeme si nějaký certifikát, ať máme základ.
mkdir /etc/apache2/ssl openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/wiki.devaine.cz.pem -out /etc/apache2/ssl/wiki.devaine.cz.cer Generating a RSA private key .............+++++ ............+++++ writing new private key to '/etc/apache2/ssl/wiki.devaine.cz.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:CS State or Province Name (full name) [Some-State]:Czech Republic Locality Name (eg, city) []:Prague Organization Name (eg, company) [Internet Widgits Pty Ltd]:Devaine s.r.o Organizational Unit Name (eg, section) []:Certificate Auth Common Name (e.g. server FQDN or YOUR name) []:wiki.devaine.cz Email Address []:webmaster@devaine.cz
Vytvoříme si konfiguraci webu. Pokud zatím nechcete řešit ssl, tak si ssl část zakomentujte + si nezapomeňte v "LocalSettings.php" změnit url pro wiki na verzi bez https (parametr $wgServer).
nano /etc/apache2/sites-available/wiki.devaine.cz.conf <VirtualHost *:80> ServerAdmin admin@devaine.cz ServerName wiki.devaine.cz VirtualDocumentRoot /var/www/mediawiki # prevent to access to git repository RedirectMatch 404 /\.git CustomLog /var/log/apache2/wiki.devaine.cz-access.log common RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L] </VirtualHost> <VirtualHost *:443> ServerAdmin admin@devaine.cz ServerName wiki.devaine.cz VirtualDocumentRoot /var/www/mediawiki # prevent to access to git repository RedirectMatch 404 /\.git SSLEngine on SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 SSLHonorCipherOrder on SSLCertificateFile /etc/apache2/ssl/wiki.devaine.cz.cer SSLCertificateKeyFile /etc/apache2/ssl/wiki.devaine.cz.pem # SSLCertificateChainFile /etc/apache2/ssl/DevaineChain.crt # SSLCACertificateFile /etc/apache2/ssl/DevaineRootCA-G2.crt LogLevel warn CustomLog /var/log/apache2/wiki.devaine.cz-access.log common ErrorLog /var/log/apache2/wiki.devaine.cz-ssl-error.log CustomLog /var/log/apache2/wiki.devaine.cz-ssl-access.log combined </VirtualHost>
Povolíme si naší konfiguraci webu a ověříme, že je vše ok. Pokud ano, reloadneme apache:
# povolíme konfiguraci webu a2ensite wiki.devaine.cz # ověříme nastavení apachectl configtest # reloadneme apache systemctl restart apache2
Pokud jste úspěšně prošli všemi kroky, můžete si otevřít webovou stránku "https://wiki.devaine.cz" a přihlásit se uživatelem "admin" a heslem, které jste si zvolili v parametrech při instalaci.
Toto nové téma nemá login vpravo nahoře, takže se lze třeba doklikat přes Speciální stránky -> Přihlásit se
Pokud vám nebude fungovat VisualEditor a v logu uvidíte chybu 404, je to tím, že nemůže najít url pro vnitřní api, přes kterou funguje. To může vyřešit třeba zápis v "/etc/hosts", kam se přidá fqdn wikiny a IP serveru, tj. v mém případě např.:
127.0.0.1 localhost 127.0.1.1 debian11.error.local debian11 192.168.200.153 wiki.devaine.cz
Nebo konfigurací, kam se přidá :
... $wgInternalServer = 'https://wiki.devaine.cz'; ...
Úplný základ tedy máme. Příště si ukážeme nějaké nice to have moduly, základní práci s wiki a šablonami. V třetím článku si pak ukážeme, jaké všechny moduly jsou potřeba pro překlady a jak správně překládat stránky (jak to funguje + jak by měl uživatel začátečník postupovat).
Zdar Max
PS: V současné době spravuji pět wikin, máme na nich založené i nápovědy pro vlastní projekty (prolinkování helpu z programu do wikin apod.). Dokumentaci pro ony programy tvoří zkušenější uživatelé. Ostatně do globálních wikipedií také nepřispívají jen admini. Jinými slovy, když člověk pochopí základy, není problém tvořit obsah klikacím způsobem ve velkém, rychle a hlavně konzistentně.
Tiskni
Sdílej:
kompletní verzování obsahu včetě příloh...podpora překladů (docela důležitá věc)MediaWiki obsah se verzuje jak? Do jakeho jazyka prekladate? Cz/en? K cemu to je potreba?
docker run --name mediawiki -p 80 -d /srv/mediawiki
..and that's it