Skip to content

Releases: sh4den/Montscan

πŸ“¦ 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: