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

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

* 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` για αυτόματη επαναδημιουργία αλλαγών προγράμματος πελάτη


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chamilo.org/2.x-el/odigos-programmatisti/developer-guide/getting-started/development-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
