Skip to content

Instalace a konfigurace

Tento návod vás provede instalací a konfigurací projektu Chytrý Kvíz pro lokální vývoj.

Vyberte jeden ze setupů:

  • Docker a Docker Compose v2+
  • PHP >= 8.4 s rozšířeními: zip, json
  • Composer
  • Node.js >= 18 a npm
  • MariaDB/MySQL
  • Redis
  • wkhtmltopdf/wkhtmltoimage (pro Snappy PDF)

Terminal window
git clone <repository-url> chytrykviz
cd chytrykviz
Terminal window
cp .env.dist .env

Upravte hodnoty v .env podle potřeby:

  • DOMAIN - Doména pro lokální vývoj (výchozí: chytrykviz.local)
  • APP_URL - URL aplikace
  • SESSION_DOMAIN - Doména pro session cookies
  • SLACK_WEBHOOK_URL - Slack webhook pro notifikace (volitelné)
  • ADMIN_MAIL - Email administrátora

3. Přidání lokální domény do /etc/hosts

Section titled “3. Přidání lokální domény do /etc/hosts”

Pro správnou funkci Vite HMR přidejte do /etc/hosts:

Terminal window
127.0.0.1 chytrykviz.local
Terminal window
docker compose up -d

Docker vytvoří následující služby:

  • nginx - Web server (port 80, 443)
  • fpm - PHP-FPM (port 9001)
  • db - MariaDB 11 (port 3337)
  • redis - Redis (port 6379)
  • mailhog - SMTP testing (port 1025, UI port 8025)
  • minio - S3 storage (API port 9000, Console port 9002)
  • docs - Dokumentace (port 5174)
Terminal window
# PHP závislosti (Composer)
docker compose exec fpm composer install
# JavaScript závislosti (npm)
docker compose exec fpm npm ci

Databáze se inicializuje automaticky z database/dump.sql a database/init.sql při prvním spuštění.

Pro reseedování databáze:

Terminal window
docker compose exec fpm php artisan migrate:fresh --seed

Pro vývoj s hot reload:

Terminal window
docker compose exec fpm npm run dev

Pro produkční build:

Terminal window
docker compose exec fpm npm run build

Pokud je po roce 2040 nebo pokud prohlížeče přestanou podporovat RSA certifikáty, vygenerujte nový pomocí:

Terminal window
./.docker/local-cert.sh

Terminal window
docker compose ps

Všechny služby by měly být ve stavu Up.

Terminal window
docker compose exec fpm php artisan tinker --execute="echo 'DB: ' . DB::connection()->getDatabaseName();"

Mělo by vypsat: DB: kviz

Použijte některý z testovacích účtů:

  • Email: service@intellirascals.cz
  • Heslo: password

Pokud je některý port již obsazený, upravte docker-compose.yml:

ports:
- "8080:80" # Změna portu 80 na 8080
Terminal window
# Nastavte správná oprávnění pro storage a cache
docker compose exec fpm chmod -R 775 storage bootstrap/cache
docker compose exec fpm chown -R www-data:www-data storage bootstrap/cache
  1. Zkontrolujte, že máte chytrykviz.local v /etc/hosts
  2. Ověřte běžící Vite dev server: docker compose exec fpm npm run dev
  3. Zkontrolujte konfiguraci v vite.config.ts
Terminal window
# Zastavte kontejnery
docker compose down
# Odstraňte volumes (POZOR: smaže data!)
docker compose down -v
# Spusťte znovu
docker compose up -d
Terminal window
# Vymažte cache a reinstalujte
docker compose exec fpm rm -rf vendor node_modules
docker compose exec fpm composer install
docker compose exec fpm npm ci