Skip to content

Releases: sh4den/Montscan

πŸ“¦ Montscan v1.3.2

Choose a tag to compare

@github-actions github-actions released this 24 Aug 18:00
61596d1

What's Changed

3 commits since v1.3.1

πŸš€ Features

  • feat(ci): added release publish workflow (1046fe6)
  • feat(ci): added docker publish workflow (f24ebba)

πŸ› Bug fixes

  • fix: never overwrite existing files on name collision (116498e)

Full Changelog: v1.3.1...v1.3.2

πŸ“¦ Montscan v1.3.1

Choose a tag to compare

@sh4den sh4den released this 19 Jul 21:03
9a1c826

What's New

Configurable Ollama Context Window

Vision requests to Ollama could fail with exceeds the available context size once a scanned image plus the naming prompt pushed past Ollama's 4096-token default. Montscan now explicitly requests a larger context window per call, configurable via OLLAMA_NUM_CTX (default 8192).

WebDAV Failure Diagnostics

WebDAV upload failures previously only surfaced a bare status code (e.g. Write foo.pdf: 502), which isn't enough to tell what actually went wrong. Montscan now captures and logs the response body of failed WebDAV requests, exposing the real error returned by the server or reverse proxy.

Changes

  • OLLAMA_NUM_CTX Setting: New environment variable to control the context window (in tokens) requested from Ollama per call, default 8192
  • WebDAV Debug Logging: Failed WebDAV requests (MkdirAll, Write) now log the HTTP status and response body instead of just a status code
  • Documentation Updates: README and .env.example now document OLLAMA_NUM_CTX

Configuration

Raise the Ollama context window if you see exceeds the available context size errors in the Ollama logs:

OLLAMA_NUM_CTX=8192

WebDAV debug logging requires no configuration, it's on by default and only logs when a request fails.

Technical Details

  • Added an Options.NumCtx field to the /api/chat request body in agent/ollama.go
  • Added OllamaNumCtx to config/config.go, read from OLLAMA_NUM_CTX (default 8192)
  • Added a debugTransport http.RoundTripper wrapper in providers/webdav.go that logs response bodies (up to 4KB) for any WebDAV request returning a 4xx/5xx status
  • Updated docker-compose.yml, .env.example, and README.md to document OLLAMA_NUM_CTX

Upgrade Notes

OLLAMA_NUM_CTX defaults to 8192, doubling the context memory Ollama reserves versus its own 4096 default, a negligible increase on typical hardware. No action is required unless you're running Ollama in a memory-constrained environment, in which case set OLLAMA_NUM_CTX=4096 to keep the prior behavior.


Full Changelog: View commits since v1.3.0

πŸ“¦ Montscan v1.3.0

Choose a tag to compare

@sh4den sh4den released this 15 Jun 22:47

What's New

Folder-Based Ingress πŸ“‚

Montscan can now watch a local directory for incoming PDFs instead of (or alongside) FTP and Samba. Drop a scanned document into a folder and Montscan will rename it with an AI-generated name β€” either in place or by moving it to a separate output folder.

Configurable Ollama GPU Acceleration ⚑

Ollama in Docker Compose can now run on CPU or NVIDIA GPU, switchable entirely from .env β€” no more editing docker-compose.yml by hand.

Changes

  • Folder Watcher Ingress: New FOLDER_ENABLED, FOLDER_INPUT_DIR, FOLDER_OUTPUT_DIR, and FOLDER_POLL_INTERVAL_SEC settings to monitor a local directory for new PDFs
  • Rename-in-Place or Move-to-Output: Omit FOLDER_OUTPUT_DIR to rename files where they sit, or set it to move renamed files to a separate output directory
  • Docker GPU Toggle: New COMPOSE_PROFILES and OLLAMA_GPU_COUNT variables select between CPU-only and GPU-accelerated Ollama containers
  • Documentation Updates: README now covers folder watcher setups and GPU configuration

Configuration

Enable the folder watcher:

FOLDER_ENABLED=true
FOLDER_INPUT_DIR=./input
FOLDER_OUTPUT_DIR=./output   # omit to rename in place
FOLDER_POLL_INTERVAL_SEC=5

Enable GPU acceleration for Ollama in Docker Compose:

COMPOSE_PROFILES=gpu
OLLAMA_GPU_COUNT=1

Leave COMPOSE_PROFILES=cpu (or unset) for CPU-only.

Technical Details

  • Added server/folder.go for the folder watcher loop and providers/local.go for rename/move handling
  • Updated config/config.go and main.go to wire up the new folder ingress
  • Updated agent/agent.go to support the local provider
  • Split the Ollama service in docker-compose.yml into ollama (CPU) and ollama-gpu (NVIDIA) variants behind Compose profiles, sharing config via a YAML anchor

Upgrade Notes

