---
# System prepended metadata

title: Installation

---

# Installation

Compose-Datei:

```yaml
version: '3.3'
services:
  drupal:
    image: drupal:latest
    ports:
      - 80:80
    volumes:
      - drupal_modules:/var/www/html/modules
      - drupal_profiles:/var/www/html/profiles
      - drupal_themes:/var/www/html/themes
      - drupal_sites:/var/www/html/sites
    restart: always

  postgres:
    image: postgres:latest
    environment:
      POSTGRES_PASSWORD: debian10
    volumes:
      - db_data:/var/lib/postgresql/data
    restart: always

volumes:
  drupal_modules:
  drupal_profiles:
  drupal_themes:
  drupal_sites:
  db_data:
```

![](https://i.imgur.com/yRvheI1.png)
![](https://i.imgur.com/BNs0rrh.png)
![](https://i.imgur.com/VoYKWEN.png)
![](https://i.imgur.com/AQcFlEg.png)
![](https://i.imgur.com/N87ZCTh.png)

# Marktanteil
![](https://i.imgur.com/4F9wCBs.png)

Wird unter anderem verwendet von:
 - Duden-Online
 - Wish
 - Tesla

![](https://i.imgur.com/CcBBKde.png)

# Contentverwaltung
http://localhost/ - Front-End und oben das Back-End
http://localhost/admin/content - (Content) Seitenübersicht und -verwaltung
http://localhost/node/add - (Content -> Inhalt hinzufügen) Seite hinzufügen
http://localhost/node/add/article - (Content -> Inhalt hinzufügen -> Artikel) Artikel hinzufügen (z.B. Blogeintrag)
http://localhost/node/add/page - (Content -> Inhalt hinzufügen -> Einfache Seite) Einfach Seite hinzufügen (z.B. Kontakt-Info)
http://localhost/admin/structure/types - (Struktur -> Inhaltstypen) Hier kann man Inhaltstypen bearbeiten und hinzufügen
Vielleicht abmelden und als normaler User anmelden und schauen, wie sich Website ändert.
Fürs Backend kann man anstatt einer GUI auch eine REST-Schnittstelle verwenden. 

# Konfiguration
http://localhost/admin/config/system/site-information - (Konfiguration -> System -> Grundeinstellungen der Website) Pfad der Startseite zu vorhin angelegtem Artikel ändern

# Benutzerverwaltung
http://localhost/admin/config/people/accounts - (Konfiguration -> Benutzer -> Kontoeinstellungen) Einstellen, wie Konten registriert werden
http://localhost/admin/people - (Benutzer) Liste von Konten
http://localhost/admin/people/permissions - (Benutzer -> Berechtigungen) den Nutzergruppen Berechtigungen vergeben


# Module
https://www.drupal.org/project/project_module - Alle Module (Plugins)
https://www.drupal.org/project/project_module?f%5B2%5D=&f%5B3%5D=sm_core_compatibility%3A10 - Module für Drupal 10 (erschienen Dezember 2022), keine Rückwärtskompatibilität
http://localhost/admin/modules - (Erweitern) Modulübersicht (Core-Module und externe)
http://localhost/admin/modules/install - (Erweitern -> Neues Modul hinzufügen) externes Modul installieren mit Link von drupal.org



# Google-Analytics-Modul
https://www.drupal.org/project/google_analytics
http://localhost/admin/config/services/google-analytics (Erweitern -> Nach Google filtern -> Google Analytics -> Konfigurieren) -> geht nicht, weil keine Web Property ID

# SEO
Mehrere Module:
1. https://www.drupal.org/project/pathauto - Pathauto für schöne Links (Konfiguration: http://localhost/admin/config/search/path/patterns), ohne Pathauto: http://localhost/node/2, mit Pathauto: http://localhost/neuigkeiten
2. https://www.drupal.org/project/metatag - Metatag fügt automatisch Meta-Tags im Header hinzu, damit Browser z.B. die Zielgruppe von Website wissen oder auch für Twitter-Preview
    * http://localhost/admin/config/search/metatag - Konfiguration, bei Content und "Inhalt: Artikel" wurden Tags hinzugefügt
    * http://localhost/neuigkeiten - (Startseite -> Neuigkeiten) wenn man Quelltext anzeigt, sieht man im Header Meta-Tags
3. https://www.drupal.org/project/simple_sitemap - Mit Simple XML Sitemap kann man Sitemap generieren (XML-Datei mit verschiedenen Unterseiten für Suchmaschinen): http://localhost/sitemap.xml

# Themes
https://www.drupal.org/project/project_theme - Alle Themes
https://www.drupal.org/project/project_theme?f%5B2%5D=sm_core_compatibility%3A10 - Module für Drupal 10
https://www.drupal.org/project/estore - Theme für Online-Shop (geht nicht mit Drupal 10)
http://localhost/admin/appearance - (Design) Theme einstellen
http://localhost/admin/structure/block - (Struktur -> Blocklayout) Bausteine des Themes verschieben, Theme anpassen

Für größere Websites programmiert man meistens ein eigenes Theme, wodurch man sehr flexibel ist, was aber auch viel Zeit benötigt. Im Hintergrund schreibt man selbst den JavaScript-, CSS- und HTML-/PHP-Code mit einer Template-Engine (Twig). 

Beispieldatei: https://git.drupalcode.org/project/gin/-/blob/8.x-3.x/templates/html.html.twig 