services:
  easyweb.web:
    image: ghcr.io/easysystems-gmbh/easyweb:latest
    container_name: easyweb.web
    ports:
      - "8080:8080"
      - "5055:5055"
    environment:
      ASPNETCORE_ENVIRONMENT: Development
      ASPNETCORE_URLS: http://+:8080
      Localization__DefaultCulture: de
      Localization__AdminDefaultCulture: en
      ConnectionStrings__DefaultConnection: Host=easyweb.db;Port=5432;Database=easyweb;Username=easyweb;Password=easyweb
      EASYWEB_DB_PASSWORD: easyweb
      Themes__DefaultRootPath: /app/Themes/site
      Pages__RootPath: /app/Pages
      Images__RootPath: /app/images
      RemoteEditing__Username: admin
      RemoteEditing__Password: EasyWebRemote!2026
      Seed__AdminEmail: admin@easyweb.local
      Seed__AdminPassword: EasyWeb!2026
    depends_on:
      easyweb.db:
        condition: service_healthy
    volumes:
      - easyweb_themes:/app/Themes
      - easyweb_pages:/app/Pages
      - easyweb_images:/app/images

  easyweb.db:
    image: postgres:16-alpine
    container_name: easyweb.db
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U easyweb -d easyweb"]
      interval: 3s
      timeout: 5s
      retries: 20
      start_period: 10s
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: easyweb
      POSTGRES_USER: easyweb
      POSTGRES_PASSWORD: easyweb
    volumes:
      - easyweb_pgdata:/var/lib/postgresql/data

volumes:
  easyweb_pgdata:
  easyweb_themes:
  easyweb_pages:
  easyweb_images:
