No description
- TypeScript 89.6%
- CSS 4.9%
- Java 2.1%
- Shell 1.7%
- JavaScript 1.1%
- Other 0.6%
|
All checks were successful
docker / build-and-deploy (push) Successful in 1m13s
|
||
|---|---|---|
| .forgejo/workflows | ||
| apps | ||
| assets/screenshots | ||
| backend | ||
| docs | ||
| packages | ||
| scripts | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| docker-compose.yml | ||
| eslint.config.js | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
Iris
A self-hosted visual reference library for drawing and painting that stores every reference locally.
![]() |
![]() |
![]() |
![]() |
| 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 logicapps/web: React + Vite web appbackend: 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.



