A nitter-like frontend for instagram
  • Lua 79.5%
  • CSS 18.4%
  • Dockerfile 2.1%
Find a file
irelephant c4c0f8ccb2
All checks were successful
Build and Push Docker Image / build (push) Successful in 2m16s
Log if redis connection fails when caching posts
2026-04-06 21:37:32 +01:00
.forgejo/workflows Update .forgejo/workflows/docker.yml 2026-03-24 20:22:41 +01:00
conf Add keys for caching timelines 2026-04-06 21:29:38 +01:00
lib Log if redis connection fails when caching posts 2026-04-06 21:37:32 +01:00
models fixed efecc70a12 2025-12-17 22:00:49 +00:00
static Tweak settings page 2026-03-31 13:46:43 +01:00
views Show videos in a carousel on user timelines 2026-04-06 21:30:39 +01:00
.dockerignore Make Docker image smaller 2025-12-16 04:26:00 +01:00
.gitignore Add rockspec, remove rockspec from gitignore 2026-01-17 22:44:27 +00:00
app.lua Cache posts fetched through post pages, handle network errors better and clean up code for posts a bit 2026-04-05 22:52:14 +01:00
CLAUDE.md Add CLAUDE.md 2026-01-18 00:17:24 +01:00
config.lua Add support for fetching posts through post pages instead of graphql. 2026-03-22 14:28:08 +00:00
docker-compose.yml Big update: add caching with redis, display videos in a carousel with other images. 2025-12-25 23:40:30 +00:00
Dockerfile Fix dockerfile 2026-03-24 20:05:11 +00:00
instances.json docs: add kittygram.kareem.one to instances.json and README 2026-04-02 17:49:30 +07:00
kittygram-dev-1.rockspec Add rockspec, remove rockspec from gitignore 2026-01-17 22:44:27 +00:00
LICENSE Merge branch 'main' of codeberg.org:irelephant/kittygram 2025-11-16 19:20:48 +00:00
migrations.lua fixed efecc70a12 2025-12-17 22:00:49 +00:00
mime.types first commit 2025-08-13 22:05:10 +01:00
models.lua first commit 2025-08-13 22:05:10 +01:00
nginx.conf Let some docker options be configurable through envs; fix redis handling on posts. 2025-12-28 22:38:31 +00:00
README.md docs: add kittygram.kareem.one to instances.json and README 2026-04-02 17:49:30 +07:00
screenshot.png Add screenshot 2026-03-24 17:54:20 +00:00

Kittygram

License: AGPL-3.0

Kittygram is an anonymous, privacy-friendly, lightweight, and open-source Instagram frontend inspired by nitter. It offers a clean, fast way to browse Instagram without the usual clutter or tracking.

Why

The official Instagram web interface is heavy on JavaScript, slow to load, and filled with pop-ups. Kittygram avoids all of that by serving fully prerendered pages, making it faster and easier to use.

Kittygram also helps you avoid the heavy tracking instagram does, as all requests are handled by kittygram.

Limitations

  • As of now, only the first ~20 comments on a post can be fetched.
  • Instagram aggresively rate-limits requests coming from servers, which can make running a public instance difficult.

Screenshot

Instances

URL Description
https://kittygr.am An instance of kittygram operated by FSKY.
https://kittygram.irelephant.net An instance of kittygram run by its creator.
https://kittygram.kareem.one An instance of kittygram operated by Kareem behind Cloudflare.
https://kittygram.nexussfan.cz An instance of kittygram operated by NexusSfan.

Installation

Note

I highly recommend you install kittygram using Docker. Luarocks can be finicky a lot of the time.

Method 1: Docker

  1. Install docker.
  2. Clone and move to Kittygram folder.
git clone https://codeberg.org/irelephant/kittygram.git
cd kittygram
  1. Start the container.
sudo docker compose up

Method 2: Running from scratch

  1. Install openresty.
  2. Install redis or valkey.
  3. Install luarocks (likely in your distro's package manager).
  4. Clone and move to Kittygram folder.
git clone https://codeberg.org/irelephant/kittygram.git
cd kittygram
  1. Run:
luarocks init --lua-version=5.1 --lua-versions=5.1
CC="gcc -std=gnu99" luarocks build
  1. Run lapis migrate, then lapis serve production to run the project.

Contact

Feel free to join the Matrix room, or email me at irelephant@disroot.org.


Kittygram is licensed under the AGPL-3.0.

Icon made by nulla.