# webshop

1. Verzeichnisse anlegen:

```
# Auf der SSD
sudo mkdir -p /opt/shop

# Auf der HDD
sudo mkdir -p /mnt/hdd/shop/{uploads,database,backups}
sudo chown -R 33:33 /mnt/hdd/shop/uploads
```

2.docker-compose.yml erstellen:
cd /opt/shop
nano docker-compose.yml

```
version: '3.8'

services:
  db:
    image: mariadb:10.11-alpine
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: PASSWORT_1
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: PASSWORT_2
    volumes:
      - /mnt/hdd/shop/database:/var/lib/mysql
    networks:
      - shop-internal

  wordpress:
    image: wordpress:6.4-fpm-alpine
    restart: unless-stopped
    depends_on:
      - db
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: PASSWORT_2
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_CONFIG_EXTRA: |
        define('WP_HOME', 'https://test.denode.eu');
        define('WP_SITEURL', 'https://test.denode.eu');
    volumes:
      - wordpress-core:/var/www/html
      - /mnt/hdd/shop/uploads:/var/www/html/wp-content/uploads
    networks:
      - shop-internal

  nginx:
    image: nginx:alpine
    restart: unless-stopped
    depends_on:
      - wordpress
    ports:
      - "3050:80"
    volumes:
      - wordpress-core:/var/www/html:ro
      - /mnt/hdd/shop/uploads:/var/www/html/wp-content/uploads:ro
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    networks:
      - shop-internal

volumes:
  wordpress-core:

networks:
  shop-internal:
```
3. nginx.conf erstellen:
```
user nginx;
worker_processes auto;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    sendfile on;
    keepalive_timeout 65;
    client_max_body_size 64M;

    upstream php {
        server wordpress:9000;
    }

    server {
        listen 80;
        server_name _;
        root /var/www/html;
        index index.php;

        location / {
            try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass php;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
            expires max;
            log_not_found off;
        }
    }
}
```
 

4. docker compose up -d
5. caddy config
**WordPress Installation:**

Sprache: Deutsch
Seiten-Titel: z.B. "Weihnachtsdeko Shop"
Benutzername: Ein sicherer Admin-Name (NICHT "admin")
Passwort: PASSWORT_3 (das dritte generierte)
E-Mail: Eine gültige E-Mail-Adresse
Haken bei "Suchmaschinen davon abhalten..." (für Testphase)

**WooCommerce installieren:**
Nach dem Login:

Links im Menü: Plugins → Installieren
Suche nach "WooCommerce"
Installieren → Aktivieren
Setup-Wizard durchlaufen (kann übersprungen werden, wird später konfiguriert)


Fertig! 🎉
Der Shop läuft jetzt unter https://test.denode.eu
Nächste Schritte für deine Bekannte:

Theme auswählen (Appearance → Themes)
Produkte anlegen (Produkte → Neu hinzufügen)
Zahlungsarten konfigurieren (WooCommerce → Einstellungen → Zahlungen)