Releases: sh4den/Montscan
Release list
π¦ Montscan v1.3.0
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, andFOLDER_POLL_INTERVAL_SECsettings to monitor a local directory for new PDFs - Rename-in-Place or Move-to-Output: Omit
FOLDER_OUTPUT_DIRto rename files where they sit, or set it to move renamed files to a separate output directory - Docker GPU Toggle: New
COMPOSE_PROFILESandOLLAMA_GPU_COUNTvariables 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=5Enable GPU acceleration for Ollama in Docker Compose:
COMPOSE_PROFILES=gpu
OLLAMA_GPU_COUNT=1Leave COMPOSE_PROFILES=cpu (or unset) for CPU-only.
Technical Details
- Added
server/folder.gofor the folder watcher loop andproviders/local.gofor rename/move handling - Updated
config/config.goandmain.goto wire up the new folder ingress - Updated
agent/agent.goto support the local provider - Split the Ollama service in
docker-compose.ymlintoollama(CPU) andollama-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
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
providerspackage 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=/incomingOr 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=/incomingTechnical Details
- Added Samba provider implementation in
providers/samba.go - Extended upload flow to support provider-based routing (
providerspackage 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
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
LANGUAGEenvironment 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
LANGUAGEconfiguration 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=spanishTechnical Details
- Modified
config/config.goto load and store language preference - Updated
agent/ollama.goto 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=frenchFull Changelog: View commits since v1.0.0
π¦ Montscan v1.0.0
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 buildcommand - 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:
- goftp/server - FTP server implementation
- gowebdav - WebDAV client
- fatih/color - Terminal styling
- Ollama - Local AI inference