Рефакторизация структуры кода для улучшения читаемости и удобства сопровождения.

This commit is contained in:
2026-04-30 07:41:41 +03:00
parent eec534760e
commit 89b17ea2b2
1406 changed files with 38483 additions and 3 deletions
+79
View File
@@ -0,0 +1,79 @@
{
"ConnectionStrings": {
"DefaultConnection": "Host=mailarchiver_postgres_1;Database=mailarchiver;Username=mailarchiver;Password=mailarchiver"
},
"Authentication": {
"Username": "admin",
"Password": "secure123!",
"SessionTimeoutMinutes": 60,
"CookieName": "MailArchiverAuth",
"CookieSameSite": "Strict"
},
"OAuth": {
"Enabled": false,
"Authority": "",
"ClientId": "",
"ClientSecret": null,
"ClientScopes": [
"openid",
"profile",
"email"
],
"DisablePasswordLogin": false,
"AutoRedirect": false,
"AutoApproveUsers": false,
"AdminEmails": []
},
"MailSync": {
"IntervalMinutes": 15,
"TimeoutMinutes": 120,
"ConnectionTimeoutSeconds": 300,
"CommandTimeoutSeconds": 600,
"AlwaysForceFullSync": false,
"IgnoreSelfSignedCert": false
},
"BatchRestore": {
"AsyncThreshold": 50,
"MaxSyncEmails": 150,
"MaxAsyncEmails": 50000,
"SessionTimeoutMinutes": 30,
"DefaultBatchSize": 50
},
"Selection": {
"MaxSelectableEmails": 250
},
"View": {
"DefaultToPlainText": true,
"BlockExternalResources": true
},
"BatchOperation": {
"BatchSize": 50,
"PauseBetweenEmailsMs": 50,
"PauseBetweenBatchesMs": 200
},
"TimeZone": {
"DisplayTimeZoneId": "Etc/UCT"
},
"DatabaseMaintenance": {
"Enabled": true,
"DailyExecutionTime": "02:00",
"TimeoutMinutes": 30
},
"Upload": {
"MaxFileSizeGB": 10,
"KeepAliveTimeoutHours": 4,
"RequestHeadersTimeoutHours": 2,
"Notes": "Optimized for large file uploads up to 10GB"
},
"Npgsql": {
"CommandTimeout": 900
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning",
"Microsoft.EntityFrameworkCore.Database.Command": "Warning"
}
},
"AllowedHosts": "*"
}
+72
View File
@@ -0,0 +1,72 @@
manifestVersion: 1
id: mailarchiver
name: Mail Archiver
tagline: Комплексное решение для архивирования, поиска и экспорта электронной почты.
category: files
version: "2604.2"
port: 5006
description: >-
Mail Archiver обеспечивает автоматическое архивирование входящей и исходящей электронной почты с нескольких учетных записей. Все содержимое электронной почты и вложения синхронизируются по расписанию. Адаптивный интерфейс оптимизирован для использования на мобильных устройствах и настольных компьютерах, многоязычен и поддерживает темный режим.
OpenID Connect (OIDC) можно настроить для интеграции внешних служб аутентификации.
**Настраивать**
Предоставленные учетные данные необходимо изменить при первом входе в систему. Пользователей, учетные записи и т. д. можно настроить в веб-интерфейсе, основные настройки (например, часовой пояс) можно настроить в соответствии с вашими потребностями в «data/appsettings.json».
🔍 **Поиск и доступ**
- Расширенный поиск по всем заархивированным электронным письмам с возможностью фильтрации.
- Предварительный просмотр электронных писем со списком вложений
- Экспортируйте целые почтовые учетные записи в виде файлов mbox или сжатых архивов EML.
- Экспортировать выбранные отдельные электронные письма или пакеты электронных писем.
👥 **Управление пользователями**
- Многопользовательская поддержка с разрешениями для конкретной учетной записи.
- Панель управления со статистикой, мониторингом хранилища и анализом отправителей
- Комплексное ведение журнала доступа с подробным отслеживанием активности пользователей (доступ, экспорт, удаление, восстановление и многое другое) — подробности см. в руководстве по ведению журнала доступа.
🧩 **Поддержка провайдера электронной почты**
- IMAP — традиционные учетные записи IMAP с возможностью полной синхронизации.
- M365  почтовые учетные записи Microsoft 365 через Microsoft Graph API (Руководство по установке)
- ИМПОРТ – учетные записи, доступные только для импорта, для переноса существующих архивов электронной почты.
📥 **Функции импорта и восстановления**
- Импорт MBox и импорт EML (ZIP-файлы с поддержкой структуры папок)
- Восстановить выбранные электронные письма или целые почтовые ящики в почтовые ящики назначения.
🗑️ **Политика хранения**
- Настройте автоматическое удаление заархивированных писем с почтового сервера через определенные дни (документация по политикам хранения).
- Установите срок хранения для каждой учетной записи электронной почты (например, 30, 90 или 365 дней).
- Хранение локального архива. Настройка отдельного периода хранения для локального архива.
developer: s1t5
website: https://mail-archiver.org
repo: https://github.com/s1t5/mail-archiver
support: https://github.com/s1t5/mail-archiver/issues
defaultUsername: "admin"
defaultPassword: "secure123!"
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
releaseNotes: >-
Улучшения:
- Обновлены зависимости для лучшей совместимости.
Исправления ошибок:
- Исправлена обработка даты при восстановлении электронной почты в учетных записях Microsoft 365.
- Исправлено отображение времени последней синхронизации для русского языка.
- Исправлена обработка памяти во время синхронизации Microsoft 365.
Полные примечания к выпуску можно найти по адресу https://github.com/s1t5/mail-archiver.
dependencies: []
path: ""
submitter: dirstel
submission: https://github.com/getumbrel/dfwebos-apps/pull/5078
+32
View File
@@ -0,0 +1,32 @@
services:
app_proxy:
environment:
APP_HOST: mailarchiver_app_1
APP_PORT: 5000
app:
image: ghcr.io/s1t5/mailarchiver:2604.2@sha256:53800df180b876e3cc02e31f088e0684bf81a4380ad22b5419da99e8559bb5ba
restart: on-failure
volumes:
- ${APP_DATA_DIR}/data/data-protection-keys:/app/DataProtection-Keys
- ${APP_DATA_DIR}/data/appsettings.json:/app/appsettings.json
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:18.3-alpine3.23@sha256:4da1a4828be12604092fa55311276f08f9224a74a62dcb4708bd7439e2a03911
restart: on-failure
user: 1000:1000
environment:
POSTGRES_DB: mailarchiver
POSTGRES_USER: mailarchiver
POSTGRES_PASSWORD: mailarchiver
volumes:
- ${APP_DATA_DIR}/data/database:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U mailarchiver -d mailarchiver"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s