# MATURITNÍ PRÁCE --- ## WEBOVÁ PREZENTACE A SELF-HOSTED GALERIE PRO FOTOGRAFICKÉ STUDIO REKLIK --- **Autor:** Radim Ilek **Škola:** [Název školy] **Školní rok:** 2024/2025 **Obor:** Informační technologie **Vedoucí práce:** [Jméno vedoucího] **Datum odevzdání:** říjen 2025 --- # PROHLÁŠENÍ AUTORA Prohlašuji, že jsem maturitní práci vypracoval samostatně pod vedením vedoucího práce a s použitím uvedené literatury a zdrojů. Dále prohlašuji, že tato práce nebyla využita k získání jiného nebo stejného titulu. V Uherském Hradišti, dne 13. října 2025 \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ Podpis autora --- # PODĚKOVÁNÍ Rád bych poděkoval vedoucímu mé maturitní práce za odborné vedení, cenné rady a připomínky během tvorby tohoto projektu. Dále děkuji rodině za podporu a trpělivost během celého studia. --- # ABSTRAKT **Název práce:** Webová prezentace a self-hosted galerie pro fotografické studio Reklik **Autor:** Radim Ilek **Vedoucí práce:** [Jméno vedoucího] **Klíčová slova:** webová prezentace, fotografické studio, self-hosted galerie, io200, Cloudflare Tunnel, Apache, responzivní design, SEO optimalizace Cílem této maturitní práce bylo vytvořit kompletní webové řešení pro fotografické studio Reklik specializující se na fotografování nemovitostí v Uherském Hradišti a okolí. Projekt zahrnuje moderní responzivní webovou prezentaci s důrazem na SEO optimalizaci a uživatelskou přívětivost, doplněnou o self-hosted fotografickou galerii běžící na vlastním serveru. Webová aplikace je postavena na moderních webových technologiích včetně HTML5, CSS3 a JavaScriptu. Pro správu a prezentaci fotografií byla implementována open-source galerie io200, hostovaná na Ubuntu serveru v infrastruktuře Proxmox. Komunikace mezi interním serverem a internetem je realizována prostřednictvím zabezpečeného Cloudflare Tunnel, což eliminuje potřebu klasického port-forwardingu a zvyšuje bezpečnost celého řešení. Projekt demonstruje komplexní přístup k tvorbě webových aplikací – od analýzy požadavků, přes návrh architektury, implementaci frontend i backend komponent, až po nasazení do produkčního prostředí a následnou údržbu. Součástí práce je také konfigurace webového serveru Apache, správa domén a DNS záznamů, a implementace bezpečnostních opatření. Výsledkem je plně funkční webová prezentace dostupná na adrese https://reklik.net s integrovanou galerií na https://foto.reklik.net, která splňuje všechny požadavky zadání a je připravena k aktivnímu komerčnímu využití. --- # OBSAH 1. [ÚVOD](#1-úvod) - 1.1 [Motivace a důvody výběru tématu](#11-motivace-a-důvody-výběru-tématu) - 1.2 [Cíle práce](#12-cíle-práce) - 1.3 [Struktura dokumentu](#13-struktura-dokumentu) 2. [TEORETICKÁ ČÁST](#2-teoretická-část) - 2.1 [Webové technologie](#21-webové-technologie) - 2.1.1 [HTML5](#211-html5) - 2.1.2 [CSS3 a responzivní design](#212-css3-a-responzivní-design) - 2.1.3 [JavaScript](#213-javascript) - 2.2 [Serverové technologie](#22-serverové-technologie) - 2.2.1 [Webový server Apache](#221-webový-server-apache) - 2.2.2 [PHP](#222-php) - 2.2.3 [Databázový systém MariaDB](#223-databázový-systém-mariadb) - 2.3 [Virtualizace a hosting](#23-virtualizace-a-hosting) - 2.3.1 [Proxmox VE](#231-proxmox-ve) - 2.3.2 [Ubuntu Server](#232-ubuntu-server) - 2.4 [Bezpečnost a síťové služby](#24-bezpečnost-a-síťové-služby) - 2.4.1 [Cloudflare Tunnel](#241-cloudflare-tunnel) - 2.4.2 [HTTPS a SSL/TLS](#242-https-a-ssltls) - 2.5 [Systémy pro správu fotografií](#25-systémy-pro-správu-fotografií) - 2.5.1 [io200 Gallery](#251-io200-gallery) - 2.6 [SEO optimalizace](#26-seo-optimalizace) - 2.7 [Verzovací systémy](#27-verzovací-systémy) - 2.7.1 [Git a GitHub](#271-git-a-github) 3. [ANALÝZA A NÁVRH](#3-analýza-a-návrh) - 3.1 [Analýza požadavků](#31-analýza-požadavků) - 3.1.1 [Funkční požadavky](#311-funkční-požadavky) - 3.1.2 [Nefunkční požadavky](#312-nefunkční-požadavky) - 3.2 [Analýza cílové skupiny](#32-analýza-cílové-skupiny) - 3.3 [Konkurenční analýza](#33-konkurenční-analýza) - 3.4 [Návrh architektury](#34-návrh-architektury) - 3.4.1 [Celková architektura systému](#341-celková-architektura-systému) - 3.4.2 [Frontend architektura](#342-frontend-architektura) - 3.4.3 [Backend architektura](#343-backend-architektura) - 3.4.4 [Síťová architektura](#344-síťová-architektura) - 3.5 [Návrh uživatelského rozhraní](#35-návrh-uživatelského-rozhraní) - 3.6 [Návrh databázového modelu](#36-návrh-databázového-modelu) - 3.7 [Bezpečnostní návrh](#37-bezpečnostní-návrh) 4. [IMPLEMENTACE](#4-implementace) - 4.1 [Vývojové prostředí a nástroje](#41-vývojové-prostředí-a-nástroje) - 4.2 [Struktura projektu](#42-struktura-projektu) - 4.3 [Implementace frontendu](#43-implementace-frontendu) - 4.3.1 [HTML struktura](#431-html-struktura) - 4.3.2 [CSS styly a responzivita](#432-css-styly-a-responzivita) - 4.3.3 [JavaScript funkcionality](#433-javascript-funkcionality) - 4.4 [SEO implementace](#44-seo-implementace) - 4.4.1 [Meta tagy](#441-meta-tagy) - 4.4.2 [Strukturovaná data](#442-strukturovaná-data) - 4.4.3 [Sitemap a robots.txt](#443-sitemap-a-robotstxt) - 4.5 [Konfigurace serveru](#45-konfigurace-serveru) - 4.5.1 [Instalace Ubuntu a základní nastavení](#451-instalace-ubuntu-a-základní-nastavení) - 4.5.2 [Konfigurace Apache](#452-konfigurace-apache) - 4.5.3 [Instalace a konfigurace PHP a MariaDB](#453-instalace-a-konfigurace-php-a-mariadb) - 4.6 [Implementace io200 galerie](#46-implementace-io200-galerie) - 4.7 [Konfigurace Cloudflare Tunnel](#47-konfigurace-cloudflare-tunnel) - 4.8 [Správa domén a DNS](#48-správa-domén-a-dns) 5. [TESTOVÁNÍ](#5-testování) - 5.1 [Testování funkcionality](#51-testování-funkcionality) - 5.2 [Testování responzivity](#52-testování-responzivity) - 5.3 [Testování výkonnosti](#53-testování-výkonnosti) - 5.4 [Testování SEO](#54-testování-seo) - 5.5 [Testování bezpečnosti](#55-testování-bezpečnosti) - 5.6 [Cross-browser testování](#56-cross-browser-testování) - 5.7 [Uživatelské testování](#57-uživatelské-testování) 6. [NASAZENÍ A PROVOZ](#6-nasazení-a-provoz) - 6.1 [Postup nasazení](#61-postup-nasazení) - 6.2 [Monitoring a údržba](#62-monitoring-a-údržba) - 6.3 [Zálohování](#63-zálohování) - 6.4 [Řešení problémů](#64-řešení-problémů) 7. [EKONOMICKÉ ZHODNOCENÍ](#7-ekonomické-zhodnocení) - 7.1 [Náklady na vývoj](#71-náklady-na-vývoj) - 7.2 [Provozní náklady](#72-provozní-náklady) - 7.3 [Srovnání s komerčními řešeními](#73-srovnání-s-komerčními-řešeními) 8. [ZÁVĚR](#8-závěr) - 8.1 [Zhodnocení výsledků](#81-zhodnocení-výsledků) - 8.2 [Splnění cílů](#82-splnění-cílů) - 8.3 [Možnosti dalšího rozvoje](#83-možnosti-dalšího-rozvoje) - 8.4 [Osobní přínos](#84-osobní-přínos) 9. [SEZNAM POUŽITÉ LITERATURY A ZDROJŮ](#9-seznam-použité-literatury-a-zdrojů) 10. [PŘÍLOHY](#10-přílohy) --- # 1. ÚVOD ## 1.1 Motivace a důvody výběru tématu V současné digitální době je kvalitní webová prezentace nezbytnou součástí každého úspěšného podnikání. Pro fotografické studio, které se zabývá profesionálním fotografováním nemovitostí, je tato potřeba ještě výraznější – potenciální klienti potřebují vidět nejen informace o službách, ale především kvalitní ukázky realizovaných prací v podobě přehledné a profesionální fotogalerie. Reklik je fotografické studio působící v Uherském Hradišti a okolí, které se specializuje na fotografování nemovitostí pro realitní kanceláře, Airbnb a ubytovací portály. Studio poskytuje jak interiérové, tak exteriérové fotografie s důrazem na profesionální prezentaci nemovitostí, která maximalizuje jejich prodejní potenciál. Rozhodl jsem se pro toto téma z několika důvodů: 1. **Praktické využití**: Projekt není pouze teoretickým cvičením, ale skutečným komerčním řešením, které bude aktivně využíváno reálným klientem. 2. **Komplexnost řešení**: Projekt zahrnuje široké spektrum moderních webových technologií – od frontendového vývoje, přes backendové řešení a správu serveru, až po síťovou bezpečnost a cloudové služby. 3. **Vlastní hosting**: Na rozdíl od jednoduchých řešení postavených na hotových platformách (WordPress, Wix apod.) jsem se rozhodl implementovat vlastní server infrastrukturu s důrazem na kontrolu, flexibilitu a bezpečnost. 4. **Aktuálnost technologií**: Použité technologie jako Cloudflare Tunnel, containerizace a moderní webový vývoj představují současný standard v oboru a jejich praktické zvládnutí má vysokou hodnotu pro další profesní růst. 5. **SEO a marketing**: Projekt klade důraz na optimalizaci pro vyhledávače (SEO), což je klíčové pro získávání nových zákazníků v konkurenčním prostředí. ## 1.2 Cíle práce Hlavním cílem této maturitní práce je **navrhnout a implementovat kompletní webové řešení pro fotografické studio Reklik**, které bude splňovat jak funkční, tak nefunkční požadavky moderní webové aplikace. ### Hlavní cíle: 1. **Vytvoření responzivní webové prezentace** - Moderní, esteticky vyhovující design odpovídající charakteru fotografického studia - Plná responzivita pro všechna běžná zařízení (desktop, tablet, mobilní telefon) - Přehledná navigace a intuitivní uživatelské rozhraní - Optimalizace pro rychlé načítání stránek 2. **Implementace fotografické galerie** - Nasazení self-hosted řešení pro správu a prezentaci fotografií - Možnost kategorizace fotografií do alb - Optimalizace zobrazování velkých obrázků - Správa metadat a popisů fotografií 3. **Konfigurace serverové infrastruktury** - Instalace a konfigurace Ubuntu serveru na Proxmox virtualizační platformě - Nastavení webového serveru Apache včetně virtual hosts - Implementace databázového systému MariaDB - Správa PHP runtime prostředí 4. **Zabezpečení komunikace** - Implementace Cloudflare Tunnel pro bezpečný přístup bez port-forwardingu - Konfigurace HTTPS/SSL certifikátů - Implementace základních bezpečnostních opatření 5. **SEO optimalizace** - Implementace všech důležitých meta tagů - Vytvoření XML sitemapy - Konfigurace robots.txt - Implementace strukturovaných dat (Schema.org) - Optimalizace rychlosti načítání pro lepší ranking 6. **Dokumentace a nasazení** - Vytvoření komplexní technické dokumentace - Dokumentace postupu instalace a konfigurace - Popis údržby a možného dalšího rozvoje ### Dílčí cíle: - Prostudování moderních webových technologií a best practices - Analýza konkurenčních řešení v oboru fotografických služeb - Návrh uživatelského rozhraní s důrazem na UX (User Experience) - Implementace verzovacího systému pro správu kódu (Git/GitHub) - Vytvoření veřejně dostupného repozitáře jako ukázka práce - Testování funkcionality, výkonnosti a bezpečnosti - Nasazení do produkčního prostředí ## 1.3 Struktura dokumentu Tato maturitní práce je strukturována do logických kapitol, které pokrývají všechny fáze realizace projektu: **Kapitola 2 – Teoretická část** poskytuje přehled všech použitých technologií, vysvětluje základní koncepty a principy, na kterých je projekt postaven. Zahrnuje webové technologie (HTML5, CSS3, JavaScript), serverové technologie (Apache, PHP, MariaDB), virtualizační platformy, síťové služby a bezpečnostní mechanismy. **Kapitola 3 – Analýza a návrh** obsahuje detailní analýzu požadavků, cílové skupiny a konkurence. Dále prezentuje návrh architektury systému, uživatelského rozhraní a bezpečnostního modelu. **Kapitola 4 – Implementace** popisuje praktickou realizaci projektu. Dokumentuje implementaci frontendu, backendu, konfiguraci serveru, nasazení galerie io200 a konfiguraci Cloudflare Tunnel. Obsahuje ukázky kódu a konfiguračních souborů. **Kapitola 5 – Testování** shrnuje testovací proces včetně funkčního, výkonnostního a bezpečnostního testování. Prezentuje výsledky testů a případné problémy, které byly řešeny. **Kapitola 6 – Nasazení a provoz** popisuje postup nasazení do produkčního prostředí, monitoring, údržbu a zálohování systému. **Kapitola 7 – Ekonomické zhodnocení** analyzuje náklady na vývoj a provoz řešení a srovnává je s komerčními alternativami. **Kapitola 8 – Závěr** shrnuje dosažené výsledky, hodnotí splnění cílů a navrhuje možnosti dalšího rozvoje projektu. Součástí práce je také **seznam použité literatury a zdrojů** a **přílohy** obsahující doplňující materiály jako screenshoty, diagramy a ukázky konfigurací. --- # 2. TEORETICKÁ ČÁST Tato kapitola poskytuje teoretický základ pro porozumění technologiím a konceptům použitým v projektu. Jednotlivé podkapitoly popisují klíčové technologie, jejich vlastnosti, výhody a způsob využití v kontextu tohoto projektu. ## 2.1 Webové technologie ### 2.1.1 HTML5 **HTML5** (HyperText Markup Language, verze 5) je aktuální standard značkovacího jazyka pro tvorbu webových stránek. HTML5 bylo publikováno konsorciem W3C (World Wide Web Consortium) v roce 2014 a představuje významnou evoluci předchozích verzí HTML. **Klíčové vlastnosti HTML5:** - **Sémantické elementy**: HTML5 přináší nové sémantické tagy jako `
`, `