The folder watcher is disabled by default (FOLDER_ENABLED=false); existing FTP/Samba setups are unaffected. Ollama continues to run on CPU by default in Docker Compose unless COMPOSE_PROFILES=gpu is set.


Full Changelog: View commits since v1.2.0

πŸ“¦ Montscan v1.2.0

Choose a tag to compare

@sh4den sh4den released this 04 Apr 17:00

What's New

Flexible Ingress + Samba Upload Support πŸš€

Montscan now supports a more complete document pipeline with configurable ingress servers and an expanded upload backend. In addition to WebDAV, you can now send processed documents to Samba shares, and run FTP and/or Samba server ingress with environment-based configuration.

Changes

  • Samba Upload Provider: Added Samba as a document destination alongside existing WebDAV support
  • Provider Architecture Cleanup: Refactored upload logic into the providers package for cleaner backend handling
  • Ingress Server Controls: Added environment/config toggles for FTP and Samba server ingress
  • Docker Compose Support: Added FTP and Samba server configuration options directly in docker-compose.yml
  • Filename Date Standardization: Updated filename date format guidance to ISO8601

Configuration

Configure ingress and providers using environment variables:

# Ingress servers
export FTP_ENABLED=true
export SAMBA_SERVER_ENABLED=true

# Samba upload provider
export SAMBA_HOST=192.168.1.10
export SAMBA_PORT=445
export SAMBA_SHARE=documents
export SAMBA_USERNAME=your_user
export SAMBA_PASSWORD=your_password
export SAMBA_PATH=/incoming

Or in Docker Compose:

environment:
  - FTP_ENABLED=true
  - SAMBA_SERVER_ENABLED=true
  - SAMBA_HOST=192.168.1.10
  - SAMBA_PORT=445
  - SAMBA_SHARE=documents
  - SAMBA_USERNAME=your_user
  - SAMBA_PASSWORD=your_password
  - SAMBA_PATH=/incoming

Technical Details

  • Added Samba provider implementation in providers/samba.go
  • Extended upload flow to support provider-based routing (providers package refactor)
  • Added/updated ingress configuration loading for FTP and Samba server options in config/config.go
  • Updated server startup/config paths for FTP and Samba server components (server/ftp.go, server/samba.go)
  • Added Docker Compose environment wiring for FTP/Samba server configuration

Upgrade Notes

Existing installations remain compatible.
If you do not enable new ingress toggles, behavior stays aligned with previous setup expectations.

For Samba uploads, define Samba provider variables (SAMBA_HOST, SAMBA_SHARE, credentials, etc.).
If you only use WebDAV, your current configuration can remain unchanged.


Full Changelog: View commits since v1.1.0

πŸ“¦ Montscan v1.1.0

Choose a tag to compare

@sh4den sh4den released this 16 Feb 01:27

What's New

Configurable AI Language πŸ—£οΈ

The AI-powered filename generation is no longer limited to French! We've made the prompt language fully configurable, allowing you to generate document names in any language supported by your Ollama model.

Changes

  • Configurable Language Setting: New LANGUAGE environment variable controls the language used for AI-generated filenames
  • Dynamic Prompt System: Converted hardcoded French prompts to a flexible template-based system
  • Default Language: Ships with English as the default
  • Docker Integration: Added LANGUAGE configuration to Docker Compose setup
  • Documentation Updates: README now includes the new configuration option with usage examples

Configuration

Set your preferred language via environment variable:

export LANGUAGE=spanish
# Or: english, german, italian, etc.

Or in Docker Compose:

environment:
  - LANGUAGE=spanish

Technical Details

  • Modified config/config.go to load and store language preference
  • Updated agent/ollama.go to use dynamic prompt templates
  • Maintains backward compatibility with sensible defaults

Upgrade Notes

Existing installations will automatically use English as the default language. To maintain French filenames, set:

LANGUAGE=french

Full Changelog: View commits since v1.0.0

πŸ“¦ Montscan v1.0.0

Choose a tag to compare

@sh4den sh4den released this 11 Feb 00:46

This release represents a complete architectural overhaul. We've migrated the entire codebase from Python to Go to achieve:

  • ⚑ Superior Performance: Native compilation delivers instant startup times and minimal memory footprint compared to the Python interpreter
  • 🎯 Type Safety: Go's static typing eliminates entire classes of runtime errors that plagued the Python version
  • πŸ“¦ Zero Dependencies: Single binary deployment - no more Python virtual environments, pip dependencies, or version conflicts
  • πŸ”’ Better Concurrency: Go's goroutines handle concurrent FTP uploads and AI processing far more efficiently than Python's threading
  • πŸš€ Simpler Deployment: Cross-compile for any platform with a single go build command - no more OS-specific Python runtime issues
  • πŸ’ͺ Production Ready: Go's robust standard library and mature ecosystem provide better reliability for long-running services

πŸ™ Acknowledgments

Built with: