Skip to content

openSUSE/kudos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

170 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’š openSUSE Kudos Recognition Platform

kudos-live

image

openSUSE Kudos is a lightweight web application that allows contributors to recognize each other through positive feedback.

It provides:

  • ๐Ÿ’ฌ Kudos messages
  • ๐Ÿ… Badges
  • ๐Ÿ“ˆ Activity feed
  • ๐Ÿค– Optional Slack & Matrix bots

Originally developed during SUSE Hackweek 25.

This repository contains:

  • Backend: Express + Prisma
  • Frontend: Vue + Vite

๐ŸŒ Public Instance

A public instance is available:
๐Ÿ‘‰ https://kudos.opensuse.org

๐Ÿ’ฌ Matrix room (bot + community):
๐Ÿ‘‰ https://matrix.to/#/#chat:opensuse.org


๐Ÿš€ Deployment (openSUSE)

Kudos is packaged and deployed within openSUSE infrastructure:


๐Ÿ—„๏ธ Database (Prisma & Seeding)

When updating schema or refreshing predefined data (e.g. badges, categories):

Apply schema changes (development)

npx prisma db push

Seed production data (categories + badges)

export DATABASE_URL="file:/var/lib/kudos/kudos.db"
node backend/prisma/seed-prod.js

Example output:

๐ŸŒฑ Running production seed (categories + badges only)โ€ฆ
๐ŸŒฟ Categories initialized (8).
๐Ÿ… Badges initialized (43).
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ (index)    โ”‚ Values โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ categories โ”‚ 8      โ”‚
โ”‚ badges     โ”‚ 43     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
๐ŸŒณ Production seed complete.

โš ๏ธ db push is intended for development. For production, ensure schema changes are applied carefully and data is backed up.


๐Ÿ… Badges & Bots

Badge artwork is maintained in a separate repository:
๐Ÿ‘‰ https://github.com/openSUSE/kudos-badges

This project does not bundle badge assets directly.
Ensure badges are available in your deployment environment.

The bots (Slack & Matrix) are developed and packaged separately:
๐Ÿ‘‰ https://src.opensuse.org/kudos/kudos-bots


๐Ÿงฐ Development Setup

The recommended way to develop Kudos is inside a Distrobox container based on openSUSE Leap 16.0.

1. Create and enter environment

distrobox create -n kudos -i registry.opensuse.org/opensuse/leap:16.0
distrobox enter kudos

Install dependencies:

zypper install jq npm22 git mkcert

2. Clone and bootstrap

git clone https://github.com/openSUSE/kudos.git
cd kudos
./runme-clean.sh

This will:

  • install all dependencies
  • initialize the SQLite database
  • create demo users
  • build and start the full stack

3. Re-run without reset

./runme-dirty.sh

๐Ÿ” Authentication (OIDC)

The app requires OpenID Connect.

For development:

cp .env.dev .env

This uses: ๐Ÿ‘‰ https://demo.duendesoftware.com

Test accounts:

  • bob / bob
  • alice / alice

โ–ถ๏ธ Running the App

After running runme-clean.sh, the full stack is already running.

If needed, you can run services manually:

Frontend (Vite, port 5173):

npm run frontend

Backend (Express, port 3000):

npm run backend

Open: ๐Ÿ‘‰ https://localhost:5173


๐ŸŒ Production Setup

Single-server deployment.

Build

npm install
npm run build:backend
npm run build:frontend
npm prune --omit=dev

Build output:

backend/public

Run

node backend/src/app.js
  • Application runs on: https://localhost:3000
  • Backend serves the compiled frontend
  • One systemd service is sufficient

๐Ÿ” HTTPS (Development)

Self-signed certificates are stored in:

certs/localhost.pem
certs/localhost-key.pem

You may need to trust the certificate in your browser.


๐ŸŒ Localization

Available in multiple languages:

๐Ÿ‡ธ๐Ÿ‡ฆ ๐Ÿ‡จ๐Ÿ‡ฟ ๐Ÿ‰ ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ‡ฌ๐Ÿ‡ท ๐Ÿ‡ฌ๐Ÿ‡ง ๐Ÿ‡ช๐Ÿ‡ธ ๐Ÿ‡ซ๐Ÿ‡ท ๐Ÿ‡ฎ๐Ÿ‡ณ ๐Ÿ‡ญ๐Ÿ‡บ ๐Ÿ‡ฎ๐Ÿ‡ฉ ๐Ÿ‡ฎ๐Ÿ‡น ๐Ÿ‡ฏ๐Ÿ‡ต ๐Ÿ‡ฐ๐Ÿ‡ท ๐Ÿ‡ณ๐Ÿ‡ฑ ๐Ÿ‡ต๐Ÿ‡ฑ ๐Ÿ‡ง๐Ÿ‡ท ๐Ÿ‡ต๐Ÿ‡น ๐Ÿ‡ท๐Ÿ‡ด ๐Ÿ‡ท๐Ÿ‡บ ๐Ÿ‡ธ๐Ÿ‡ฐ ๐Ÿ‡ธ๐Ÿ‡ช ๐Ÿ‡น๐Ÿ‡ท ๐Ÿ‡บ๐Ÿ‡ฆ ๐Ÿ‡ป๐Ÿ‡ณ ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡น๐Ÿ‡ผ

Want to contribute?
๐Ÿ‘‰ https://github.com/openSUSE/kudos/blob/main/frontend/src/locales/CONTRIBUTING.md


๐Ÿงฉ Technologies

  • Vue 3 + Vite
  • Node.js (Express)
  • Prisma ORM
  • SQLite (development)
  • Slack & Matrix integrations
  • Weblate
  • LLM integrations (Gemini, GPT-5.1)

๐Ÿชช License

  • Code: Apache 2.0
  • Badge artwork: CC BY-SA 4.0

ยฉ 2025 Lubos Kocman and openSUSE contributors
๐Ÿ’š Geekos deserve recognition too!

About

openSUSE Kudos recognition software

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors