mirror of
https://github.com/LogicLabs-OU/OpenArchiver.git
synced 2026-04-06 00:31:57 +02:00
* fix(api): correct API key generation and proxy handling This commit resolves an issue where generating a new API key would fail. The root cause was improper handling of POST request bodies in the frontend proxy server. - Refactored `ApiKeyController` methods to use arrow functions to ensure correct `this` binding. * User profile/account page, change password, API * docs(api): update ingestion source provider values Update the `CreateIngestionSourceDto` documentation in `ingestion.md` to reflect the current set of supported providers. * updating tag * feat: add REDIS_USER env variable (#172) * feat: add REDIS_USER env variable fixes #171 * add proper type for bullmq config * Bulgarian UI language strings added (backend+frontend) (#194) * Bulgarian UI Support added * BG language UI support - Create translation.json * update redis config logic * Update Bulgarian language setting, register language * Allow specifying local file path for mbox/eml/pst (#214) * Add agents AI doc * Allow local file path for Mbox file ingestion --------- Co-authored-by: Wei S. <5291640+wayneshn@users.noreply.github.com> * feat(ingestion): add local file path support and optimize EML processing - Frontend: Updated IngestionSourceForm to allow toggling between "Upload File" and "Local File Path" for PST, EML, and Mbox providers. - Frontend: Added logic to clear irrelevant form data when switching import methods. - Frontend: Added English translations for new form fields. - Backend: Refactored EMLConnector to stream ZIP entries using yauzl instead of extracting the full archive to disk, significantly improving efficiency for large archives. - Docs: Updated API documentation and User Guides (PST, EML, Mbox) to clarify "Local File Path" usage, specifically within Docker environments. * docs: add meilisearch dumpless upgrade guide and snapshot config Update `docker-compose.yml` to include the `MEILI_SCHEDULE_SNAPSHOT` environment variable, defaulting to 86400 seconds (24 hours), enabling periodic data snapshots for easier recovery. Shout out to @morph027 for the inspiration! Additionally, update the Meilisearch upgrade documentation to include an experimental "dumpless" upgrade guide while marking the previous method as the standard recommended process. * build(coolify): enable daily snapshots for meilisearch Configure the Meilisearch service in `open-archiver.yml` to create snapshots every 86400 seconds (24 hours) by setting the `MEILI_SCHEDULE_SNAPSHOT` environment variable. --------- Co-authored-by: Antonia Schwennesen <53372671+zophiana@users.noreply.github.com> Co-authored-by: IT Creativity + Art Team <admin@it-playground.net> Co-authored-by: Jan Berdajs <mrbrdo@gmail.com>
101 lines
4.1 KiB
Plaintext
101 lines
4.1 KiB
Plaintext
|
|
# --- Application Settings ---
|
|
# Set to 'production' for production environments
|
|
NODE_ENV=development
|
|
PORT_BACKEND=4000
|
|
PORT_FRONTEND=3000
|
|
# The public-facing URL of your application. This is used by the backend to configure CORS.
|
|
APP_URL=http://localhost:3000
|
|
# This is used by the SvelteKit Node adapter to determine the server's public-facing URL.
|
|
# It should always be set to the value of APP_URL.
|
|
ORIGIN=$APP_URL
|
|
# The frequency of continuous email syncing. Default is every minutes, but you can change it to another value based on your needs.
|
|
SYNC_FREQUENCY='* * * * *'
|
|
# Set to 'true' to include Junk and Trash folders in the email archive. Defaults to false.
|
|
ALL_INCLUSIVE_ARCHIVE=false
|
|
|
|
# --- Docker Compose Service Configuration ---
|
|
# These variables are used by docker-compose.yml to configure the services. Leave them unchanged if you use Docker services for Postgresql, Valkey (Redis) and Meilisearch. If you decide to use your own instances of these services, you can substitute them with your own connection credentials.
|
|
|
|
# PostgreSQL
|
|
POSTGRES_DB=open_archive
|
|
POSTGRES_USER=admin
|
|
POSTGRES_PASSWORD=password
|
|
DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}"
|
|
|
|
# Meilisearch
|
|
MEILI_MASTER_KEY=aSampleMasterKey
|
|
MEILI_HOST=http://meilisearch:7700
|
|
# The number of emails to batch together for indexing. Defaults to 500.
|
|
MEILI_INDEXING_BATCH=500
|
|
|
|
|
|
# Redis (We use Valkey, which is Redis-compatible and open source)
|
|
REDIS_HOST=valkey
|
|
REDIS_PORT=6379
|
|
REDIS_PASSWORD=defaultredispassword
|
|
# If you run Valkey service from Docker Compose, set the REDIS_TLS_ENABLED variable to false.
|
|
REDIS_TLS_ENABLED=false
|
|
# Redis username. Only required if not using the default user.
|
|
REDIS_USER=notdefaultuser
|
|
|
|
|
|
# --- Storage Settings ---
|
|
# Choose your storage backend. Valid options are 'local' or 's3'.
|
|
STORAGE_TYPE=local
|
|
# The maximum request body size to accept in bytes including while streaming. The body size can also be specified with a unit suffix for kilobytes (K), megabytes (M), or gigabytes (G). For example, 512K or 1M. Defaults to 512kb. Or the value of Infinity if you don't want any upload limit.
|
|
BODY_SIZE_LIMIT=100M
|
|
|
|
# --- Local Storage Settings ---
|
|
# The path inside the container where files will be stored.
|
|
# This is mapped to a Docker volume for persistence.
|
|
# This is not an optional variable, it is where the Open Archiver service stores application data. Set this even if you are using S3 storage.
|
|
# Make sure the user that runs the Open Archiver service has read and write access to this path.
|
|
# Important: It is recommended to create this path manually before installation, otherwise you may face permission and ownership problems.
|
|
STORAGE_LOCAL_ROOT_PATH=/var/data/open-archiver
|
|
|
|
# --- S3-Compatible Storage Settings ---
|
|
# These are only used if STORAGE_TYPE is 's3'.
|
|
STORAGE_S3_ENDPOINT=
|
|
STORAGE_S3_BUCKET=
|
|
STORAGE_S3_ACCESS_KEY_ID=
|
|
STORAGE_S3_SECRET_ACCESS_KEY=
|
|
STORAGE_S3_REGION=
|
|
# Set to 'true' for MinIO and other non-AWS S3 services
|
|
STORAGE_S3_FORCE_PATH_STYLE=false
|
|
|
|
# --- Storage Encryption ---
|
|
# IMPORTANT: Generate a secure, random 32-byte hex string for this key.
|
|
# You can use `openssl rand -hex 32` to generate a key.
|
|
# This key is used for AES-256 encryption of files at rest.
|
|
# This is an optional variable, if not set, files will not be encrypted.
|
|
STORAGE_ENCRYPTION_KEY=
|
|
|
|
# --- Security & Authentication ---
|
|
|
|
# Enable or disable deletion of emails and ingestion sources. Defaults to false.
|
|
ENABLE_DELETION=false
|
|
|
|
# Rate Limiting
|
|
# The window in milliseconds for which API requests are checked. Defaults to 60000 (1 minute).
|
|
RATE_LIMIT_WINDOW_MS=60000
|
|
# The maximum number of API requests allowed from an IP within the window. Defaults to 100.
|
|
RATE_LIMIT_MAX_REQUESTS=100
|
|
|
|
|
|
|
|
# JWT
|
|
# IMPORTANT: Change this to a long, random, and secret string in your .env file
|
|
JWT_SECRET=a-very-secret-key-that-you-should-change
|
|
JWT_EXPIRES_IN="7d"
|
|
|
|
|
|
# Master Encryption Key for sensitive data (Such as Ingestion source credentials and passwords)
|
|
# IMPORTANT: Generate a secure, random 32-byte hex string for this
|
|
# You can use `openssl rand -hex 32` to generate a key.
|
|
ENCRYPTION_KEY=
|
|
|
|
# Apache Tika Integration
|
|
# ONLY active if TIKA_URL is set
|
|
TIKA_URL=http://tika:9998
|