Developer commands
Τα βασικά commands για setup, εκκίνηση, έλεγχο και καθημερινή ανάπτυξη backend και frontend.
Αρχικό setup
./scripts/bootstrap.shΤο script εγκαθιστά τις Python και frontend dependencies, εφαρμόζει τις database migrations και εκτελεί τον configuration check του Django.
Εκκίνηση εφαρμογής
| Στόχος | Command |
|---|---|
| Κανονικά development data | ./scripts/dev.sh |
| Καθαρό onboarding flow | ./scripts/onboarding-dev.sh reset |
| Συνέχιση onboarding sandbox | ./scripts/onboarding-dev.sh start |
| Νέο demo με δεδομένα | ./scripts/demo-dev.sh reset |
| Συνέχιση του demo | ./scripts/demo-dev.sh start |
| Τοπικό email inbox | ./scripts/mailpit-dev.sh |
Features που στέλνουν transactional email ή εκτελούν Automations χρησιμοποιούν background jobs. Για να δοκιμάσετε αυτές τις ροές, τρέξτε τα παρακάτω σε ξεχωριστά terminals:
docker compose up -d rabbitmq
uv run celery --workdir=src -A bubllio_crm worker --loglevel=INFO
uv run celery --workdir=src -A bubllio_crm beat --loglevel=INFOΤο database-backed outbox διατηρεί τα jobs αν ο broker ή ο worker μείνει προσωρινά εκτός λειτουργίας. Το Celery Beat δημοσιεύει ξανά τα jobs που έχουν φτάσει στην ώρα εκτέλεσής τους, μία φορά το λεπτό. Το CELERY_TASK_ALWAYS_EAGER=true είναι διαθέσιμο για isolated tests, αλλά δεν αντιπροσωπεύει τη συμπεριφορά production.
Τα onboarding και demo profiles χρησιμοποιούν ξεχωριστές SQLite databases κάτω από το .local/. Δεν χρησιμοποιούν ποτέ την κανονική database που ορίζεται στο .env.
Τα στοιχεία σύνδεσης του demo είναι:
username: demo
password: demo-passwordΤο seed_demo είναι idempotent και μπορεί να εκτελεστεί και σε development database:
uv run python src/manage.py seed_demo
uv run python src/manage.py seed_demo --resetΑρνείται να εκτελεστεί όταν DJANGO_DEBUG=false.
Έλεγχος περιβάλλοντος
./scripts/doctor.shΤο script ελέγχει τα απαιτούμενα commands, τις εγκατεστημένες dependencies, τη σύνδεση με Django και database, τυχόν εκκρεμείς migrations και τις development ports.
Επαλήθευση αλλαγών
Κατά την ανάπτυξη:
./scripts/verify.sh fastΠριν από handoff ή release:
./scripts/verify.sh fullΤο full προσθέτει frontend build, browser tests, έλεγχο συμφωνίας των release versions και ελέγχους compilation των transactional email templates.
Και οι δύο επιλογές επικυρώνουν επίσης το OpenAPI contract. Για τοπικό αντίγραφο προς επιθεώρηση ή χρήση από client tooling, τρέξτε:
./scripts/generate-api-schema.shΤο αποτέλεσμα γράφεται στο .local/openapi.yaml. Είναι generated local artifact και εξαιρείται σκόπιμα από το Git.
Προβολή τοπικών emails
Το ./scripts/mailpit-dev.sh εκκινεί το Mailpit και ρυθμίζει το Django να στέλνει εκεί τα emails. Ανοίξτε το http://127.0.0.1:8025. Τα μηνύματα παραμένουν στον τοπικό υπολογιστή.
Εγκατάσταση Git hooks
./scripts/install-git-hooks.shΤο pre-commit hook απορρίπτει local artifacts και absolute paths από contributor περιβάλλοντα. Εκτελεί Django checks για staged Python changes και frontend lint για staged TypeScript/JavaScript changes. Τα πλήρη tests παραμένουν ξεχωριστό βήμα, ώστε τα commits να είναι γρήγορα.
Το hook είναι προαιρετική τοπική βοήθεια. Στο CI εκτελούνται οι έλεγχοι που αποτελούν την τελική πηγή αλήθειας.
