# Einleitung

Dieses Kapitel soll dir einen Einstieg bieten, um dein lokales Entwickler-Setup aufzusetzen damit du mit der SQUEEZE auf deinem Rechner starten kannst.

Dazu werden folgende Vorraussetzungen benötigt:

1\. [Docker Desktop installiert](https://docs.docker.com/desktop/)

2\. [Routing Einrichtung für \*.localhost (macOS)](https://docs.squeeze.one/books/macos/page/lokales-dns-einrichten-localhost-domains "Lokales DNS einrichten (*.localhost Domains)") (um squeeze.docker.localhost aufrufen zu können)

3\. [Task-Runner installiert](https://taskfile.dev/docs/installation)

4.[ Git installieren](https://git-scm.com/)

5\. [SSH-Key anlegen/in Azure DevOps hinterlegen](https://docs.squeeze.one/books/squeeze-entwickler-handbuch/page/ssh-key-erstellen "SSH Key erstellen")

### Repository lokal klonen

1. Terminal/CMD öffnen und in einen Ordner deiner Wahl wechseln
2. das SQUEEZE-Repo mit `git clone git@ssh.dev.azure.com:v3/DEXPRO/DEXPRO%20Platform/SQUEEZE` klonen

Danach kann das Projekt in der IDE z.B. PHPStorm geöffnet werden.

### Docker Registry Login

Um Docker-Images aus unserer Firmen-Registry laden zu können, musst du dich lokal anmelden.

Befolge dazu die Anweisungen in den Abschnitten "Erster Login" und "Einloggen auf der lokalen CLI/im Terminal" auf [dieser Seite.](https://docs.squeeze.one/books/cloud-ops/page/einleitung-2ew)

### Initiales Setup

Lege zuerst eine docker-compose.override.yml mit folgendem Inhalt an:

```yaml
services:
  squeeze:
    logging:
      driver: "local"
      options:
        max-size: "25m"
        max-file: "3"
    environment:
#      SQZ_WORKER_MANAGER_URL: "http://host.docker.internal:86"
#      SQZ_WORKER_MANAGER_ACTIVE: "false"
#      CLOCKWORK_ENABLED: "true"
      PHP_IDE_CONFIG: "serverName=Docker"
      XDEBUG_MODE: "debug" # use "off" to temporarily turn of the debugger
      XDEBUG_CONFIG: client_host=host.docker.internal
    external_links:
      - az-proxy-laravel.test-1:ocr-proxy
      - portal-laravel.test-1:portal
    volumes:
      - .:/var/www/html/squeeze
      - ./docker/volumes/repository:/var/www/html/repository:rw
      - ./docker/volumes/logs/backend:/var/www/html/logs:rw
  worker:
    environment:
#     SQZ_WORKER_MANAGER_URL: "http://host.docker.internal:86"
#      SQZ_WORKER_MANAGER_ACTIVE: "false"
#      SQZ_WORKER_MANAGER_FORCE: "false"
      SQZ_WORKER_DEBUG: "true"
      PHP_IDE_CONFIG: "serverName=Docker"
      SQZ_USE_TENANT_HOST_FOR_API_CALLS: "1"
      XDEBUG_MODE: "debug" # use "off" to temporarily turn of the debugger
      XDEBUG_CONFIG: client_host=host.docker.internal idekey=Docker
    external_links:
      - az-proxy-laravel.test-1:ocr-proxy
      - portal-laravel.test-1:portal
    volumes:
      - .:/var/www/html/squeeze
      - ./docker/volumes/repository:/var/www/html/repository:rw
      - ./docker/volumes/logs/worker:/var/www/html/logs:rw
  squeeze-system-api:
    environment:
      PHP_IDE_CONFIG: "serverName=Docker"
      XDEBUG_MODE: "debug" # use "off" to temporarily turn of the debugger
      XDEBUG_CONFIG: client_host=host.docker.internal
    volumes:
      - .:/var/www/html/squeeze
      - ./docker/volumes/repository:/var/www/html/repository:rw
      - ./docker/volumes/logs/backend:/var/www/html/logs:rw

  mariadb:
    ports:
      - 3306:3306

  elastic:
    ports:
      - 9200:9200

  rabbitmq:
    ports:
      - 5672:5672

  filebeat-squeeze:
    volumes:
      - ./docker/volumes/logs/backend:/mnt/logs/backend:ro
      - ./docker/volumes/logs/worker:/mnt/logs/worker:ro
      - ./docker/volumes/logs/systemapi:/mnt/logs/systemapi:ro

  frontend:
    platform: linux/amd64

#  traefik:
#    networks:
#      freeze:

#networks:
#  freeze:
#    external: true
#    name: freeze_default

```

Im SQUEEZE-Repository kannst du Squeeze mit den folgenden Commands aufsetzen

<div id="bkmrk-task-up-%28startet-den">1. task up (Startet den docker-compose stack)
2. task setup-server (Richtet eine neue Squeeze Instanz ein)
3. task setup-tenant (Setzt den Tenant squeeze.docker.localhost)
4. docker compose restart worker
5. task brt (Verarbeitet ein Test-Dokument in dem Tenant squeeze.docker.localhost) 
    1. Wenn beim `task brt` ein berechtigungsfehler auftritt: ```
        git config --global core.fileMode false
        mkdir -p ./storage/tmp/squeeze.docker.localhost/Documents
        chmod 777 -R ./storage/tmp/squeeze.docker.localhost
        ```

</div>Das SQUEEZE-Frontend sollte nun unter [http://squeeze.docker.localhost/ui/app/squeeze](http://squeeze.docker.localhost/ui/app/squeeze) erreichbar sein.  
Die SQUEEZE V2 Swagger Doc findest du unter [http://squeeze.docker.localhost/api/v2/dist/](http://squeeze.docker.localhost/api/v2/dist/).

### SQUEEZE-Stack zurücksetzen

Möchtest du deinen SQUEEZE-Stack für ein Review o.ä. neu aufsetzen, gibt es dafür das Command `task reset`.

Das Command löscht die Container und alle Daten der Docker Volumes, danach werden automatisch die Schritte aus dem Setup oben durchlaufen.

### Weitere Task Commands für die Entwicklung

Im Taskfile.dist.yml im Repository sind weiter nützliche Tasks für die Entwicklung definiert. Du kannst dir diese einfach mit dem Ausführen von `task` im Repo anzeigen lassen:

[![image.png](https://docs.squeeze.one/uploads/images/gallery/2026-05/scaled-1680-/image.png)](https://docs.squeeze.one/uploads/images/gallery/2026-05/image.png)

<div id="bkmrk--1"></div>