Egyszerű, moduláris, Docker-alapú helyi webszerver környezet
Több weboldal (WordPress/PHP) kiszolgálása egyetlen gépen, minimális konfigurációval
| Feature | Leírás |
|---|---|
| 🎯 Maximális automatizmus | Csak a domain listát kell megadnod az .env fájlban |
| ⚡ Dinamikus VirtualHostok | Nincs több kézi Apache konfigurálás |
| 🔒 Automatikus SSL | Önaláírt tanúsítványok generálása minden domainhez |
| 🏗️ Izolált környezet | Külön adatbázis és webroot minden projekthez |
| 🐘 Modern PHP | PHP 8.4+ alapértelmezetten |
| 🔄 Auto-Provisioning | Automatikus projekt létrehozás az src/ mappában |
| Komponens | Verzió | Szerepkör |
|---|---|---|
| 🐘 PHP | 8.4+ | Backend nyelv |
| 🗄️ MariaDB | 10.0+ | Adatbázis szerver |
| 🌐 Apache | 2.4+ | Web szerver |
| 🐳 Docker | 20.10+ | Konténerizáció |
| 🔧 Docker Compose | 2.0+ | Orchestration |
git clone https://github.com/SolutionMasterIT/NanoHost.git
cd nanohostcp .env.example .env
nano .env # vagy vim, code, stb.docker compose up -d --buildNyisd meg böngészőben: https://weboldal1.local
KRITIKUS: Ha Windows alatt szerkeszted a fájlokat, a line-ending (sorvég) problémát okozhat!
A bash scriptek Unix-stílusú sorvégeket (LF) várnak, de Windows alapértelmezetten CRLF-et használ.
# Globális beállítás (minden repo-ra)
git config --global core.autocrlf input
# Csak erre a repo-ra
git config core.autocrlf input
# Újra checkout a fájlokhoz
git checkout -- .# Egyetlen fájl
sed -i 's/\r$//' build.sh
# Összes shell script
find . -name "*.sh" -type f -exec sed -i 's/\r$//' {} \;# Ubuntu/Debian
sudo apt-get install dos2unix
# Használat
dos2unix *.sh scripts/*.sh# Ha "^M" karaktereket látsz a sorvégeken, CRLF-ed van
cat -A build.sh
# Megfelelő kimenet (csak $):
#!/bin/bash$
echo "Hello"$
# Rossz kimenet (^M$ látható):
#!/bin/bash^M$
echo "Hello"^M$- Docker: 20.10 vagy újabb
- Docker Compose: 2.0 vagy újabb
- Legalább 2GB RAM a konténereknek
- Legalább 5GB szabad hely a storage-hez
# Scriptek futtathatóvá tétele
chmod +x *.sh
chmod +x scripts/*.sh# Egyszeri használat
BUILDKIT_PROGRESS=plain docker compose up -d --build
# Végleges beállítás
export BUILDKIT_PROGRESS=plain
echo 'export BUILDKIT_PROGRESS=plain' >> ~/.bashrcexport TERM=xterm-256colorA rendszer egyetlen belépési pontja az .env fájl.
# Domain lista (vesszővel elválasztva, space nélkül)
DOMAINS=weboldal1.local,weboldal2.test,projekt3.dev
# Adatbázis root jelszó
MYSQL_ROOT_PASSWORD=root
- ❌ NE commitolj éles jelszavakat a repo-ba!
- ✅ Használj
.env.example-t sablonként - ✅ Add hozzá az
.env-t a.gitignore-hoz - ✅ Használj erős jelszavakat production-ben
docker compose up -d --build# Konténerek listázása
docker compose ps
# Logok megtekintése
docker compose logs -f
# Csak "dev-webserver" szerver logok
docker compose logs -f dev-webserver1. Szerkeszd az .env fájlt:
nano .env2. Add hozzá az új domaint:
DOMAINS=weboldal1.local,weboldal2.test,projekt3.dev,uj-projekt.local3. Indítsd újra:
docker compose up -d --build4. Automatikus létrehozás:
- ✅ SSL tanúsítvány:
/ssl/uj-projekt.local.crt - ✅ Web könyvtár:
/src/uj-projekt.local/ - ✅ Adatbázis:
uj_projekt_local
1. Töröld az .env-ből:
nano .env2. Opcionálisan töröld a fájlokat:
# Web fájlok
rm -rf src/regi-domain.local
# SSL tanúsítvány
rm ssl/regi-domain.local.*
# Adatbázis (a konténerben)
docker compose exec dev-database mysql -u root -p
# DROP DATABASE regi_domain_local;# Leállítás (adat megőrzése)
docker compose down
# Teljes törlés (adatokkal együtt!)
docker compose down -v# Gyors újraindítás
docker compose restart
# Teljes rebuild
docker compose up -d --build --force-recreatenanohost/
├── 📁 config/ # PHP konfigurációk
│ └── php.ini
├── 📁 db/ # Perzisztens MariaDB adatok
├── 📁 scripts/ # Automatizációs scriptek
│ ├── entrypoint.sh
│ ├── generate-ssl.sh
│ ├── generate-vhosts.sh
│ └── setup-databases.sh
├── 📁 src/ # Weboldalak forráskódja
│ ├── weboldal1.local/
│ ├── weboldal2.test/
│ └── projekt3.dev/
├── 📁 ssl/ # Generált SSL tanúsítványok
├── 📄 docker-compose.yml # Docker orchestration
├── 📄 Dockerfile # PHP+Apache image
├── 📄 .env # Konfiguráció (ne commitold!)
├── 📄 .env.example # Konfiguráció sablon
└── 📄 README.md # Ez a fájl
# Belépés a web konténerbe
docker compose exec web bash
# Belépés a DB konténerbe
docker compose exec db bash
# MySQL shell elérése
docker compose exec db mysql -u root -p
# PHP verzió ellenőrzése
docker compose exec web php -v
# Apache konfiguráció tesztelése
docker compose exec web apache2ctl configtest# Összes log realtime
docker compose logs -f
# Utolsó 50 sor
docker compose logs --tail=50
# Csak hibák
docker compose logs | grep -i error
# Egy adott szolgáltatás logjai
docker compose logs -f web# Leállított konténerek törlése
docker container prune
# Nem használt image-ek törlése
docker image prune -a
# Teljes rendszer takarítás (vigyázz!)
docker system prune -a --volumes
# Konténer resource használat
docker statsProbléma: bash: ./build.sh: Permission denied
Megoldás:
chmod +x *.sh scripts/*.shProbléma: Error: bind: address already in use
Megoldás:
# Ellenőrizd, mi futtat a portokon
sudo netstat -tulpn | grep :80
sudo netstat -tulpn | grep :443
# Állítsd le a konkurens szolgáltatást
sudo systemctl stop apache2
sudo systemctl stop nginxProbléma: /bin/bash^M: bad interpreter
Megoldás: Lásd a Windows figyelmeztetés szekciót!
Probléma: A böngésző nem találja weboldal1.local-t
Megoldás - /etc/hosts fájl szerkesztése:
sudo nano /etc/hostsAdj hozzá:
127.0.0.1 weboldal1.local
127.0.0.1 weboldal2.test
127.0.0.1 projekt3.dev
Windows-on: C:\Windows\System32\drivers\etc\hosts
Probléma: "Your connection is not private"
Megoldás: Ez normális önaláírt tanúsítványoknál!
- Chrome/Edge: Kattints "Advanced" → "Proceed to site"
- Firefox: "Advanced" → "Accept the Risk"
Vagy importáld a tanúsítványt a rendszerbe (haladó).
# Docker verzió
docker --version
docker compose version
# Rendszer információk
docker info
# Konténerek részletes listája
docker compose ps -a
# Image-ek listája
docker images
# Volume-ok listája
docker volume lsA pull request-eket szívesen fogadok! Nagyobb változtatásoknál előbb nyiss issue-t.
- Fork-old a repo-t
- Hozz létre feature branch-et (
git checkout -b feature/AmazingFeature) - Commit-old a változtatásokat (
git commit -m 'Add some AmazingFeature') - Push-old a branch-et (
git push origin feature/AmazingFeature) - Nyiss egy Pull Request-et
GPL-3.0 License - lásd a LICENSE fájlt a részletekért.
NanoHost Project
- 🌐 Website: solutionmaster.hu
- 📧 Email: janos.fejleszto@gmail.com
- 🐙 GitHub: @SolutionMasterIT
Ha tetszik a projekt, adj egy csillagot! ⭐
# Clone & Star
git clone https://github.com/SolutionMasterIT/NanoHost.git
# Don't forget to star the repo! 🌟- Multi-PHP verzió támogatás
- Nginx alternatíva
- PostgreSQL támogatás
- Automatikus Let's Encrypt SSL
- GUI admin panel
- CI/CD integráció
- Kubernetes deployment
Készítve ❤️-vel Docker és PHP segítségével