> For the complete documentation index, see [llms.txt](https://docs.chamilo.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chamilo.org/2.x/el/odigos-programmatisti/developer-guide/getting-started/development-setup.md).

# Ρύθμιση Ανάπτυξης

## Προαπαιτούμενα

* PHP 8.2+ με επεκτάσεις: intl, gd, curl, zip, mbstring, xml, json, pdo, ldap, exif, bcmath
* Composer
* Node.js και npm (ή Yarn — το έργο χρησιμοποιεί Yarn 4· δείτε το `package.json` για την ακριβή κατοχυρωμένη έκδοση)
* MySQL 5.7+ ή MariaDB 10.11+
* Git

## Βήματα Εγκατάστασης

### 1. Αντιγραφή του Αποθετηρίου

```bash
git clone https://github.com/chamilo/chamilo-lms.git chamilo
cd chamilo
```

### 2. Εγκατάσταση Εξαρτήσεων PHP

```bash
composer install
```

### 3. Ρύθμιση Περιβάλλοντος

Το αποθετήριο περιλαμβάνει το `.env.dist` ως αναφορά. Δημιουργήστε ένα κενό αρχείο `.env` που θα συμπληρώσει ο διαδικτυακός εγκαταστάτης — η διατήρησή του κενή εξασφαλίζει ότι οι αναβαθμίσεις δεν θα αντικαταστήσουν ποτέ τη δική σας τοπική ρύθμιση:

```bash
touch .env
```

Στη συνέχεια, κάντε το `.env` και τον κατάλογο `config/` εγγράψιμα από τον διακομιστή ιστοσελίδων ώστε ο εγκαταστάτης να μπορεί να γράψει τη δική σας τοπική ρύθμιση:

```bash
sudo chown -R www-data: .env config/ var/
```

### 4. Εγκατάσταση Εξαρτήσεων Προγράμματος Πελάτη και Δημιουργία

```bash
# Εγκατάσταση εξαρτήσεων JavaScript
yarn install

# Δημιουργία στοιχείων προγράμματος πελάτη για ανάπτυξη
yarn encore dev

# Ή παρακολούθηση αλλαγών κατά την ανάπτυξη
yarn encore dev --watch
```

### 5. Εκκίνηση Διακομιστή Ανάπτυξης

```bash
symfony server:start
```

Ή χρησιμοποιήστε Apache/Nginx δείχνοντας στον κατάλογο `public/`.

### 6. Ρύθμιση Βάσης Δεδομένων

Εκτελέστε τον διαδικτυακό οδηγό εγκατάστασης πλοηγούμενοι στη διεύθυνση URL του Chamilo σε ένα πρόγραμμα περιήγησης.

### 7. Δημιουργία Κλειδιών JWT

```bash
php bin/console lexik:jwt:generate-keypair
```

### 8. Ασφάλιση του Συστήματος

Το αρχείο `.env` και ο κατάλογος `config/` χρειάζονται να είναι εγγράψιμα μόνο για τη διάρκεια της εγκατάστασης. Ασφαλίστε τα μετά:

```bash
sudo chown -R root: .env config/
```

Ο κατάλογος `var/` χρειάζεται να παραμείνει εγγράψιμος από τον διακομιστή ιστοσελίδων.

## Εντολές Δημιουργίας

| Εντολή                        | Σκοπός                                      |
| ----------------------------- | ------------------------------------------- |
| `yarn encore dev`             | Δημιουργία προγράμματος πελάτη για ανάπτυξη |
| `yarn encore dev --watch`     | Δημιουργία και παρακολούθηση αλλαγών        |
| `yarn encore production`      | Δημιουργία βελτιστοποιημένη για παραγωγή    |
| `php bin/console cache:clear` | Εκκαθάριση cache Symfony                    |

## Συμβουλές Ανάπτυξης

* Ορίστε `APP_ENV=dev` και `APP_DEBUG=1` στο `.env` για λεπτομερή μηνύματα σφαλμάτων
* Η γραμμή εργαλείων αποσφαλμάτωσης του Symfony εμφανίζεται στο κάτω μέρος των σελίδων σε λειτουργία ανάπτυξης
* Η τεκμηρίωση API είναι διαθέσιμη στο `/api` όταν `APP_ENABLE_API_ENTRYPOINT=1`
* Χρησιμοποιήστε `yarn encore dev --watch` για αυτόματη επαναδημιουργία αλλαγών προγράμματος πελάτη
