Self-hosted family organizer to tame the everyday chaos.
Calendars, tasks, shopping lists, contacts, birthdays — one place, your server, your data.
Quick Start • Wiki • Contributing • Roadmap • Changelog
Midnight Glass theme — glassmorphism, bento grid dashboard, mesh background
More screenshots
Morning Mist (light theme)
Calendar with day-detail panel
Tasks with priorities, assignees, and overdue tracking
Login page
Mobile (390px)
See the Wiki for screenshots of every view and theme.
Most family organizer apps lock your data in their cloud and charge monthly fees. Tribu runs on your own hardware, gives you full control, and costs nothing.
- Privacy first — all data stays on your server, no third-party services
- Modular — each feature is an isolated plugin, extend what you need
- Beautiful — three polished themes with glassmorphism, animations, and responsive design
- Bilingual — German and English out of the box, lazy-loaded per module
- Try before you install — interactive demo mode with realistic sample data, no backend needed
| Dashboard | Bento grid with today's events, open tasks, birthday countdowns, and family stats |
| Calendar | Month/week view, event dots, day-detail panel, recurring events, ICS import/export |
| Tasks | Priorities, due dates, assignees, recurring tasks, overdue tracking |
| Shopping | Multiple lists, tap-to-toggle items, real-time sync via WebSocket |
| Contacts | Card grid with colored avatars, CSV import/export, birthday extraction |
| Birthdays | 4-week lookahead with countdown, auto-synced from contacts |
| Notifications | In-app feed with event reminders, overdue tasks, and birthday alerts |
| Themes | Morning Mist (light), Dark, Midnight Glass (glassmorphism) |
| i18n | English and German out of the box, lazy-loaded per module |
| Demo mode | Try the full UI with realistic sample data, no server setup required |
| Security | httpOnly cookies, rate limiting, scoped PATs, non-root containers |
Create a new stack in Portainer, Dockge, or Dockhand and paste:
name: tribu
services:
postgres:
image: postgres:16-alpine
container_name: tribu-postgres
restart: unless-stopped
environment:
POSTGRES_DB: tribu
POSTGRES_USER: tribu
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- tribu_pg_data:/var/lib/postgresql/data
valkey:
image: valkey/valkey:8-alpine
container_name: tribu-valkey
restart: unless-stopped
backend:
image: ghcr.io/itsdnns/tribu-backend:latest
container_name: tribu-backend
restart: unless-stopped
environment:
DATABASE_URL: postgresql://tribu:${POSTGRES_PASSWORD}@postgres:5432/tribu
REDIS_URL: redis://valkey:6379/0
JWT_SECRET: ${JWT_SECRET}
SECURE_COOKIES: ${SECURE_COOKIES:-false}
depends_on: [postgres, valkey]
ports: ["8000:8000"]
volumes:
- tribu_backups:/backups
frontend:
image: ghcr.io/itsdnns/tribu-frontend:latest
container_name: tribu-frontend
restart: unless-stopped
depends_on: [backend]
ports: ["3000:3000"]
volumes:
tribu_pg_data:
tribu_backups:
Set two environment variables (generate with openssl rand -hex 32):
| Variable | Description |
|---|---|
JWT_SECRET |
Random 64-char hex string for JWT signing |
POSTGRES_PASSWORD |
Random 32-char hex string for the database |
Deploy the stack, open localhost:3000, and register.
The first user to register becomes the family admin.
Want to explore first? Click Try demo on the login page.
CLI alternative
mkdir tribu && cd tribu
curl -LO https://raw.githubusercontent.com/itsDNNS/tribu/main/docker/docker-compose.yml
curl -LO https://raw.githubusercontent.com/itsDNNS/tribu/main/docker/.env.example
cp .env.example .env
# Fill in JWT_SECRET and POSTGRES_PASSWORD
docker compose up -d
Development setup? See Contributing for building from source.
Frontend: Next.js 16, React 19, Lucide Icons, CSS custom properties
Backend: FastAPI, SQLAlchemy, Python 3.13+
Database: PostgreSQL 16
Cache: Valkey 8
Deployment: Docker Compose, multi-arch images (amd64/arm64) on GHCR
| Self-Hosting Guide | Configuration, reverse proxy, backups, updating, troubleshooting |
| Wiki | Screenshots, features, themes, getting started |
| Architecture | Backend modules, frontend patterns, security, API reference |
| Plugin Manifest | How to build feature, theme, and language plugins |
| Roadmap | Development phases and planned features |
| Contributing | Dev setup, project structure, PR guidelines |
| Security | Security policy and responsible disclosure |
| Changelog | Release history |
If Tribu helps your family stay organized, consider supporting development:
Private project. All rights reserved.
Built with care by the itsDNNS family.

