1
0
mirror of https://github.com/containers/ramalama.git synced 2026-02-05 15:47:26 +01:00
Commit Graph

169 Commits

Author SHA1 Message Date
Mike Bonnet
d06f6d3519 remove whisper.cpp from all images
Remove build and installation of whisper.cpp, and installation of ffmpeg.
Rename build_llama_and_whisper.sh to build_llama.sh.
Update Containerfiles to reference new script name.
Consolidate management of cmake args in build_llama.sh.
Remove references to whisper-server in various locations.

Signed-off-by: Mike Bonnet <mikeb@redhat.com>
2026-01-27 16:34:24 -08:00
Oliver Walsh
3e5d09714c Apply suggestion from @gemini-code-assist[bot]
Signed-off-by: Oliver Walsh <owalsh@redhat.com>

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-09 17:52:53 +00:00
Oliver Walsh
aaacfa47f8 Add github star history graph to README
Signed-off-by: Oliver Walsh <owalsh@redhat.com>
2026-01-09 17:39:18 +00:00
Daniel J Walsh
b9fe3f0040 Add comprehensive uninstall instructions to README
- Add detailed uninstall section covering all installation methods
- Document pip uninstall command
- Document Fedora DNF removal command
- Document macOS pkg uninstaller steps
- Add instructions for removing user data and configuration files
- Document locations of artifacts in home directory (~/.local/share/ramalama and ~/.config/ramalama)
- Update 'In development' section to reference new uninstall instructions

Fixes #2243

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2025-12-15 11:53:46 -05:00
Daniel J Walsh
c0096a65ba Add self-contained macOS installer package
Fixes #812

This commit adds a mechanism to create self-contained macOS installer
packages (.pkg) that bundle Python and all dependencies, eliminating
the need for users to install Python separately.

**New Features:**

1. **PyInstaller Spec File** (ramalama.spec)
   - Configures PyInstaller to create standalone executable
   - Bundles all ramalama modules and dependencies
   - Includes configuration files, man pages, and shell completions
   - Creates macOS app bundle structure

2. **Build Script** (scripts/build_macos_pkg.sh)
   - Automated build process for macOS .pkg installer
   - Uses PyInstaller to create standalone binary
   - Packages everything into macOS installer format
   - Includes post-install script for PATH configuration
   - Generates installer with welcome/readme/conclusion screens

3. **GitHub Actions Workflow** (.github/workflows/build-macos-installer.yml)
   - Automatically builds macOS installer on release
   - Runs on macOS runners with proper dependencies
   - Uploads installer as release asset
   - Generates SHA256 checksums for verification
   - Can be triggered manually for testing

4. **Documentation** (docs/MACOS_INSTALL.md)
   - Comprehensive installation guide for macOS users
   - Multiple installation methods documented
   - Troubleshooting section
   - Prerequisites and system requirements
   - Uninstallation instructions

5. **README Update**
   - Added macOS installer as primary installation method
   - Links to detailed installation guide

**Benefits:**
- No Python installation required for end users
- Single-click installation experience
- Includes all dependencies in one package
- Follows macOS packaging best practices
- Automatic PATH configuration
- Professional installer UI with instructions

**Installation:**
Users can now download RamaLama-VERSION-macOS-Installer.pkg from
GitHub Releases and install with a simple double-click or:
  sudo installer -pkg RamaLama-*-macOS-Installer.pkg -target /

The installer places files in /usr/local/ following macOS conventions.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2025-11-15 08:10:19 -05:00
Daniel J Walsh
9ee3e19373 Add comprehensive Windows platform support
Enable RamaLama to run on Windows with Docker/Podman in a VM by fixing
platform-specific compatibility issues throughout the codebase.

Key changes:

Path handling:
- Add path_utils.py module for cross-platform path conversion
- Implement normalize_host_path_for_container() to convert Windows paths
  (C:\Users\...) to container-friendly format (/c/Users/...)
- Update RAG and transport modules to use path conversion for volume mounts
- Fix Ollama cache detection to use os.path.expanduser() for HOME

Configuration:
- Add Windows-specific config paths (APPDATA, LOCALAPPDATA)
- Make DEFAULT_CONFIG_DIRS platform-aware (Unix vs Windows)
- Add Windows OS classifier to pyproject.toml
- Update shortnames.py to use Windows-specific paths

Unix-only APIs:
- Make os.geteuid() calls conditional (not available on Windows)
- Update get_default_store() and add_user() to check for geteuid
- Add conditional checks before calling Unix-specific functions

Signal handling:
- Make SIGKILL, SIGALRM conditional (Windows only supports SIGINT/SIGTERM)
- Add threading.Timer fallback for daemon idle checks on Windows
- Implement conditional signal.alarm() checks in chat and daemon
- Add graceful fallback in process cleanup for missing SIGKILL

File locking:
- Replace fcntl (Unix-only) with platform-specific locking
- Use msvcrt.locking() on Windows for file locking
- Maintain fcntl.flock() for Unix/Linux systems
- Add proper exception handling for both platforms

Model store (symlinks):
- Add create_file_link() for cross-platform file linking
- Try hardlink first (works on Windows without admin, space-efficient)
- Fall back to symlink (Unix/Mac and Windows with developer mode)
- Final fallback to copy (always works but uses more space)
- Update all transport modules to use create_file_link()
- Replace os.symlink() calls in model store, ollama, huggingface, modelscope

This allows Windows users to run RamaLama with containerized models using
Docker Desktop or Podman Desktop, with proper path translation between the
Windows host and Linux containers, and without requiring admin privileges
or developer mode for the model store.

Cursor-AI-Generated

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2025-11-14 16:53:33 -05:00
Ian Eaves
3c76c21d90 updates registry url link
Signed-off-by: Ian Eaves <ian.k.eaves@gmail.com>
2025-11-06 17:16:47 -06:00
Ian Eaves
9ffed9402d removed whitespace
Signed-off-by: Ian Eaves <ian.k.eaves@gmail.com>
2025-11-06 09:52:28 -06:00
Ian Eaves
e1174b0e08 small cleanup
Signed-off-by: Ian Eaves <ian.k.eaves@gmail.com>
2025-11-05 11:18:53 -06:00
Ian Eaves
e03de65576 adds community meetup references to readme
Signed-off-by: Ian Eaves <ian.k.eaves@gmail.com>
2025-11-05 11:17:08 -06:00
Daniel J Walsh
a3e8015ddb Merge pull request #2076 from jpodivin/docs-rag
Improving ramalama rag section in README.md
2025-10-30 08:18:06 -04:00
Oliver Walsh
12be40da16 Fix the rpm name in docs
The rpm name changed from python3-ramalama to ramalama in
https://github.com/containers/ramalama/pull/1693.

The rpm name in README.md was updated at that time but the change seems to have
been lost in a subsequent commit.

Signed-off-by: Oliver Walsh <owalsh@redhat.com>
2025-10-30 10:55:34 +00:00
Jiri Podivin
539ed64fc0 Normalize CLI usage and add followup command
Signed-off-by: Jiri Podivin <jpodivin@redhat.com>
2025-10-30 09:26:42 +01:00
Jiri Podivin
3da255c3a0 Fix formatting of details for ramalama-rag
Signed-off-by: Jiri Podivin <jpodivin@redhat.com>
2025-10-29 10:48:25 +01:00
Yariv Rachmani
241f3e8533 Renaming huggingface-cli -> hf
Based on that announcment
https://huggingface.co/blog/hf-cli?utm_source=chatgpt.com
This change is a straightforward rename that affects documentation (README.md, man pages, docsite),
Python implementation (huggingface.py transport and base class), and test infrastructure to align with Hugging Face's current CLI tooling.

