# Dokumentation: phpIPAM Installation mit Docker und Traefik

## Ăśbersicht

Diese Anleitung beschreibt die schrittweise Einrichtung von phpIPAM in einem Docker-Setup mit:

—

## 1. Voraussetzungen

—

## 2. Projektstruktur /opt/docker/ddi-stack

```plaintext /opt/docker/ddi-stack/ ├── db/ # MariaDB-Daten ├── kea/ # KEA-Konfiguration ├── phpipam/ # phpIPAM-Volume (persistente Daten) ├── docker-compose.yml # Docker Stack Definition

``` ⸻

## 3. docker-compose.yml

```yaml version: '3.8'

services:

db:
  image: mariadb:10.5
  container_name: ddi-db
  restart: unless-stopped
  environment:
    MYSQL_ROOT_PASSWORD: ********
    MYSQL_DATABASE: phpipam
    MYSQL_USER: ipam
    MYSQL_PASSWORD: *****
  volumes:
    - ./db:/var/lib/mysql
  networks:
    - ddi-net
phpipam:
  image: phpipam/phpipam-www:latest
  container_name: ddi-phpipam
  depends_on:
    - db
  environment:
    MYSQL_HOST: db
    MYSQL_USER: ipam
    MYSQL_PASS: ******
    MYSQL_DBNAME: phpipam
  volumes:
    - ./phpipam:/phpipam
  labels:
    - "traefik.enable=true"
    - "traefik.http.routers.ipam.rule=Host(`ipam.example.com`)"
    - "traefik.http.routers.ipam.entrypoints=websecure"
    - "traefik.http.routers.ipam.tls.certresolver=le"
    - "traefik.http.services.ipam.loadbalancer.server.port=80"
    - "traefik.http.routers.ipam.middlewares=mw-redirect-to-https,mw-secure-headers"
  networks:
    - ddi-net
kea-dhcp:
  image: jonasal/kea-dhcp4:2.6.3-alpine
  container_name: ddi-kea
  network_mode: host
  volumes:
    - ./kea:/kea
  command: ["kea-dhcp4", "-c", "/kea/kea-dhcp4.conf"]
  restart: unless-stopped
  depends_on:
    - phpipam

networks:

ddi-net:
  driver: bridge

```

—

## 4. Persistenz

phpIPAM ```yaml volumes:

  1. ./phpipam:/phpipam

```

Wichtig: Wenn du das Volume beim ersten Start leer lässt, wird phpIPAM aus dem Image in /phpipam extrahiert. Wenn du jedoch eine Git-Version mountest, achte auf Versionskompatibilität (z. B. v1.5.x != 1.7.x).

Wenn du mit einer eigenen Kopie arbeiten willst: ```bash cd /opt/docker/ddi-stack mkdir phpipam cd /tmp && git clone https://github.com/phpipam/phpipam.git cp -r phpipam/* /opt/docker/ddi-stack/phpipam ```

—

## 5. Apache Alias Problem im Container

Wenn du mit dem phpipam/phpipam-www arbeitest:

```bash docker exec -it ddi-phpipam ls -lah /phpipam/index.php ```

—

## 6. Traefik-Einbindung

Labels im Container (siehe oben)

Middlewares in traefik.yml oder Labels

```yaml middlewares:

mw-redirect-to-https:
  redirectScheme:
    scheme: https
mw-secure-headers:
  headers:
    frameDeny: true

```

Zertifikats-Resolver:

```yaml tls:

certResolver: le

```

—

## 7. Fehlerbehebung

—

## 8. Weiterer Ablauf

—

## 9. Backup-Hinweis