likwid/docs/admin/plugins.md
Marco Allegretti 910a6465f2 Initial commit: Likwid governance platform
- Backend: Rust/Axum with PostgreSQL, plugin architecture
- Frontend: Astro with polished UI
- Voting methods: Approval, Ranked Choice, Schulze, STAR, Quadratic
- Features: Liquid delegation, transparent moderation, structured deliberation
- Documentation: User and admin guides in /docs
- Deployment: Docker/Podman compose files for production and demo
- Demo: Seeded data with 3 communities, 13 users, 7 proposals

License: AGPLv3
2026-01-27 17:21:58 +01:00

2.3 KiB

Plugin Management

Likwid uses a plugin architecture for extensibility.

Plugin Types

Core Plugins (Cannot Disable)

  • core.auth - Authentication system
  • core.communities - Community management
  • core.proposals - Proposal system

Voting Plugins

  • voting.approval - Approval voting
  • voting.ranked_choice - Instant runoff
  • voting.schulze - Condorcet method
  • voting.star - STAR voting
  • voting.quadratic - Quadratic voting

Feature Plugins

  • feature.delegation - Liquid delegation
  • feature.deliberation - Structured discussion

Integration Plugins

  • integration.gitlab - GitLab integration
  • integration.matrix - Matrix chat integration

Managing Plugins

Via Admin Panel

  1. Go to AdminPlugins
  2. View installed plugins
  3. Enable/disable as needed
  4. Configure plugin settings

Via API

# List plugins
curl -H "Authorization: Bearer $TOKEN" \
  http://localhost:3000/api/plugins/defaults

# Enable plugin
curl -X POST -H "Authorization: Bearer $TOKEN" \
  http://localhost:3000/api/plugins/instance/voting.quadratic

# Disable plugin
curl -X DELETE -H "Authorization: Bearer $TOKEN" \
  http://localhost:3000/api/plugins/instance/voting.quadratic

Voting Method Configuration

Platform Level

Enable/disable voting methods for the entire instance:

# List available methods
curl http://localhost:3000/api/voting-methods

# Enable a method
curl -X PUT -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"is_active": true}' \
  http://localhost:3000/api/voting-methods/quadratic

Community Level

Communities can configure which enabled methods they use:

# Set community voting methods
curl -X PUT -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"methods": ["schulze", "approval"]}' \
  http://localhost:3000/api/communities/{id}/voting-methods

Plugin Security

Signed Plugins

For third-party plugins, require signatures:

  • Instance setting: require_signed_plugins: true
  • Validates plugin authenticity

Capabilities

Plugins request specific capabilities:

  • Database access (read/write)
  • Outbound HTTP
  • Background jobs
  • UI components

Developing Plugins

See the Plugin Development Guide for creating custom plugins.