Signed-off-by: Yariv Rachmani <yrachman@redhat.com>
2025-10-22 15:19:10 +03:00
Michael Engel
6e3088357d Added inference specification files to info command
Signed-off-by: Michael Engel <mengel@redhat.com>
2025-10-21 14:54:01 +02:00
Daniel J Walsh
31252f10fe Apply suggestion from @gemini-code-assist[bot]
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-14 02:03:05 -04:00
Kush Gupta
952ac52969 docs: Update docs with correct MLX installation instructions
Signed-off-by: Kush Gupta <kushalgupta@gmail.com>
2025-10-13 09:39:53 -04:00
steven pousty
5ad52fcd77 Link to Ollama registry catalong and fix capitalizations
Replaces: https://github.com/containers/ramalama/pull/1905

Signed-off-by: steven pousty <steve.pousty@gmail.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2025-10-09 07:33:36 +01:00
Ian Eaves
17c4f73e04 readme updates
Signed-off-by: Ian Eaves <ian.k.eaves@gmail.com>
2025-10-06 09:52:48 -05:00
Ian Eaves
8093a18b9a sourcery requests
Signed-off-by: Ian Eaves <ian.k.eaves@gmail.com>
2025-10-01 12:34:21 -05:00
Ian Eaves
3fec8c2f4f reintroduce readme updates, and additional documentation changes
Signed-off-by: Ian Eaves <ian.k.eaves@gmail.com>
2025-10-01 11:02:57 -05:00
Charlie Doern
da244531c3 Revert "readme updates and python classifiers"
This reverts commit a5c6e16b88.

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2025-09-17 09:23:49 -04:00
Charlie Doern
0ba81d9977 Revert "license anchor"
This reverts commit b934fe696b.

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2025-09-17 09:23:49 -04:00
Charlie Doern
a2ace648db Revert "switched tab to spaces"
This reverts commit 4694c2e45b.

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2025-09-17 09:23:49 -04:00
Charlie Doern
aad952b8d8 Revert "adds roadmap reference"
This reverts commit c1fdcc58a2.

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2025-09-17 09:23:49 -04:00
Ian Eaves
c1fdcc58a2 adds roadmap reference
Signed-off-by: Ian Eaves <ian.k.eaves@gmail.com>
2025-09-04 09:44:40 -05:00
Ian Eaves
4694c2e45b switched tab to spaces
Signed-off-by: Ian Eaves <ian.k.eaves@gmail.com>
2025-09-04 09:39:11 -05:00
Ian Eaves
b934fe696b license anchor
Signed-off-by: Ian Eaves <ian.k.eaves@gmail.com>
2025-09-03 15:08:22 -05:00
Ian Eaves
a5c6e16b88 readme updates and python classifiers
Signed-off-by: Ian Eaves <ian.k.eaves@gmail.com>
2025-09-03 13:14:32 -05:00
Daniel J Walsh
b44c16f34f Fixed error in readme to ensure consistency.
Replaces: https://github.com/containers/ramalama/pull/1724

Signed-off-by: Bobby Pinard <bobby.pinard@gmail.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2025-08-06 10:34:36 -04:00
Daniel J Walsh
5b46b23f2e README: remove duplicate statements
Simplify ramalama's top-level description. Remove the duplicate
statements.

