# 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:
```
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