meme-search logo

meme-search

neonwatty/meme-search

An open-source meme search engine designed for self-hosting using Python, Ruby and Docker.

GraphCanon updated today · GitHub synced today

717 stars27 forksLast push 2w Ruby Apache-2.0

Decision brief

meme-search is an open-source meme search engine for self-hosting that uses Python, Ruby and Docker with semantic searching capabilities via machine learning algorithms.

Good fit when

  • You require a specialized tool designed to specifically locate memes in your collection or the web using a self-hosted solution.
  • Your project involves homelab setups where integrating AI functionalities like semantic search is beneficial for meme retrieval.

Avoid when

  • The need arises for a ready-to-use cloud-based service without managing local hosting configurations, as meme-search requires setting up locally using Docker.
  • If the focus is on general-purpose data retrieval or vector database management that does not involve memes or specific self-hosted setups.

Observed Jul 14, 2026 · Source: enrich:decision_facts

Verify the decision

Maintenance and security

Full trust report
Maintenance
Active (16d since push)
As of today
Provenance
Not a fork · Personal account
As of today
Security (OSV)
No lockfile
As of 1mo

Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.

Install

gem install meme-search
RubyGems

Similar tools

Same-category neighbours. No typed graph edges are catalogued for this tool yet.

Evidence and technical details

Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.

Overview

The repository hosts the codebase for a meme search engine that can be self-hosted locally with support from Python, Ruby, and Docker. It employs machine learning techniques for semantic searching.

Capability facts

Deploy
Self-host

Source: dockerfile:docker-compose.yml · Aug 22, 2026

Docker
Dockerfile present

Source: dockerfile:docker-compose.yml · Aug 22, 2026

MCP server
No MCP server detected

Source: repo_scan · Aug 22, 2026

Languages
ruby, javascript, typescript

Source: github.language+package.json · Aug 22, 2026

Categories

Compatibility

Sourced claims from the README excerpt - not unsourced marketing copy.

Node.js runtimeNode.js

Source: README excerpt (regex_v1, Aug 22, 2026)

- Node.js 20 LTS
Source link
Python runtimePython

Source: README excerpt (regex_v1, Aug 22, 2026)

# A Meme Search Engine built to self-host in Python, Ruby, and Docker
Source link

Tags

README

A Meme Search Engine built to self-host in Python, Ruby, and Docker

Use AI to index your memes by their content and text, making them easily retrievable for your meme warfare pleasures.

By default, processing from image-to-text extraction, to vector embedding, to search is performed locally. You can also use an OpenAI-compatible vision API for description generation while keeping embeddings and search local.

Visit the Meme Search project site for a visual feature overview, or continue below for installation and configuration details.

Search beyond the web app. Meme Search now includes a documented, token-authenticated Search API v1, a dependency-free local CLI, and an experimental unpacked Chromium popup. The API is read-only and officially supported on loopback; it also gives community integrations a stable boundary that does not expose your database.

Watch the 16-second app-and-CLI demo.

meme-search-2.0-demo

This repository contains the services and web app for indexing, searching, and retrieving your memes with semantic and keyword search.


Quick start

git clone https://github.com/neonwatty/meme-search.git
cd meme-search
docker compose up

Open http://localhost:3000, then drag, drop, or paste images on the upload page. The first local description generation downloads the selected model, so it takes longer than later generations.

The web UI binds to 127.0.0.1 by default because it does not include user authentication. Official support is loopback-only for API v1 and the included clients. API bearer tokens protect only the versioned integration endpoints; they do not protect the web UI or settings. Direct public exposure is unsupported. Proxy/VPN operation is advanced and unsupported; its authentication, TLS, and network controls are entirely the operator's responsibility.

A table of contents for the remainder of this README:

  • Meme search

    • Features
    • Requirements
    • Installation instructions
    • Time to first generation / downloading models
    • Index your memes
    • Search API and local integrations
    • Custom bind address and app port
    • Building the app locally with Docker
    • Running tests
  • Discord server

  • Changelog

  • Feature requests and contributing


Requirements

For Docker deployment (recommended):

  • Docker and Docker Compose

For local development:

  • Ruby 3.4.2
  • Rails 8.0.4
  • Python 3.12
  • Node.js 20 LTS
  • PostgreSQL 17 with pgvector extension

We recommend using mise for managing Ruby, Python, and Node.js versions. See CLAUDE.md for detailed setup instructions.


Installation instructions

From the repository root, start the server cluster with Docker Compose:

docker compose up

This pulls and starts containers for the app, database, Solid Queue job worker, and local auto description generator. The app runs on port 3000 and is available locally at:

http://localhost:3000

The Compose files store app data in local bind-mounted directories so upgrades keep using the same files:

  • ./meme_search/db_data/meme-search-db for Postgres data
  • ./meme_search/direct-uploads for drag-and-drop uploads
  • ./meme_search/db_data/image_to_text_generator for generator queue data
  • ./meme_search/models for model

For agents

This page has a .md twin and JSON over the API.

Was this helpful?

Anonymous feedback helps us improve pages and translations.