Temă
Instalare
Varianta 1: Docker, ca în producție
Cerințe: Docker Desktop (Windows/macOS) sau Docker Engine + Compose (Linux), 4 GB RAM liberi, 5 GB pe disc.
- Dezarhivează proiectul (de exemplu în
C:\proiecte\taraba-platform). - Deschide un terminal în folder. Fișierul
.enve inclus în arhivă; dacă lipsește:- Windows:
copy .env.example .env - macOS / Linux:
cp .env.example .env
- Windows:
- Pornește totul:bashPrima pornire durează câteva minute (construiește imaginile, inclusiv site-ul documentației). Containerul
docker compose up -d --builddb-setupaplică migrările și încarcă datele demo, apoi se oprește (e normal). - Deschide:
| Aplicație | Adresă | Conectare demo |
|---|---|---|
| Site | http://localhost:8080 | ioana.dumitru@exemplu.ro / Taraba2026! |
| Backoffice | http://localhost:8081 | ana.moraru@taraba.ro / Taraba2026! + cod TOTP |
| CRM | http://localhost:8082 | radu.pavel@taraba.ro / Taraba2026! + cod TOTP |
| Mailpit (e-mail, SMS, push) | http://localhost:8025 | — |
| Documentația (site intern) | http://localhost:8083 | — (doar de pe calculatorul local) |
| Starea platformei | http://localhost:8084 | — |
Codul TOTP pentru echipa demo: adaugă în Google Authenticator / Microsoft Authenticator cheia KRAXEQSBJ5EUKQ2PKJCVKRCF („Introdu manual cheia”), apoi folosește codul de 6 cifre afișat.
- Oprire:
docker compose down. Datele rămân în volume; pentru a o lua de la zero:docker compose down -v.
Probleme frecvente
| Simptom | Cauză / soluție |
|---|---|
| Portul 8080 (sau altul) e ocupat | oprește aplicația care îl folosește sau schimbă maparea în docker-compose.yml |
| Site-ul arată „Nu am putut contacta serverul” | API-ul încă pornește: docker compose logs -f api |
| Codul TOTP e refuzat | ceasul calculatorului sau al telefonului nu e sincronizat (diferență peste 30 de secunde) |
db-setup a ieșit cu eroare | docker compose logs db-setup; de obicei MySQL nu era gata: docker compose up -d db-setup |
Varianta 2: dezvoltare în Docker, cu codul live (recomandată pentru programare)
Varianta 1 construiește imagini de producție: codul e compilat în imagine, iar o modificare se vede abia după docker compose up -d --build. Pentru a scrie cod, folosește fișierul de dezvoltare, care montează folderul proiectului direct în containere:
bash
docker compose -f docker-compose.dev.yml up # sau: pnpm dev:docker| Aplicație | Adresă | La salvarea unui fișier |
|---|---|---|
| Site | http://localhost:5173 | pagina se actualizează instantaneu, fără reîncărcare (Vite) |
| Backoffice | http://localhost:5174 | la fel |
| CRM | http://localhost:5175 | la fel |
| Documentație | http://localhost:5176 | la fel |
| Starea platformei | http://localhost:5177 | la fel |
| API | http://localhost:3000 (GraphQL: /graphql) | PHP: modificarea se vede la următoarea cerere |
| Mailpit | http://localhost:8025 | — |
- Prima pornire durează câteva minute (instalează dependențele); următoarele, câteva secunde.
node_modules(aplicațiile web) șivendor/(API-ul) stau în volume Docker, nu în folderul tău: pachetele cu binare diferă între Windows și Linux și nu trebuie amestecate. Pentru completarea codului în IDE, rulează și pe calculatorul tăupnpm installși, înapps/api,composer install(opțional).- Windows și macOS: Docker Desktop nu transmite în containere evenimentele de modificare a fișierelor, așa că modificările sunt detectate prin verificare periodică (activă implicit). Pe Linux poți pune
DEV_POLLING=falseîn.env, pentru mai puțin consum de procesor. - Windows, viteză maximă: ține proiectul în sistemul de fișiere WSL (de exemplu
\\wsl$\Ubuntu\home\…) și deschide-l din VS Code cu extensia WSL; montarea dinC:\funcționează, dar e mai lentă. - Date separate: proiectul
taraba-devare propria bază de date și propriile fișiere, independente de varianta 1. Nu le rula pe amândouă deodată (folosesc aceleași porturi pentru MySQL și Mailpit). - Comenzi utile (într-un al doilea terminal):
docker compose -f docker-compose.dev.yml logs -f api— jurnalul API-ului;docker compose -f docker-compose.dev.yml exec api php artisan test— testele API-ului (PHPUnit);docker compose -f docker-compose.dev.yml exec api php artisan migrate:fresh --seed --force— date demo de la zero;docker compose -f docker-compose.dev.yml up -d --build deps— după ce ai adăugat o dependență nouă;docker compose -f docker-compose.dev.yml down— oprire (down -vșterge și datele de dezvoltare).
- Migrări noi se aplică la repornirea serviciului
db-setup:docker compose -f docker-compose.dev.yml up -d db-setup.
Varianta 3: dezvoltare locală, fără Docker pentru aplicații
Cerințe: Node.js 26 și pnpm 12 (aplicațiile web), PHP 8.3+ și Composer (API-ul), Docker (doar pentru MySQL și Mailpit; sau un MySQL 8 / MariaDB 10.6+ instalat local).
bash
pnpm install
(cd apps/api && composer install && cp .env.example .env && php artisan key:generate)
docker compose up -d mysql mail # doar serviciile de date (sau: pnpm infra:up)
pnpm db:fresh # migrări + date demo
pnpm dev:api # API pe :3000 (alt terminal)
pnpm dev # site :5173, Backoffice :5174, CRM :5175În apps/api/.env pentru dezvoltare locală, gazdele serviciilor sunt 127.0.0.1 (ca în .env.example). Sarcinile periodice (plăți, alerte, campanii) rulează cu php artisan schedule:work într-un terminal separat; altfel se pot porni manual din Backoffice → Stare sistem.
Date inițiale
| Comandă | Efect |
|---|---|
pnpm db:fresh | șterge tot, aplică migrările, încarcă datele demo (SEED_PROFILE=demo) |
SEED_PROFILE=reference pnpm db:fresh | doar echipa, categoriile, setările, șabloanele (fără clienți) |
pnpm db:setup | ca la prima instalare: migrările și, doar pe o bază goală, profilul din SEED_PROFILE |
pnpm db:check | verifică integritatea (17 reguli) |
pnpm db:sql | regenerează database/schema.sql, reference-data.sql și upgrades/*.sql din migrări |
Datele demo se mută în timp la fiecare încărcare: comenzile, mesajele și anunțurile au mereu date recente.
Toți utilizatorii demo au parola Taraba2026!.