No description
  • TypeScript 89.6%
  • CSS 4.9%
  • Java 2.1%
  • Shell 1.7%
  • JavaScript 1.1%
  • Other 0.6%
Find a file
Gjessing1 0791e1716b
All checks were successful
docker / build-and-deploy (push) Successful in 1m13s
chore(deploy): move host deploy dir to ~/docker/<Category>/<svc>
2026-10-28 21:32:58 +00:00
.forgejo/workflows chore(deploy): move host deploy dir to ~/docker/<Category>/<svc> 2026-10-28 21:32:58 +00:00
apps feat: Explore the National Gallery of Art from a local catalogue copy 2026-10-17 16:07:55 +00:00
assets/screenshots docs(readme): add app screenshots 2026-10-28 18:52:45 +00:00
backend feat: Explore the National Gallery of Art from a local catalogue copy 2026-10-17 16:07:55 +00:00
docs feat: Explore the National Gallery of Art from a local catalogue copy 2026-10-17 16:07:55 +00:00
packages feat: Explore the National Gallery of Art from a local catalogue copy 2026-10-17 16:07:55 +00:00
scripts chore(deploy): move host deploy dir to ~/docker/<Category>/<svc> 2026-10-28 21:32:58 +00:00
.dockerignore chore: scaffold iris from project-shell 2026-09-29 19:59:22 +00:00
.editorconfig chore: scaffold iris from project-shell 2026-09-29 19:59:22 +00:00
.env.example chore(deploy): move host deploy dir to ~/docker/<Category>/<svc> 2026-10-28 21:32:58 +00:00
.gitignore chore: scaffold iris from project-shell 2026-09-29 19:59:22 +00:00
.nvmrc chore: scaffold iris from project-shell 2026-09-29 19:59:22 +00:00
.prettierignore feat: add Android app shell with share target 2026-09-30 09:48:56 +00:00
.prettierrc.json chore: scaffold iris from project-shell 2026-09-29 19:59:22 +00:00
docker-compose.yml chore(deploy): move host deploy dir to ~/docker/<Category>/<svc> 2026-10-28 21:32:58 +00:00
eslint.config.js feat: add Android app shell with share target 2026-09-30 09:48:56 +00:00
package-lock.json feat: import marked Obsidian notes as references 2026-09-30 14:16:39 +00:00
package.json feat: add Android app shell with share target 2026-09-30 09:48:56 +00:00
README.md docs(readme): add app screenshots 2026-10-28 18:52:45 +00:00
tsconfig.base.json chore: scaffold iris from project-shell 2026-09-29 19:59:22 +00:00
tsconfig.json feat: add persistent storage and original media store 2026-09-29 20:53:06 +00:00

Iris

A self-hosted visual reference library for drawing and painting that stores every reference locally.

Reference library as a masonry grid of paintings and drawings Explore searching the National Gallery of Art's open collection, with works already in the library marked Viewer with drawing aids: a three-value band study and a grid over a portrait Timed practice session counting down on one reference
Library Explore open collections Drawing aids Timed practice

Screenshots: Iris 0.1.2 (commit 465a57c), taken 28 October 2026. Artworks are CC0 images from the National Gallery of Art, Washington.

Development

nvm use            # Node 24 locally and in Docker
npm install
cp .env.example .env
npm run dev        # tsc watch · backend http://localhost:3046 · web http://localhost:5173
npm run gate       # format → lint → build → typecheck → test (+ docker build if packaging changed)

Layout

  • packages/core: shared domain types and logic
  • apps/web: React + Vite web app
  • backend: Fastify API; serves the built web app in production

Deployment

Pushing to main builds the image on Forgejo Actions, pushes it to git.gjessing.io/gjessing1/iris-backend and redeploys it on the host. Health check: GET /api/health.