mirror of
https://codeberg.org/likwid/likwid.git
synced 2026-02-10 05:23:09 +00:00
- 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
2.3 KiB
2.3 KiB
Plugin Management
Likwid uses a plugin architecture for extensibility.
Plugin Types
Core Plugins (Cannot Disable)
core.auth- Authentication systemcore.communities- Community managementcore.proposals- Proposal system
Voting Plugins
voting.approval- Approval votingvoting.ranked_choice- Instant runoffvoting.schulze- Condorcet methodvoting.star- STAR votingvoting.quadratic- Quadratic voting
Feature Plugins
feature.delegation- Liquid delegationfeature.deliberation- Structured discussion
Integration Plugins
integration.gitlab- GitLab integrationintegration.matrix- Matrix chat integration
Managing Plugins
Via Admin Panel
- Go to Admin → Plugins
- View installed plugins
- Enable/disable as needed
- 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.