likwid/docs/admin/configuration.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

99 lines
2.6 KiB
Markdown

# Configuration
Likwid is configured through environment variables and database settings.
## Environment Variables
### Backend
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `DATABASE_URL` | Yes | - | PostgreSQL connection string |
| `JWT_SECRET` | Yes | - | Secret for signing JWT tokens |
| `SERVER_HOST` | No | `127.0.0.1` | Bind address |
| `SERVER_PORT` | No | `3000` | HTTP port |
| `DEMO_MODE` | No | `false` | Enable demo features |
| `RUST_LOG` | No | `info` | Log level (trace, debug, info, warn, error) |
### Frontend
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `API_BASE` | No | `http://localhost:3000` | Backend API URL |
| `PUBLIC_API_BASE` | No | Same as API_BASE | Public-facing API URL |
## Instance Settings
Managed via the Admin panel or API:
### General
- **Instance Name** - Display name for your Likwid instance
- **Instance Description** - Brief description
- **Registration** - Open, invite-only, or closed
- **Email Verification** - Required or optional
### Features
- **Community Creation** - Who can create communities
- **Public Read Access** - Allow anonymous browsing
- **Federation** - Enable cross-instance communication
### Plugins
- **Active Voting Methods** - Which methods are available
- **Default Voting Method** - Instance-wide default
- **Active Integrations** - GitLab, Matrix, etc.
## Community Settings
Each community can configure:
```json
{
"voting_method": "schulze",
"delegation_enabled": true,
"require_read_before_vote": true,
"min_discussion_days": 3,
"quorum_percentage": 25,
"transparency_level": "full"
}
```
### Voting Method Options
- `approval` - Approval voting
- `ranked_choice` - Instant runoff
- `schulze` - Condorcet method
- `star` - Score then automatic runoff
- `quadratic` - Voice credit allocation
### Transparency Levels
- `full` - All votes visible after closing
- `anonymous` - Only totals visible
- `private` - Results only, no breakdown
## API Configuration
### Rate Limiting
Configure in backend settings:
- Requests per minute per IP
- Requests per minute per user
- Burst allowance
### CORS
By default, CORS allows all origins in development. For production:
```
CORS_ALLOWED_ORIGINS=https://likwid.example.org
```
## Logging
### Log Levels
- `trace` - Very detailed debugging
- `debug` - Debugging information
- `info` - Normal operation
- `warn` - Warning conditions
- `error` - Error conditions
### Log Format
Logs are output in JSON format for easy parsing:
```json
{"timestamp":"2026-01-27T12:00:00Z","level":"INFO","message":"Server started","port":3000}
```