Also make sure all references to PyPI are spelled this way.

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-07-17 06:26:55 -04:00
Stephen Smoogen
8ab242f820 Move rpms (#1693)
* Start adding rpm/ramalama.spec for Fedora

Add a ramalama.spec to sit next to python-ramalama.spec while we get
this reviewed. Change various configs so they are aware of
ramalama.spec

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>

* Add needed obsoletes/provides in base rpm to start process.

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>

* Try to fix CI problems with initial mr

The initial MR puts two spec files in the same directory which was
causing problems with the CI. This splits them off into different
directories which should allow for the tooling to work.

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>

* Finish move of Fedora rpm package to new name.

Put changes into various files needed to allow for new RPM package
`ramalama` to build in Fedora infrastructure versus python3-ramalama.

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>

* Fix problem with path names lsm5 caught

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>

---------

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
Co-authored-by: Stephen Smoogen <ssmoogen@redhat.com>
2025-07-14 10:13:49 -04:00
Mario Antonio Bortoli Filho
b5826c96e9 README: fix model name and improve CUDA section
- Corrected the model name under the Benchmark section; previous name was not available in Ollama's registry.

- Added instructions to switch between CPU-only mode and using all available GPUs via CUDA_VISIBLE_DEVICES.

Signed-off-by: Mario Antonio Bortoli Filho <mario@bortoli.dev>
2025-07-14 09:43:16 -03:00
Eric Curtin
5b20aa4e2c mlx fixes
mlx_lm.server is the only one in my path at least on my system.

Also, printing output like this which doesn't make sense:

Downloading huggingface://RedHatAI/Llama-3.2-1B-Instruct-FP8-dynamic/model.safetensors:latest ...
Trying to pull huggingface://RedHatAI/Llama-3.2-1B-Instruct-FP8-dynamic/model.safetensors:latest ...

Also remove recommendation to install via `brew install ramalama`, skips installing Apple specific
dependancies.

Signed-off-by: Eric Curtin <ecurtin@redhat.com>
2025-07-08 15:57:25 +01:00
Kush Gupta
d77b7ce231 mlx runtime with client/server
Signed-off-by: Kush Gupta <kushalgupta@gmail.com>
2025-07-03 09:27:00 -04:00
Aurelie Vache
9517fbb90a feat: add install command via homebrew
Signed-off-by: scraly <scraly@gmail.com>
2025-06-18 15:05:35 +02:00
Eric Curtin
5fe848eb93 Add GGML_VK_VISIBLE_DEVICES env var
Can be used to manually select vulkan device

Signed-off-by: Eric Curtin <ecurtin@redhat.com>
2025-06-17 11:57:16 +01:00
Eric Curtin
3f012ba00e Merge pull request #1502 from alaviss/push-qsrlulqsylxk
model: always pass in GPU offloading parameters
2025-06-17 10:20:02 +01:00
Daniel J Walsh
3cd6a59a76 Apply suggestions from code review
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2025-06-15 22:16:18 +02:00
Daniel J Walsh
a21fa39b45 Add ramalama chat command
For now we will just add the chat command, next PR will remove the
external chat command and just use this internal one.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2025-06-15 21:56:36 +02:00
Leorize
6bac6d497a readme: apply styling suggestions
Signed-off-by: Leorize <leorize+oss@disroot.org>
2025-06-10 17:53:49 -05:00
Leorize
5a3e55eb0c model: always pass in GPU offloading parameters
This does nothing on systems with no GPUs, but on Vulkan-capable
systems, this would automatically offload the model to capable
accelerators.

Take this moment to claim Vulkan support in README also.

Signed-off-by: Leorize <leorize+oss@disroot.org>
2025-06-10 17:46:14 -05:00
Xiaodong Ye
ae79ab16b2 Add doc for Moore Threads GPU
Signed-off-by: Xiaodong Ye <xiaodong.ye@mthreads.com>
2025-05-15 10:26:21 +08:00
Eric Curtin
f7296d0e23 This script is not macOS only
This script works for many platforms and generally does the right
thing.

Signed-off-by: Eric Curtin <ecurtin@redhat.com>
2025-05-12 17:07:13 +01:00
Daniel J Walsh
e06824a572 Merge pull request #1381 from makllama/xd/modelscope
Add support for modelscope and update doc
2025-05-12 06:17:32 -04:00
Song Liu
4beb41aca6 update the shortnames path according to the shortnames.py
Signed-off-by: Song Liu <soliu@redhat.com>
2025-05-12 16:01:11 +08:00
Xiaodong Ye
15da984fe0 Add support for modelscope
Signed-off-by: Xiaodong Ye <xiaodong.ye@mthreads.com>
2025-05-10 19:51:08 +08:00
Sergio Arroutbi
9beeb29c59 Fix typo (RAMALAMA_TRANSPORTS->RAMALAMA_TRANSPORT)
Signed-off-by: Sergio Arroutbi <sarroutb@redhat.com>
2025-05-06 13:06:28 +02:00
Daniel J Walsh
ee588cecee Switch all Ramalama to RamaLama
Fix Ramalama names that have snuck into the repo.
Cleanup whitespace in README.md doc.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2025-05-01 06:13:42 -04:00