A TM Pizza hivatalos weboldalának saját fejlesztésű WordPress-témája.
🌐 Éles weboldal: https://www.tmpizza.net
A repository a WordPress-téma forráskódját tartalmazza. Az Apache-, Certbot-, DNS-, adatbázis- és szerverkonfigurációk biztonsági okokból nem részei a repónak.
- A projektről
- Fő funkciók
- Technológiák
- Könyvtárstruktúra
- Telepítés
- WordPress-beállítások
- Projektek kezelése
- GitHub-letöltések
- Newsroom
- SEO és megosztási előnézetek
- Eszköznézet és mobilmenü
- Domain és szerver
- Fejlesztési munkafolyamat
- Biztonsági mentés
- Hibaelhárítás
- Biztonság
- Projektállapot
A TM Pizza egy kreatív közösség, amely játékokon, filmeken, alkalmazásokon, technikai kísérleteken és közösségi projekteken dolgozik.
A weboldal célja, hogy ezeknek a projekteknek egy közös, saját kezelésű felületet adjon. A látogatók megismerhetik a részlegeket, böngészhetik a projekteket, elolvashatják a Newsroom-frissítéseket, és bizonyos projekteket közvetlenül GitHubról is letölthetnek.
A vizuális irány:
- sötét alap;
- piros–narancssárga kiemelések;
- üvegszerű panelek;
- modern, letisztult elrendezés;
- finom animációk;
- teljes mobil- és tablet-támogatás.
A projekt külső page builder nélkül készült. Nem használ Elementort, Wixet, Divit vagy hasonló rendszert.
A teljes megjelenés és a legtöbb funkció saját PHP-, CSS- és JavaScript-kódból áll.
A projektek külön WordPress bejegyzéstípusként kezelhetők.
Egy projekthez megadható:
- cím;
- hosszú leírás;
- kivonat;
- borítókép;
- státusz;
- platform;
- részleg;
- megjelenési sorrend;
- kiemelt állapot;
- külső projektlink;
- GitHub repository;
- GitHub-letöltés engedélyezése.
Az összes publikus projekt külön archívumoldalon jelenik meg:
/projektek/
A projektek részlegek szerint csoportosíthatók.
A készítők fejlesztési naplókat, híreket, bejelentéseket és frissítéseket adhatnak ki.
/newsroom/
Egy projektnél külön kapcsolóval engedélyezhető a GitHubról történő letöltés.
Bekapcsolás után a projektoldalon megjelenik:
- Letöltés GitHubról
- Repository megnyitása
A téma saját SEO-modult tartalmaz:
- meta description;
- Open Graph cím és leírás;
- Open Graph kép;
- Twitter/X large image card;
- aktuális oldal URL;
- strukturált WebSite- és Organization-adatok;
- projekt- és Newsroom-bejegyzéseknél article metaadatok.
A weboldal felismeri vagy bekéri az eszköztípust:
- asztali gép;
- telefon;
- tablet.
A választás a böngésző localStorage tárhelyébe kerül.
A fejléc saját mobilmenüvel rendelkezik hamburger gombbal, hozzáférhetőségi attribútumokkal és háttérgörgetés-kezeléssel.
A CSS- és JavaScript-fájlok verzióját a téma a fájl módosítási idejéből készíti. Így frissítés után a böngésző nem tartja meg a régi fájlokat.
- Ubuntu Server
- Apache HTTP Server
- PHP
- MariaDB vagy MySQL
- WordPress
- Certbot
- Let’s Encrypt
- HTML5
- CSS3
- Vanilla JavaScript
- PHP
- WordPress template-rendszer
- Inter
- Space Grotesk
- GoDaddy
- DuckDNS
- GitHub
- Google Search Console
- Let’s Encrypt
A téma alapértelmezett helye:
/var/www/html/wp-content/themes/tmpizza-theme/
Jellemző struktúra:
tmpizza-theme/
├── assets/
│ ├── css/
│ │ ├── about.css
│ │ ├── animations.css
│ │ ├── base.css
│ │ ├── buttons.css
│ │ ├── device-choice.css
│ │ ├── divisions.css
│ │ ├── footer.css
│ │ ├── github-downloads.css
│ │ ├── header.css
│ │ ├── hero.css
│ │ ├── join.css
│ │ ├── newsroom.css
│ │ ├── project-archive.css
│ │ ├── projects.css
│ │ ├── responsive.css
│ │ └── single-project.css
│ ├── images/
│ │ └── social-preview.jpg
│ └── js/
│ └── main.js
├── inc/
│ ├── github-downloads.php
│ ├── newsroom.php
│ ├── projects.php
│ └── seo.php
├── template-parts/
│ ├── about.php
│ ├── device-dilemma.php
│ ├── divisions.php
│ ├── hero.php
│ ├── join.php
│ ├── project-archive-card.php
│ └── projects.php
├── archive-tmpizza_news.php
├── archive-tmpizza_project.php
├── footer.php
├── front-page.php
├── functions.php
├── header.php
├── index.php
├── single-tmpizza_news.php
├── single-tmpizza_project.php
├── style.css
└── README.md
cd /var/www/html/wp-content/themes
sudo git clone REPOSITORY_URL tmpizza-themeÁllítsd be a megfelelő tulajdonost és jogosultságokat a saját szerverkörnyezeted szerint.
Példa:
sudo chown -R www-data:www-data /var/www/html/wp-content/themes/tmpizza-themeWordPress admin
→ Megjelenés
→ Sablonok
→ TM Pizza Theme
→ Bekapcsolás
Beállítások
→ Közvetlen hivatkozások
→ Módosítások mentése
Nem kell módosítani semmit. A mentés újragenerálja a WordPress útvonalait.
Honlap neve:
TM Pizza
Honlap egysoros leírása:
Játékok, filmek és kreatív projektek egy közösségben.
WordPress-cím:
https://www.tmpizza.net
Webhelycím:
https://www.tmpizza.net
A következő opció ne legyen bepipálva:
Megtiltjuk a keresőmotoroknak, hogy bejárják az oldalt
Ajánlott méret:
512 × 512 px
Elvárt fájl:
assets/images/social-preview.jpg
Ajánlott méret:
1200 × 630 px
Adminfelület:
Projektek
Projektek
→ Új hozzáadása
Ajánlott kitöltési sorrend:
- Projekt címe
- Részletes leírás
- Kivonat
- Borítókép
- Részleg
- Státusz
- Platform
- Sorrend
- Külső link
- GitHub-beállítások
- Közzététel
A kivonat felhasználható:
- projektkártyán;
- SEO-leírásként;
- Discord-előnézetben;
- közösségi megosztásnál.
Érdemes rövid, 1–3 mondatos leírást megadni.
A borítókép megjelenhet:
- projektkártyán;
- projektoldalon;
- Open Graph előnézetben;
- Discord-megosztásnál.
A GitHub-beállítások az adott projekt szerkesztőoldalán találhatók:
GitHub-letöltés
Pipáld be:
A projekt letölthető GitHubról
Add meg:
GitHub repository linkje:
https://github.com/OWNER/REPOSITORY
Letölthető branch:
main
A téma automatikusan elkészíti a ZIP-linket:
https://github.com/OWNER/REPOSITORY/archive/refs/heads/main.zip
A GitHub-panel csak akkor jelenik meg, ha:
- a letöltés engedélyezve van;
- a repository-link érvényes;
- a projekt el lett mentve;
- a projekt publikus;
- a megadott branch létezik.
https://github.com/felhasznalo/repository
A rendszer kizárólag HTTPS-es GitHub-linket fogad el.
main
master
release/stable
Adminfelület:
Newsroom
Newsroom
→ Új frissítés
Ajánlott mezők:
- cím;
- kivonat;
- teljes tartalom;
- borítókép;
- szerző;
- közzétételi dátum.
https://www.tmpizza.net/newsroom/
https://www.tmpizza.net/newsroom/bejegyzes-neve/
- fejlesztési napló;
- új projekt bejelentése;
- weboldalfrissítés;
- karbantartási értesítés;
- verziófrissítés;
- közösségi esemény;
- kulisszák mögötti bejegyzés.
A téma többek között ezeket generálja:
<meta name="description" content="...">
<meta property="og:title" content="...">
<meta property="og:description" content="...">
<meta property="og:image" content="...">
<meta property="og:url" content="...">
<meta name="twitter:card" content="summary_large_image">- WordPress kivonat
- A bejegyzés tartalmából generált rövid leírás
- Alapértelmezett TM Pizza leírás
- Kiemelt kép
social-preview.jpg- WordPress webhelyikon
https://www.tmpizza.net/wp-sitemap.xml
Domain property:
tmpizza.net
Beküldött sitemap:
https://www.tmpizza.net/wp-sitemap.xml
Támogatott módok:
desktop
mobile
tablet
A kiválasztás kulcsa:
tmpizza-device-view
A HTML-elemre kerülő osztályok:
view-desktop
view-mobile
view-tablet
A fejléc mobilmenüje a következő elemekre támaszkodik:
.mobile-menu-toggle
#primary-navigation
body.menu-open
Ezeket az osztályokat és ID-ket csak a JavaScript és a CSS egyidejű frissítésével szabad átnevezni.
https://www.tmpizza.net
www.tmpizza.net
→ CNAME
→ tmpizza.duckdns.org
A gyökérdomain átirányít:
tmpizza.net
→ https://www.tmpizza.net
A DuckDNS továbbra is szükséges, mert az otthoni publikus IP-cím megváltozhat. A látogatók ezt nem látják, de a háttérben ez tartja elérhetően a szervert.
A weboldal Let’s Encrypt tanúsítványt használ.
A közös tanúsítványon szerepelhet:
www.tmpizza.net
tmpizza.duckdns.org
Ez segít elkerülni az Apache 421 Misdirected Request problémáját.
Ellenőrzés:
sudo certbot certificates
sudo certbot renew --dry-runApache:
sudo apache2ctl configtest
sudo apache2ctl -SElvárt konfigurációs eredmény:
Syntax OK
cd /var/www/html/wp-content/themes/tmpizza-themegit statusgit difffind . -name "*.php" -print0 |
xargs -0 -n1 php -lgit add .
git commit -m "Rövid és érthető leírás"
git pushgit pullA téma PHP-fájljainak módosítása általában nem igényel Apache-újraindítást. Apache-konfiguráció módosítása után viszont:
sudo apache2ctl configtest
sudo systemctl reload apache2A Git repository csak a témakódot védi.
Nem tartalmazza:
- az adatbázist;
- a feltöltött médiát;
- a pluginbeállításokat;
- a felhasználókat;
- az Apache-konfigurációt;
- a Certbot-konfigurációt;
- a DNS-beállításokat;
- a titkos kulcsokat.
/var/www/html/wp-content/themes/tmpizza-theme
/var/www/html/wp-content/uploads
/var/www/html/wp-config.php
/etc/apache2/sites-available
/etc/apache2/sites-enabled
/etc/letsencrypt
A wp-config.php és az /etc/letsencrypt tartalma soha ne kerüljön nyilvános repositoryba.
wp db export backup.sqlAjánlott gyakoriság:
- témakód: minden érdemi változtatás után;
- adatbázis: legalább hetente;
- feltöltések: legalább hetente;
- szerverkonfiguráció: nagyobb változtatások előtt.
Beállítások
→ Közvetlen hivatkozások
→ Módosítások mentése
Ellenőrizd:
- be van-e kapcsolva a letöltés;
- érvényes-e a repository-link;
- HTTPS-sel kezdődik-e;
- létezik-e a branch;
- el lett-e mentve a projekt;
- publikus-e a projekt.
A github-downloads.css végén legyen:
.project-github-panel a.project-github-button,
.project-github-panel a.project-github-button:visited {
color: #ffffff !important;
text-decoration: none !important;
}
.project-github-panel a.project-github-button:hover,
.project-github-panel a.project-github-button:focus,
.project-github-panel a.project-github-button:active {
color: #ffffff !important;
text-decoration: none !important;
}
.project-github-panel a.project-github-button svg {
color: inherit;
stroke: currentColor;
}Ctrl + F5
A téma filemtime() alapú verziózást használ, ezért mentés után normál esetben az új fájlt tölti be.
find . -name "*.php" -print0 |
xargs -0 -n1 php -lNaplók:
sudo tail -n 100 /var/log/apache2/error.logsudo tail -n 100 /var/log/apache2/tmpizza-net-error.logcurl -I https://www.tmpizza.net/Tanúsítvány:
echo | openssl s_client -connect www.tmpizza.net:443 -servername www.tmpizza.net 2>/dev/null |
openssl x509 -noout -subject -issuer -dates -ext subjectAltNameVegyes HTTP-tartalom keresése:
curl -s https://www.tmpizza.net/ |
grep -Eo 'http://[^"<> ]+' |
sort -usudo apache2ctl -S
sudo certbot certificatesEllenőrizni kell, hogy a www.tmpizza.net és a DuckDNS-host SSL-konfigurációja kompatibilis-e.
curl -I https://www.tmpizza.net/wp-sitemap.xmlElvárt eredmény:
HTTP/1.1 200 OK
Ellenőrizd:
- betöltődik-e az
assets/js/main.js; - létezik-e a
.mobile-menu-toggle; - az ID
primary-navigation; - megjelenik-e a
body.menu-openosztály; - van-e JavaScript-hiba a konzolban.
wp-config.php;- adatbázis-jelszó;
- WordPress adminjelszó;
- SSH privát kulcs;
- GitHub token;
- DuckDNS token;
- GoDaddy-fiókadat;
- Certbot privát kulcs;
.envfájl;- Discord bot token;
- személyes felhasználói adat.
- kétlépcsős hitelesítés GitHubon;
- kétlépcsős hitelesítés GoDaddy-n;
- erős WordPress adminjelszó;
- rendszeres Ubuntu-frissítés;
- rendszeres WordPress-frissítés;
- csak szükséges UFW-portok;
- SSH-kulcsos belépés;
- rendszeres biztonsági mentés;
- ismeretlen pluginok kerülése.
UFW:
sudo ufw statusJellemző szabályok:
22/tcp
Apache Full
- Newsroom-kategóriák;
- projektverzió mező;
- changelog projektenként;
- GitHub Releases integráció;
- automatikus legújabb kiadás felismerése;
- letöltésszámláló;
- projektkereső és szűrők;
- Discord webhook új Newsroom-bejegyzésnél;
- automatikus GitHub Actions telepítés;
- staging környezet;
- teljesítményoptimalizálás;
- automatikus adatbázis-mentés;
- admin dashboard TM Pizza összefoglalóval.
Állapot: stabil, publikus és használható
- Saját WordPress-téma
- Reszponzív kezdőlap
- Mobilmenü
- Eszköznézet-választó
- Projektkezelő rendszer
- Projektarchívum
- Egyedi projektoldalak
- Newsroom
- Egyedi Newsroom-oldalak
- GitHub-letöltési kapcsoló
- GitHub repository-gomb
- SEO-metaadatok
- Open Graph előnézet
- Webhelyikon
- Saját domain
- HTTPS
- Google Search Console
- WordPress sitemap
- Git verziókezelés
cd /var/www/html/wp-content/themes/tmpizza-theme
git status
git add .
git commit -m "Leírás"
git pushfind . -name "*.php" -print0 |
xargs -0 -n1 php -lsudo apache2ctl configtest
sudo apache2ctl -S
sudo systemctl reload apache2
sudo systemctl status apache2sudo certbot certificates
sudo certbot renew --dry-runcurl -I https://www.tmpizza.net/
curl -I https://www.tmpizza.net/wp-sitemap.xmlEz a projekt a TM Pizza saját weboldalához készült, és elsődlegesen belső használatra szolgál.
A kód másolása, terjesztése vagy más projekthez történő felhasználása csak a projekt tulajdonosának engedélyével történhet.
A TM Pizza weboldala saját infrastruktúrára, saját WordPress-témára és saját fejlesztési munkára épül.
Nem weboldalépítő szolgáltatás generálta, nem előfizetéses sablon, és nem egy kész téma egyszerű átszínezése. A projekt célja az volt, hogy a TM Pizza kapjon egy olyan weboldalt, amely technikailag és vizuálisan is tényleg a közösséghez tartozik.
TM Pizza — játékok, filmek és kreatív projektek egy közösségben.