mirror of
https://codeberg.org/likwid/likwid.git
synced 2026-02-09 21:13:09 +00:00
docs: update README and deployment workflow
This commit is contained in:
parent
8ad0ac8a7a
commit
5fd905c9b7
4 changed files with 48 additions and 42 deletions
|
|
@ -28,7 +28,7 @@ git clone https://codeberg.org/likwid/likwid
|
||||||
cd likwid
|
cd likwid
|
||||||
|
|
||||||
# Copy environment configuration
|
# Copy environment configuration
|
||||||
cp .env.example .env
|
cp backend/.env.example backend/.env
|
||||||
|
|
||||||
# Start development environment
|
# Start development environment
|
||||||
# Windows:
|
# Windows:
|
||||||
|
|
@ -203,6 +203,6 @@ Help newcomers, answer questions patiently, and remember that everyone was new o
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
By contributing, you agree that your contributions will be licensed under LGPL-2.1-or-later.
|
By contributing, you agree that your contributions will be licensed under EUPL-1.2.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -37,8 +37,10 @@ cp compose/.env.production.example compose/.env.production
|
||||||
# - Set random JWT_SECRET (64+ chars)
|
# - Set random JWT_SECRET (64+ chars)
|
||||||
# - Set your domain in API_BASE
|
# - Set your domain in API_BASE
|
||||||
|
|
||||||
# 3. Remove demo seed migration (important!)
|
# 3. Ensure demo seed data is excluded
|
||||||
rm backend/migrations/20260127150000_demo_seed_data.sql
|
# - Demo seed migrations live in backend/migrations_demo
|
||||||
|
# - backend/src/main.rs only runs migrations_demo when DEMO_MODE=true
|
||||||
|
# - compose/production.yml builds the backend with INCLUDE_DEMO_SEED=false
|
||||||
|
|
||||||
# 4. Deploy
|
# 4. Deploy
|
||||||
cd compose
|
cd compose
|
||||||
|
|
@ -97,8 +99,8 @@ To reset the demo to a clean state:
|
||||||
./scripts/demo-reset.sh
|
./scripts/demo-reset.sh
|
||||||
|
|
||||||
# Or manually:
|
# Or manually:
|
||||||
podman-compose -f compose/demo.yml down -v
|
podman-compose --env-file compose/.env.demo -f compose/demo.yml down -v
|
||||||
podman-compose --env-file .env.demo -f compose/demo.yml up -d
|
podman-compose --env-file compose/.env.demo -f compose/demo.yml up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
## Configuration Reference
|
## Configuration Reference
|
||||||
|
|
@ -133,12 +135,14 @@ For local development without containers:
|
||||||
# 1. Start only the database
|
# 1. Start only the database
|
||||||
podman-compose -f compose/dev.yml up -d
|
podman-compose -f compose/dev.yml up -d
|
||||||
|
|
||||||
# 2. Run backend natively
|
# 2. Configure backend environment
|
||||||
|
cp backend/.env.example backend/.env
|
||||||
|
|
||||||
|
# 3. Run backend natively
|
||||||
cd backend
|
cd backend
|
||||||
cp ../.env.example .env # Configure DATABASE_URL
|
|
||||||
cargo run
|
cargo run
|
||||||
|
|
||||||
# 3. Run frontend natively
|
# 4. Run frontend natively
|
||||||
cd frontend
|
cd frontend
|
||||||
npm run dev
|
npm run dev
|
||||||
```
|
```
|
||||||
|
|
@ -147,10 +151,10 @@ npm run dev
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# View all logs
|
# View all logs
|
||||||
podman-compose -f compose/demo.yml logs -f
|
podman-compose --env-file compose/.env.demo -f compose/demo.yml logs -f
|
||||||
|
|
||||||
# View specific service
|
# View specific service
|
||||||
podman-compose -f compose/demo.yml logs -f backend
|
podman-compose --env-file compose/.env.demo -f compose/demo.yml logs -f backend
|
||||||
|
|
||||||
# Check health
|
# Check health
|
||||||
curl http://localhost:3001/health
|
curl http://localhost:3001/health
|
||||||
|
|
@ -161,10 +165,10 @@ curl http://localhost:3001/health
|
||||||
### Database connection issues
|
### Database connection issues
|
||||||
```bash
|
```bash
|
||||||
# Check if postgres is running
|
# Check if postgres is running
|
||||||
podman-compose -f compose/demo.yml ps
|
podman-compose --env-file compose/.env.demo -f compose/demo.yml ps
|
||||||
|
|
||||||
# View postgres logs
|
# View postgres logs
|
||||||
podman-compose -f compose/demo.yml logs postgres
|
podman-compose --env-file compose/.env.demo -f compose/demo.yml logs postgres
|
||||||
```
|
```
|
||||||
|
|
||||||
### Migration failures
|
### Migration failures
|
||||||
|
|
@ -182,7 +186,6 @@ SELECT * FROM _sqlx_migrations;
|
||||||
### Reset everything
|
### Reset everything
|
||||||
```bash
|
```bash
|
||||||
# Nuclear option - removes all data and volumes
|
# Nuclear option - removes all data and volumes
|
||||||
podman-compose -f compose/demo.yml down -v
|
podman-compose --env-file compose/.env.demo -f compose/demo.yml down -v
|
||||||
podman volume prune -f
|
podman-compose --env-file compose/.env.demo -f compose/demo.yml up -d
|
||||||
podman-compose -f compose/demo.yml up -d
|
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Likwid is an open-source platform for participatory governance, designed to make collective decision-making accessible, transparent, and genuinely democratic. Built for communities, civic organizations, and any group that values structured deliberation over shouting matches.
|
Likwid is an open-source platform for participatory governance, designed to make collective decision-making accessible, transparent, and genuinely democratic. Built for communities, civic organizations, and any group that values structured deliberation over shouting matches.
|
||||||
|
|
||||||
> *"We are citizens of the 21st century, but we rely on institutions designed in the 19th 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
|
||||||
|
|
||||||
|
|
@ -33,7 +33,7 @@ Likwid implements the principles of **Democracy Design**:
|
||||||
- **Quadratic Voting** — express intensity of preference
|
- **Quadratic Voting** — express intensity of preference
|
||||||
|
|
||||||
### Liquid Delegation
|
### Liquid Delegation
|
||||||
- Delegate your vote by topic or globally
|
- Delegate your vote globally or within a community
|
||||||
- Real-time transparency: see how delegates vote
|
- Real-time transparency: see how delegates vote
|
||||||
- Revoke delegation instantly
|
- Revoke delegation instantly
|
||||||
- Transitive delegation chains
|
- Transitive delegation chains
|
||||||
|
|
@ -84,7 +84,7 @@ Likwid implements the principles of **Democracy Design**:
|
||||||
# 1. Clone and configure
|
# 1. Clone and configure
|
||||||
git clone https://invent.kde.org/marcoa/likwid.git
|
git clone https://invent.kde.org/marcoa/likwid.git
|
||||||
cd likwid
|
cd likwid
|
||||||
cp .env.example .env
|
cp backend/.env.example backend/.env
|
||||||
|
|
||||||
# 2. Start everything (database + backend + frontend)
|
# 2. Start everything (database + backend + frontend)
|
||||||
.\scripts\dev-start.ps1
|
.\scripts\dev-start.ps1
|
||||||
|
|
@ -148,7 +148,7 @@ likwid/
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
LGPL-2.1-or-later
|
EUPL-1.2
|
||||||
## Acknowledgments
|
## Acknowledgments
|
||||||
|
|
||||||
Inspired by:
|
Inspired by:
|
||||||
|
|
|
||||||
47
WORKFLOW.md
47
WORKFLOW.md
|
|
@ -25,8 +25,8 @@
|
||||||
|
|
||||||
## Daily Development Workflow
|
## Daily Development Workflow
|
||||||
|
|
||||||
### Your current setup IS the demo
|
### Your local setup can behave like the demo
|
||||||
Your local environment with `DEMO_MODE=true` and the seeded database is functionally equivalent to the demo deployment.
|
Your local environment is functionally equivalent to the demo deployment when `DEMO_MODE=true` and demo seed migrations have been applied (from `backend/migrations_demo`).
|
||||||
|
|
||||||
### Making code changes
|
### Making code changes
|
||||||
1. Edit code normally
|
1. Edit code normally
|
||||||
|
|
@ -50,6 +50,9 @@ cd backend
|
||||||
sqlx database drop -y
|
sqlx database drop -y
|
||||||
sqlx database create
|
sqlx database create
|
||||||
sqlx migrate run
|
sqlx migrate run
|
||||||
|
|
||||||
|
# If you want demo seed data, also run:
|
||||||
|
sqlx migrate run --source migrations_demo
|
||||||
```
|
```
|
||||||
|
|
||||||
### Option 2: Use the reset script (when using containers)
|
### Option 2: Use the reset script (when using containers)
|
||||||
|
|
@ -68,14 +71,11 @@ podman-compose --env-file compose/.env.demo -f compose/demo.yml up -d
|
||||||
|
|
||||||
### For real users (Production)
|
### For real users (Production)
|
||||||
```bash
|
```bash
|
||||||
# 1. Remove demo seed data
|
# 1. Configure production
|
||||||
rm backend/migrations/20260127150000_demo_seed_data.sql
|
|
||||||
|
|
||||||
# 2. Configure production
|
|
||||||
cp compose/.env.production.example compose/.env.production
|
cp compose/.env.production.example compose/.env.production
|
||||||
# Edit with secure passwords and your domain
|
# Edit with secure passwords and your domain
|
||||||
|
|
||||||
# 3. Deploy
|
# 2. Deploy
|
||||||
podman-compose --env-file compose/.env.production -f compose/production.yml up -d
|
podman-compose --env-file compose/.env.production -f compose/production.yml up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -84,29 +84,32 @@ podman-compose --env-file compose/.env.production -f compose/production.yml up -
|
||||||
### "I broke the demo data"
|
### "I broke the demo data"
|
||||||
```powershell
|
```powershell
|
||||||
cd backend
|
cd backend
|
||||||
sqlx database drop -y && sqlx database create && sqlx migrate run
|
sqlx database drop -y
|
||||||
|
sqlx database create
|
||||||
|
sqlx migrate run
|
||||||
```
|
```
|
||||||
|
|
||||||
### "I want to test production-like (no demo data)"
|
### "I want to test production-like (no demo data)"
|
||||||
```powershell
|
```powershell
|
||||||
# Temporarily move the demo migration
|
|
||||||
mv backend/migrations/20260127150000_demo_seed_data.sql backend/migrations/20260127150000_demo_seed_data.sql.bak
|
|
||||||
|
|
||||||
# Reset database
|
|
||||||
sqlx database drop -y && sqlx database create && sqlx migrate run
|
|
||||||
|
|
||||||
# Set DEMO_MODE=false in .env
|
# Set DEMO_MODE=false in .env
|
||||||
|
|
||||||
|
# Reset database (core migrations only)
|
||||||
|
cd backend
|
||||||
|
sqlx database drop -y
|
||||||
|
sqlx database create
|
||||||
|
sqlx migrate run
|
||||||
```
|
```
|
||||||
|
|
||||||
### "I want demo data back"
|
### "I want demo data back"
|
||||||
```powershell
|
```powershell
|
||||||
# Restore migration
|
|
||||||
mv backend/migrations/20260127150000_demo_seed_data.sql.bak backend/migrations/20260127150000_demo_seed_data.sql
|
|
||||||
|
|
||||||
# Reset database
|
|
||||||
sqlx database drop -y && sqlx database create && sqlx migrate run
|
|
||||||
|
|
||||||
# Set DEMO_MODE=true in .env
|
# Set DEMO_MODE=true in .env
|
||||||
|
|
||||||
|
# Reset database + re-seed demo
|
||||||
|
cd backend
|
||||||
|
sqlx database drop -y
|
||||||
|
sqlx database create
|
||||||
|
sqlx migrate run
|
||||||
|
sqlx migrate run --source migrations_demo
|
||||||
```
|
```
|
||||||
|
|
||||||
### "I want to run both demo and production locally"
|
### "I want to run both demo and production locally"
|
||||||
|
|
@ -120,6 +123,6 @@ Use the container deployments - they use different ports:
|
||||||
|---------|----------|
|
|---------|----------|
|
||||||
| Code changes affect demo? | Yes, same codebase. That's expected. |
|
| Code changes affect demo? | Yes, same codebase. That's expected. |
|
||||||
| Data separation | Different databases (demo vs prod) |
|
| Data separation | Different databases (demo vs prod) |
|
||||||
| Reset demo | `sqlx database drop && create && migrate` |
|
| Reset demo | `sqlx database drop; sqlx database create; sqlx migrate run; sqlx migrate run --source migrations_demo` |
|
||||||
| Test production locally | Remove demo migration, set DEMO_MODE=false |
|
| Test production locally | Set DEMO_MODE=false and run only core migrations (skip `migrations_demo`) |
|
||||||
| Deploy for others | Use compose files with separate DBs |
|
| Deploy for others | Use compose files with separate DBs |
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue