Mezzo is an open-source, privacy-focused front-end for Tenor that allows you to browse and view GIFs without Google's tracking and advertising systems.
For public instances of Mezzo, see mezzo-instances.
We have pre-built images you can run.
To run the latest stable version of Mezzo (recommended):
docker run -p8006:8006 gitfield.org/fsky/mezzo:latestTo run the canary (unstable) version of Mezzo built from the latest Git commit:
docker run -p8006:8006 gitfield.org/fsky/mezzo:canaryIf you are using Podman, the process is the same. Just replace docker with podman in the command.
You can find a compose file in contrib/compose/compose.yaml. Simply download it and run:
docker compose up -d
You can find a Quadlet file in contrib/quadlet/mezzo.container. Download it and place it into ~/.config/containers/systemd/ or /etc/containers/systemd/. After that, run:
systemctl --user daemon-reload
systemctl --user start mezzo.service
Binaries are provided for Linux, Windows, macOS, FreeBSD, OpenBSD, NetBSD, and Illumos for amd64, arm64, and i386. You can download them from the releases page.
Once downloaded, run the binary directly. On Unix-like systems you may need to mark it as executable first:
chmod +x mezzoLinux packages are also published for Debian/Ubuntu (.deb), RPM-based distributions (.rpm), and Arch Linux (.pkg.tar.zst).
The packages install:
- the
mezzobinary into/usr/bin - a systemd service unit
- a distro-appropriate environment file:
/etc/default/mezzoon Debian/etc/sysconfig/mezzoon RPM-based systems/etc/conf.d/mezzoon Arch Linux
After installation, edit the environment file if needed, then enable the service:
sudo systemctl enable --now mezzoFor systemd, you can find an example service file in contrib/systemd/mezzo.service.
For OpenRC, you can find an example service script and configuration file in contrib/openrc/.
This program is written in Go. You need Go 1.25 or later.
You can build a binary using:
go build -o mezzo ./cmd/mezzoThe application can be configured using the following environment variables:
| Variable | Required | Default | Description |
|---|---|---|---|
MEZZO_PORT |
No | 8006 |
Port to run on. |
MEZZO_PATCHES_URL |
No | Link to any patches that were applied. Only set this if your instance runs modified source code. | |
MEZZO_CACHE_DISABLED |
No | false |
Disable in-memory caching entirely. |
MEZZO_CACHE_GIF_TTL |
No | 1h |
How long to cache GIF page metadata. Accepts Go duration strings (e.g. 30m, 2h). |
MEZZO_CACHE_GIF_MAX |
No | 1000 |
Maximum number of GIF pages to keep in cache. |
MEZZO_CACHE_SEARCH_TTL |
No | 10m |
How long to cache search results. Accepts Go duration strings. |
MEZZO_CACHE_SEARCH_MAX |
No | 500 |
Maximum number of search result pages to keep in cache. |
MEZZO_CACHE_PROFILE_TTL |
No | 30m |
How long to cache user profile pages. Accepts Go duration strings. |
MEZZO_CACHE_PROFILE_MAX |
No | 200 |
Maximum number of user profiles to keep in cache. |
Note
For backward compatibility, PORT and PATCHES_URL (without the MEZZO_ prefix) are still accepted as fallbacks.
Copyright © 2026-present FSKY. This software is distributed under the AGPL-3.0 license.


