Mail-Archiver: Zentrale IMAP E-Mail-Archivierung & Migration

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Also bei mir läuft die 2601.1 auch ohne Auffälligkeiten...
 
@FricklerAtHome
Die 2601.2 hab ich tatsächlich heute Morgen aktualisiert, mit der lief es den Tag über durch. Allerdings deutlich langsamer, als bisher: Statt ~ 2 Sekunden über 1 Min 40 Sek jeder Sync.

Gerade auch noch mal kurz auf 2601.1, wieder teilweise fehlgeschlagen, mit der selben Meldung im Log.

Bei Github gibts dazu auch schon ein Bugreport, zumindest zur zähen Sync-Zeit mit Gmail...
...Und es gibt mit dem DevTag auch schon Version 2601.3 - installiert und Sync wieder bei 2 Sek. 👍
 
  • Like
Reaktionen: Kachelkaiser
@patrickn
das mit der devTag 2601.3 ist für mich wieder so ein Punkt das unser Entwickler hier weiter in der Entwicklung ist! Danke dafür an ihn! Bei uns laufen nun seit mehr als einem halben Jahr 3 Instanzen produktiv. Eine davon gleichzeitig mit einem kommerziellen Tool. Da gibt es inhaltlich bis jetzt keine Unterschiede. (Na ja, die gibt es schon aber nicht in der Anzahl und dem Inhalt der archivierten Mails. Es ist eher das Drumherum)
 
Wie steht es um die "network-mode: host oder bridge"
braucht man diese nicht?
Ich hab mir mal was zusammen gebaut. Die Ordner data-protection-keys sowie postgres-data habe ich im Pfad /volume1/docker/mailarchiver angelegt.
Habe ich die relative Pfadangabe somit laut compose richtig definiert? Bzw. würde es so funktionieren oder fehlt mir hier was wichtiges?

Code:
services:
  mailarchive-app:
    image: s1t5/mailarchiver:latest
    container_name: mailarchiver  
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true  
    environment:
      # Database Connection
      - ConnectionStrings__DefaultConnection=Host=postgres;Database=MailArchiver;Username=mailuser;Password=54545454545;

      # Authentication Settings
      - Authentication__Username=admin
      - Authentication__Password=1234567
      - Authentication__SessionTimeoutMinutes=60
      - Authentication__CookieName=MailArchiverAuth

      # MailSync Settings
      - MailSync__IntervalMinutes=15
      - MailSync__TimeoutMinutes=60
      - MailSync__ConnectionTimeoutSeconds=180
      - MailSync__CommandTimeoutSeconds=300
      - MailSync__AlwaysForceFullSync=false
      - MailSync__IgnoreSelfSignedCert=false

      # BatchRestore Settings
      - BatchRestore__AsyncThreshold=50
      - BatchRestore__MaxSyncEmails=150
      - BatchRestore__MaxAsyncEmails=50000
      - BatchRestore__SessionTimeoutMinutes=30
      - BatchRestore__DefaultBatchSize=50

      # BatchOperation Settings
      - BatchOperation__BatchSize=50
      - BatchOperation__PauseBetweenEmailsMs=50
      - BatchOperation__PauseBetweenBatchesMs=250

      # Selection Settings
      - Selection__MaxSelectableEmails=250

      # Npgsql Settings
      - Npgsql__CommandTimeout=900

      # Upload Settings for MBox and EML files
      - Upload__MaxFileSizeGB=10
      - Upload__KeepAliveTimeoutHours=4
      - Upload__RequestHeadersTimeoutHours=2

      # TimeZone Settings
      - TimeZone__DisplayTimeZoneId=Europe/Berlin

      # Database Maintenance Settings (Optional)
      - DatabaseMaintenance__Enabled=false
      - DatabaseMaintenance__DailyExecutionTime=02:00
      - DatabaseMaintenance__TimeoutMinutes=30

      # Logging Settings (Optional - defaults to Information level)
      - Logging__LogLevel__Default=Information
      - Logging__LogLevel__Microsoft_AspNetCore=Warning
      - Logging__LogLevel__Microsoft_EntityFrameworkCore_Database_Command=Warning
    ports:
      - "5065:5000"
    networks:
      - postgres
    volumes:
      - ./data-protection-keys:/app/DataProtection-Keys
    depends_on:
      postgres:
        condition: service_healthy


  postgres:
    image: postgres:17-alpine
    container_name: postgres-db
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true  
    environment:
      POSTGRES_DB: MailArchiver
      POSTGRES_USER: mailuser
      POSTGRES_PASSWORD:12345
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    networks:
      - postgres
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U mailuser -d MailArchiver"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s

networks:
  postgres:
 
Wie steht es um die "network-mode: host oder bridge"
braucht man diese nicht?
Wenn kein Eintrag getätigt wird, erstellt der Container ein eigenes Bridgenetzwerk. Wenn man Network-Mode: Bridge angibt, wird der Container im Standard-Bridge-Netzwerk hinzugefügt. Das Gleiche gilt auch für den Eintrag host. Beim Standard-Bridge-Netzwerk können sich die Container nicht untereinander über den Hostnamen unterhalten, weil sie voneinander abgekapselt sind. Das geht dann aber notfalls über die IP der DS. Ein separates Netzwerk kann bei einem Stack mit mehreren Containern hilfreich sein. Allerdings nutze ich eine Datenbank für alle Container, weshalb ich diese Datenbank außerhalb des Stacks/Projektes ausgelagert habe, was den Dump und die Sicherung dieser erleichtert. Ein Container kann ja mehren Docker Netzwerken angehören, wodurch diese dann auch über den Hostnamen angesprochen werden können. Dieser Tage habe ich schon etwas dazu geschrieben. Wenn es dich interessiert, wirst du es finden. Lies dich in die Docker-Dokumentation ein! Es ist alles gut dokumentiert.
 

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat