| Server IP : 193.86.120.172 / Your IP : 216.73.216.67 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /volume1/web/kadernictvi_jservices_cz/ |
Upload File : |
# Kadeřnictví Stella – instalační příručka
## Synology Web Station + MariaDB + PHP
---
## 1. Požadavky na Synology
- DSM 7.x
- Web Station (Apache + PHP 8.1+)
- MariaDB 10 (z Package Center)
- Platný doménový název nebo DynDNS
---
## 2. Databáze (MariaDB)
1. Otevřete **phpMyAdmin** (nebo připojte se přes SSH)
2. Vytvořte databázi a uživatele:
```sql
CREATE DATABASE kadernictvi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'kadernictvi_user'@'localhost' IDENTIFIED BY 'SILNE_HESLO';
GRANT ALL PRIVILEGES ON kadernictvi.* TO 'kadernictvi_user'@'localhost';
FLUSH PRIVILEGES;
```
3. Importujte schéma:
```bash
mysql -u kadernictvi_user -p kadernictvi < sql/schema.sql
```
4. Přidejte tabulku sessions (nutné pro admin přihlášení):
```sql
USE kadernictvi;
CREATE TABLE admin_session (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id INT UNSIGNED NOT NULL,
token CHAR(64) NOT NULL UNIQUE,
platnost_do DATETIME NOT NULL,
vytvoreno DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES admin_uzivatele(id) ON DELETE CASCADE,
INDEX idx_token (token)
) ENGINE=InnoDB;
```
---
## 3. Konfigurace
Upravte soubor `includes/config.php`:
| Proměnná | Popis |
|----------|-------|
| `DB_PASS` | Heslo k databázi |
| `SMTP_HOST` | Adresa SMTP serveru |
| `SMTP_USER` | E-mail pro odesílání |
| `SMTP_PASS` | Heslo k e-mailu |
| `BASE_URL` | Adresa webu (bez lomítka) |
---
## 4. Nahrání souborů
1. V **File Station** nahrajte celou složku do `/web/kadernictvi/`
2. Nastavte oprávnění složky: vlastník `http`, práva `755`
3. V **Web Station** vytvořte virtuální host:
- Document root: `/web/kadernictvi`
- PHP verze: 8.1+
- Zapněte **mod_rewrite** v nastavení Apache
---
## 5. Změna admin hesla
Po první instalaci změňte výchozí heslo (`stella2026`):
```php
// Spusťte jednorázově v terminálu nebo přes PHP soubor:
$hash = password_hash('NOVE_HESLO', PASSWORD_BCRYPT, ['cost' => 12]);
// Pak v MySQL:
// UPDATE admin_uzivatele SET heslo_hash = '$hash' WHERE uzivatelske_jmeno = 'admin';
```
---
## 6. Struktura souborů
```
kadernictvi/
├── index.html ← Veřejný rezervační formulář
├── admin.html ← Admin panel
├── zmena-rezervace.php ← Stránka pro změnu termínu (z e-mailu)
├── zruseni-rezervace.php ← Stránka pro zrušení (z e-mailu)
├── .htaccess ← Apache URL routing + bezpečnost
├── api/
│ ├── index.php ← API router
│ ├── sluzby.php ← CRUD služeb
│ ├── dostupnost.php ← Volné termíny
│ ├── rezervace.php ← Vytváření a správa rezervací
│ ├── token.php ← Zrušení zákazníkem
│ ├── admin.php ← Blokace + statistiky
│ └── auth.php ← Přihlášení admina
├── includes/
│ ├── config.php ← Konfigurace
│ ├── db.php ← PDO + pomocné funkce
│ └── mailer.php ← SMTP e-maily
└── sql/
└── schema.sql ← Databázové schéma
```
---
## 7. API přehled (pro frontend)
| Metoda | Endpoint | Popis |
|--------|----------|-------|
| GET | `/api/sluzby` | Seznam služeb |
| GET | `/api/dostupnost?sluzba_id=1&datum=2026-06-15` | Volné časy |
| POST | `/api/rezervace` | Nová rezervace |
| GET | `/api/token?t=TOKEN` | Ověřit token z e-mailu |
| POST | `/api/token` | Zrušit rezervaci zákazníkem |
| POST | `/api/auth/login` | Přihlásit admina |
| GET | `/api/rezervace` | Seznam rezervací (admin) |
| PUT | `/api/rezervace/{id}` | Změnit stav (admin) |
| POST | `/api/admin/blokovane` | Přidat blokaci (admin) |
| GET | `/api/admin/statistiky` | Statistiky (admin) |
---
## 8. Bezpečnostní doporučení
- Používejte **HTTPS** (Let's Encrypt přes Synology)
- Změňte výchozí admin heslo ihned po instalaci
- Pravidelně zálohujte databázi (Synology Hyper Backup)
- Zapněte `Strict-Transport-Security` v `.htaccess` po ověření HTTPS