April 2026 TLDR setup for Ollama + Gemma 4 on a Mac mini (Apple Silicon) — auto-start, preload, and keep-alive
- Mac mini with Apple Silicon (M1/M2/M3/M4/M5)
- At least 16GB unified memory for Gemma 4 (default 8B)
- macOS with Homebrew installed
April 2026 TLDR setup for Ollama + Gemma 4 on a Mac mini (Apple Silicon) — auto-start, preload, and keep-alive
| version: '3.8' | |
| services: | |
| mongodb: | |
| image: mongo:7.0 | |
| container_name: mongodb | |
| environment: | |
| - MONGO_INITDB_ROOT_USERNAME=mongo | |
| - MONGO_INITDB_ROOT_PASSWORD=mongo | |
| - MONGO_INITDB_DATABASE=mongodb |
| version: '3.8' | |
| services: | |
| postgres: | |
| image: postgres:16 | |
| container_name: postgres | |
| environment: | |
| - POSTGRES_USER=postgres | |
| - POSTGRES_PASSWORD=postgres | |
| - POSTGRES_DB=postgres |
| version: '3.8' | |
| services: | |
| qdrant: | |
| image: qdrant/qdrant | |
| container_name: qdrant | |
| environment: | |
| - QDRANT__SERVICE__API_KEY=your_secret_api_key_here | |
| volumes: | |
| - qdrant_data:/qdrant/storage |
| version: "3.7" | |
| services: | |
| n8n: | |
| image: docker.n8n.io/n8nio/n8n | |
| restart: always | |
| environment: | |
| - N8N_HOST=n8n.malif.dev | |
| - N8N_PORT=5678 | |
| - N8N_PROTOCOL=https | |
| - NODE_ENV=production |
| FROM php:7.4-fpm | |
| # Install dependencies | |
| RUN apt-get update && \ | |
| apt-get install -y telnet curl unixodbc unixodbc-dev gnupg2 libgssapi-krb5-2 wget iputils-ping openssl zlib1g-dev libzip-dev sendmail | |
| # Add Microsoft repo for SQL Server ODBC Driver | |
| RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \ | |
| curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list |
| package main | |
| import ( | |
| "fmt" | |
| "log" | |
| "net/http" | |
| _ "net/http/pprof" // Import for pprof | |
| ) | |
| func main() { |
| FROM golang:alpine3.18 AS build | |
| # Important: | |
| # Because this is a CGO enabled package, you are required to set it as 1. | |
| ENV CGO_ENABLED=1 | |
| RUN apk add --no-cache \ | |
| # Important: required for go-sqlite3 | |
| gcc \ | |
| # Required for Alpine |
| import json | |
| import sys | |
| def parse_json_to_html(json_data): | |
| vulnerabilities = json_data.get('vulnerabilities', []) | |
| # Start HTML document | |
| html = ''' | |
| <html> | |
| <head> |