mirror of
https://codeberg.org/likwid/likwid.git
synced 2026-02-09 13:03:10 +00:00
docs: refresh README
This commit is contained in:
parent
a78d974ad4
commit
9327268478
1 changed files with 157 additions and 148 deletions
305
README.md
305
README.md
|
|
@ -1,148 +1,157 @@
|
||||||
# Likwid - Modular Governance Platform
|
# Likwid - Modular Governance Platform
|
||||||
|
|
||||||
## Composable Governance Infrastructure
|
## Composable Governance Infrastructure
|
||||||
|
|
||||||
A modular toolkit for deliberation, voting, delegation, moderation, and plugins — configure what you need per community.
|
A modular toolkit for deliberation, voting, delegation, moderation, and plugins — configure what you need per community.
|
||||||
|
|
||||||
Likwid is an open-source platform for participatory governance. Assemble decision-making workflows from modular building blocks: deliberation, voting methods, delegation, moderation, and plugins.
|
Likwid is an open-source platform for participatory governance. Assemble decision-making workflows from modular building blocks: deliberation, voting methods, delegation, moderation, and plugins.
|
||||||
|
|
||||||
> *"We are citizens of the 21st century, but we rely on institutions designed in the 19th century, through means designed in the 13th century. The problem is not democracy, it's the interface."*
|
> *"We are citizens of the 21st century, but we rely on institutions designed in the 19th century, through means designed in the 13th century. The problem is not democracy, it's the interface."*
|
||||||
|
|
||||||
## Philosophy
|
## Philosophy
|
||||||
|
|
||||||
Likwid implements a set of principles for **modular governance infrastructure**:
|
Likwid implements a set of principles for **modular governance infrastructure**:
|
||||||
|
|
||||||
- **Information must be understandable**, not just available
|
- **Information must be understandable**, not just available
|
||||||
- **Listening matters more than speaking** — structured deliberation over flame wars
|
- **Listening matters more than speaking** — structured deliberation over flame wars
|
||||||
- **Voting should express nuance** — from simple approval to Schulze and quadratic methods
|
- **Voting should express nuance** — from simple approval to Schulze and quadratic methods
|
||||||
- **Delegation should be fluid** — trust networks that adapt in real-time
|
- **Delegation should be fluid** — trust networks that adapt in real-time
|
||||||
- **Governance should be composable** — workflows assembled from modules, not imposed
|
- **Governance should be composable** — workflows assembled from modules, not imposed
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
### Deliberative Democracy
|
### Deliberative Democracy
|
||||||
- **Inform → Discuss → Decide** workflow for proposals
|
|
||||||
- Resource libraries for informed participation
|
- **Inform → Discuss → Decide** workflow for proposals
|
||||||
- Small group discussions with facilitators
|
- Resource libraries for informed participation
|
||||||
- "Read before discuss" requirements
|
- Optional facilitator role on proposals
|
||||||
- Constructive comment visibility scoring
|
- "Read before discuss" requirements
|
||||||
|
- Comment reactions for quality signals (agree/disagree/insightful/constructive/off-topic)
|
||||||
### Advanced Voting Methods
|
|
||||||
- **Approval Voting** — vote for multiple options
|
### Advanced Voting Methods
|
||||||
- **Ranked Choice** — order preferences
|
|
||||||
- **Schulze Method** — Condorcet-consistent pairwise comparison
|
- **Approval Voting** — vote for multiple options
|
||||||
- **STAR Voting** — score + automatic runoff
|
- **Ranked Choice** — order preferences
|
||||||
- **Quadratic Voting** — express intensity of preference
|
- **Schulze Method** — Condorcet-consistent pairwise comparison
|
||||||
|
- **STAR Voting** — score + automatic runoff
|
||||||
### Liquid Delegation
|
- **Quadratic Voting** — express intensity of preference
|
||||||
- Delegate your vote globally or within a community
|
|
||||||
- Real-time transparency: see how delegates vote
|
### Liquid Delegation
|
||||||
- Revoke delegation instantly
|
|
||||||
- Transitive delegation chains
|
- Delegate your vote globally or within a community
|
||||||
- Delegation analytics and trust networks
|
- Real-time transparency: see how delegates vote
|
||||||
|
- Revoke delegation instantly
|
||||||
### Modular Plugin System
|
- Transitive delegation chains
|
||||||
- WASM-based sandboxed plugins
|
- Delegation analytics and trust networks
|
||||||
- Per-community plugin configuration
|
|
||||||
- Hook-based architecture (actions/filters)
|
### Modular Plugin System
|
||||||
- Built-in and third-party plugins
|
|
||||||
- Admin policy for signed/unsigned plugins
|
- WASM-based sandboxed plugins
|
||||||
|
- Per-community plugin configuration
|
||||||
### Governance Infrastructure
|
- Hook-based architecture (actions/filters)
|
||||||
- Multi-community platform support
|
- Built-in and third-party plugins
|
||||||
- Granular admin controls (platform mode, registration, moderation)
|
- Admin policy for signed/unsigned plugins
|
||||||
- Public moderation ledger (immutable)
|
|
||||||
- Role-based access (admin, moderator, facilitator, member)
|
### Governance Infrastructure
|
||||||
- Anonymous voting with identity separation
|
|
||||||
|
- Multi-community platform support
|
||||||
## Tech Stack
|
- Granular admin controls (platform mode, registration, moderation)
|
||||||
|
- Tamper-evident public moderation ledger
|
||||||
| Layer | Technology |
|
- Role-based access (admin, moderator, facilitator, member)
|
||||||
|-------|------------|
|
|
||||||
| **Backend** | Rust (Axum 0.8, Tokio, SQLx) |
|
## Tech Stack
|
||||||
| **Frontend** | Astro + TypeScript |
|
|
||||||
| **Database** | PostgreSQL 16 |
|
| Layer | Technology |
|
||||||
| **Plugins** | WebAssembly (wasmtime) |
|
| --- | --- |
|
||||||
| **Containers** | Podman (rootless) |
|
| **Backend** | Rust (Axum 0.8, Tokio, SQLx) |
|
||||||
|
| **Frontend** | Astro + TypeScript |
|
||||||
## Quick Start
|
| **Database** | PostgreSQL 16 |
|
||||||
|
| **Plugins** | WebAssembly (wasmtime) |
|
||||||
### Prerequisites
|
| **Containers** | Podman (rootless) |
|
||||||
|
|
||||||
**Windows:**
|
## Quick Start
|
||||||
- Windows 10/11 with WSL2
|
|
||||||
- Podman Desktop (WSL2 backend)
|
### Prerequisites
|
||||||
- Rust (rustup, MSVC toolchain)
|
|
||||||
- Node.js LTS
|
**Windows:**
|
||||||
|
|
||||||
**Linux:**
|
- Windows 10/11 with WSL2
|
||||||
- Podman + podman-compose
|
- Podman Desktop (WSL2 backend)
|
||||||
- Rust (rustup)
|
- Rust (rustup, MSVC toolchain)
|
||||||
- Node.js LTS
|
- Node.js LTS
|
||||||
|
|
||||||
### Development
|
**Linux:**
|
||||||
|
|
||||||
```powershell
|
- Podman + podman-compose
|
||||||
# 1. Clone and configure
|
- Rust (rustup)
|
||||||
git clone https://invent.kde.org/marcoa/likwid.git
|
- Node.js LTS
|
||||||
cd likwid
|
|
||||||
cp backend/.env.example backend/.env
|
### Development
|
||||||
|
|
||||||
# 2. Start everything (database + backend + frontend)
|
```powershell
|
||||||
.\scripts\dev-start.ps1
|
# 1. Clone and configure
|
||||||
|
git clone https://codeberg.org/likwid/likwid.git
|
||||||
# 3. Stop everything
|
cd likwid
|
||||||
.\scripts\dev-stop.ps1
|
$env:JWT_SECRET="dev_secret_change_me"
|
||||||
```
|
|
||||||
|
# 2. Start everything (database + backend + frontend)
|
||||||
The platform will be available at:
|
.\scripts\dev-start.ps1
|
||||||
- **Frontend**: http://localhost:4321
|
|
||||||
- **Backend API**: http://localhost:3000
|
# 3. Stop everything
|
||||||
- **Setup Wizard**: http://localhost:4321/setup (first run)
|
.\scripts\dev-stop.ps1
|
||||||
|
```
|
||||||
### First Run
|
|
||||||
|
The platform will be available at:
|
||||||
1. Navigate to `/register` to create the first user (automatically becomes admin)
|
|
||||||
2. Complete platform setup at `/setup`
|
- **Frontend**: <http://localhost:4321>
|
||||||
3. Configure instance settings at `/admin/settings`
|
- **Backend API**: <http://localhost:3000>
|
||||||
4. Create your first community
|
- **Setup Wizard**: <http://localhost:4321/setup> (first run)
|
||||||
|
|
||||||
## Project Structure
|
### First Run
|
||||||
|
|
||||||
```
|
1. Navigate to `/register` to create the first user (automatically becomes admin)
|
||||||
likwid/
|
2. Complete platform setup at `/setup`
|
||||||
├── backend/ # Rust backend
|
3. Configure instance settings at `/admin/settings`
|
||||||
│ ├── src/
|
4. Create your first community
|
||||||
│ │ ├── api/ # REST endpoints
|
|
||||||
│ │ ├── auth/ # JWT authentication
|
## Project Structure
|
||||||
│ │ ├── models/ # Database models
|
|
||||||
│ │ └── plugins/ # Plugin system (WASM + builtins)
|
```text
|
||||||
│ └── migrations/ # SQL migrations
|
likwid/
|
||||||
├── frontend/ # Astro frontend
|
├── backend/ # Rust backend
|
||||||
│ ├── src/
|
│ ├── src/
|
||||||
│ │ ├── pages/ # Routes
|
│ │ ├── api/ # REST endpoints
|
||||||
│ │ ├── layouts/ # Page layouts
|
│ │ ├── auth/ # JWT authentication
|
||||||
│ │ └── components/ # UI components
|
│ │ ├── models/ # Database models
|
||||||
├── compose/ # Podman compose files
|
│ │ └── plugins/ # Plugin system (WASM + builtins)
|
||||||
├── scripts/ # Dev scripts (cross-platform)
|
│ └── migrations/ # SQL migrations
|
||||||
└── docu_dev/ # Design documents
|
├── frontend/ # Astro frontend
|
||||||
```
|
│ ├── src/
|
||||||
|
│ │ ├── pages/ # Routes
|
||||||
### Core Principles
|
│ │ ├── layouts/ # Page layouts
|
||||||
|
│ │ └── components/ # UI components
|
||||||
1. **Be considerate** — Your work affects others
|
├── compose/ # Podman compose files
|
||||||
2. **Be respectful** — Assume good intentions
|
├── scripts/ # Dev scripts (cross-platform)
|
||||||
3. **Be collaborative** — Work transparently
|
└── docu_dev/ # Design documents
|
||||||
4. **Be pragmatic** — Results over debates
|
```
|
||||||
5. **Find a third way** — Seek solutions that satisfy everyone
|
|
||||||
|
### Core Principles
|
||||||
## License
|
|
||||||
|
1. **Be considerate** — Your work affects others
|
||||||
EUPL-1.2
|
2. **Be respectful** — Assume good intentions
|
||||||
## Acknowledgments
|
3. **Be collaborative** — Work transparently
|
||||||
|
4. **Be pragmatic** — Results over debates
|
||||||
Inspired by:
|
5. **Find a third way** — Seek solutions that satisfy everyone
|
||||||
- [Pol.is](https://pol.is/) — Opinion mapping
|
|
||||||
- [Decidim](https://decidim.org/) — Participatory democracy
|
## License
|
||||||
- [LiquidFeedback](https://liquidfeedback.org/) — Liquid democracy
|
|
||||||
- [Equal Vote Coalition](https://www.equal.vote/) — STAR Voting
|
EUPL-1.2
|
||||||
|
|
||||||
|
## Acknowledgments
|
||||||
|
|
||||||
|
Inspired by:
|
||||||
|
|
||||||
|
- [Pol.is](https://pol.is/) — Opinion mapping
|
||||||
|
- [Decidim](https://decidim.org/) — Participatory democracy
|
||||||
|
- [LiquidFeedback](https://liquidfeedback.org/) — Liquid democracy
|
||||||
|
- [Equal Vote Coalition](https://www.equal.vote/) — STAR Voting
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue