Skip to content

Commit 479d807

Browse files
OpenFamily v1.0.0 - Initial Production Release
Features: - Complete family management system - Real-time sync & notifications - Mobile-ready PWA - Docker deployment ready - Multi-platform support (Android/iOS/Web) Security: - Helmet security middleware - Rate limiting protection - Secure Docker configuration Production Ready: - Automated deployment scripts - Complete documentation - Multi-architecture Docker builds - Home server optimized
0 parents  commit 479d807

File tree

196 files changed

+34794
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

196 files changed

+34794
-0
lines changed

.docker/README.md

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
# OpenFamily Docker Image
2+
3+
[![Docker Pulls](https://img.shields.io/docker/pulls/nexaflow/openfamily)](https://hub.docker.com/r/nexaflow/openfamily)
4+
[![Docker Image Size](https://img.shields.io/docker/image-size/nexaflow/openfamily/latest)](https://hub.docker.com/r/nexaflow/openfamily)
5+
[![GitHub Release](https://img.shields.io/github/v/release/NexaFlowFrance/OpenFamily)](https://github.com/NexaFlowFrance/OpenFamily/releases)
6+
7+
Self-hosted family organization platform with calendar, meal planning, shopping lists, budget tracking, and task management.
8+
9+
## 🚀 Quick Start
10+
11+
### Using Docker Compose (Recommended)
12+
13+
```bash
14+
# Download docker-compose.yml
15+
curl -fsSL https://raw.githubusercontent.com/NexaFlowFrance/OpenFamily/main/docker-compose.yml -o docker-compose.yml
16+
17+
# Create .env file
18+
cat <<EOF >.env
19+
DB_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-25)
20+
SESSION_SECRET=$(openssl rand -base64 32)
21+
EOF
22+
23+
# Start services
24+
docker-compose up -d
25+
```
26+
27+
Access OpenFamily at: `http://localhost:3000`
28+
29+
### Using Docker Run
30+
31+
```bash
32+
# Start PostgreSQL
33+
docker run -d \
34+
--name openfamily-db \
35+
-e POSTGRES_DB=openfamily \
36+
-e POSTGRES_USER=openfamily \
37+
-e POSTGRES_PASSWORD=your_secure_password \
38+
-v openfamily-data:/var/lib/postgresql/data \
39+
postgres:17-alpine
40+
41+
# Start OpenFamily
42+
docker run -d \
43+
--name openfamily-app \
44+
-p 3000:3000 \
45+
-e DB_HOST=openfamily-db \
46+
-e DB_PASSWORD=your_secure_password \
47+
-e SESSION_SECRET=$(openssl rand -base64 32) \
48+
--link openfamily-db:db \
49+
nexaflow/openfamily:latest
50+
```
51+
52+
## 🔧 Configuration
53+
54+
### Environment Variables
55+
56+
| Variable | Description | Default | Required |
57+
|----------|-------------|---------|----------|
58+
| `DB_HOST` | PostgreSQL host | `localhost` ||
59+
| `DB_PORT` | PostgreSQL port | `5432` ||
60+
| `DB_NAME` | Database name | `openfamily` ||
61+
| `DB_USER` | Database user | `openfamily` ||
62+
| `DB_PASSWORD` | Database password | - ||
63+
| `SESSION_SECRET` | Session secret key | - ||
64+
| `PORT` | Application port | `3000` ||
65+
| `NODE_ENV` | Environment | `production` ||
66+
67+
### Volumes
68+
69+
- `/app/data` - Application data (uploads, cache)
70+
- PostgreSQL data is stored in named volume `postgres_data`
71+
72+
## 📦 Available Tags
73+
74+
- `latest` - Latest stable release
75+
- `v1.0.0` - Specific version
76+
- `v1.0` - Major.minor version
77+
- `v1` - Major version
78+
- `main` - Latest commit on main branch
79+
80+
## ✨ Features
81+
82+
- 📅 **Calendar** - Shared calendar with notifications
83+
- 🍽️ **Meal Planning** - Weekly meal planner with recipes
84+
- 🛒 **Shopping Lists** - Smart lists with categorization
85+
- 💰 **Budget Tracking** - Monthly expense monitoring
86+
- 📋 **Tasks** - Recurring tasks with assignments
87+
- 👨‍👩‍👧‍👦 **Family Profiles** - Health records and emergency contacts
88+
- 📊 **Statistics** - Analytics dashboard
89+
- 🔒 **Privacy** - Self-hosted with optional encryption
90+
91+
## 🌐 Internationalization
92+
93+
Available in:
94+
- 🇫🇷 French
95+
- 🇬🇧 English
96+
- 🇩🇪 German
97+
- 🇪🇸 Spanish
98+
99+
## 🛠️ Tech Stack
100+
101+
- **Frontend**: React + TypeScript + Vite 7
102+
- **Backend**: Node.js + Express
103+
- **Database**: PostgreSQL 17
104+
- **UI**: TailwindCSS + shadcn/ui
105+
106+
## 📖 Documentation
107+
108+
- [GitHub Repository](https://github.com/NexaFlowFrance/OpenFamily)
109+
- [Installation Guide](https://github.com/NexaFlowFrance/OpenFamily/blob/main/scripts/README.md)
110+
- [Architecture](https://github.com/NexaFlowFrance/OpenFamily/blob/main/docs/ARCHITECTURE.md)
111+
- [Changelog](https://github.com/NexaFlowFrance/OpenFamily/blob/main/CHANGELOG.md)
112+
113+
## 🔐 Security
114+
115+
- End-to-end encryption (AES-256-GCM)
116+
- No telemetry or tracking
117+
- GDPR compliant
118+
- Regular security updates
119+
120+
## 🐛 Issues & Support
121+
122+
- [Report Issues](https://github.com/NexaFlowFrance/OpenFamily/issues)
123+
- [Discussions](https://github.com/NexaFlowFrance/OpenFamily/discussions)
124+
125+
## 📄 License
126+
127+
MIT License - see [LICENSE](https://github.com/NexaFlowFrance/OpenFamily/blob/main/LICENSE)
128+
129+
## 🙏 Contributing
130+
131+
Contributions are welcome! See [CONTRIBUTING.md](https://github.com/NexaFlowFrance/OpenFamily/blob/main/CONTRIBUTING.md)
132+
133+
---
134+
135+
**Maintained by**: [NexaFlow France](https://github.com/NexaFlowFrance)

.dockerignore

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Dependencies
2+
**/node_modules
3+
npm-debug.log*
4+
yarn-debug.log*
5+
yarn-error.log*
6+
pnpm-debug.log*
7+
.pnpm-store/
8+
.yarn/
9+
10+
# Build outputs
11+
dist/
12+
build/
13+
out/
14+
client/dist/
15+
*.dist
16+
17+
# Development and IDE
18+
.git/
19+
.github/
20+
.vscode/
21+
.idea/
22+
*.log
23+
24+
# Environment and config files
25+
.env*
26+
*.local
27+
28+
# OS files
29+
.DS_Store
30+
Thumbs.db
31+
32+
# Build artifacts
33+
android/build/
34+
android/app/build/
35+
android/.gradle/
36+
android/local.properties
37+
ios/App/build/
38+
ios/App/Pods/
39+
ios/App/*.xcworkspace/
40+
ios/App/*.xcodeproj/xcuserdata/
41+
42+
# Cache and temporary
43+
.cache/
44+
.parcel-cache/
45+
.rpt2_cache/
46+
.rts2_cache*/
47+
.nyc_output/
48+
tmp/
49+
temp/
50+
51+
# Documentation (development only)
52+
docs/
53+
README*.md
54+
*.md
55+
!DOCKER_HUB.md
56+
57+
# Test files
58+
coverage/
59+
*.test.js
60+
*.spec.js
61+
test/
62+
tests/
63+
64+
# Backup and archives
65+
backups/
66+
*.tar.gz
67+
*.zip
68+
*.bak
69+
70+
# SSL and certificates (generated at runtime)
71+
docker/ssl/
72+
*.pem
73+
*.key
74+
*.crt
75+
76+
# Scripts (not needed in container)
77+
scripts/
78+
.dockerignore

.env.example

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Database Configuration (REQUIRED - Change this password!)
2+
DB_PASSWORD=change-this-secure-password-123
3+
DB_NAME=openfamily
4+
DB_USER=openfamily
5+
DB_HOST=postgres
6+
DB_PORT=5432
7+
8+
# Application Configuration
9+
NODE_ENV=production
10+
PORT=3000
11+
12+
# Optional: Web Push Notifications (for mobile notifications)
13+
# Generate keys with: npx web-push generate-vapid-keys
14+
# VAPID_PUBLIC_KEY=your-vapid-public-key
15+
# VAPID_PRIVATE_KEY=your-vapid-private-key
16+
# VAPID_SUBJECT=mailto:your-email@example.com
17+
18+
# Optional: Custom branding
19+
# APP_NAME=OpenFamily
20+
# APP_DESCRIPTION=Family organization and communication app
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
name: 🐛 Bug Report
3+
about: Signaler un problème ou un comportement inattendu
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## 🐛 Description du bug
10+
11+
Une description claire et concise du bug.
12+
13+
## 📝 Étapes pour reproduire
14+
15+
1. Aller sur '...'
16+
2. Cliquer sur '...'
17+
3. Voir l'erreur
18+
19+
## ✅ Comportement attendu
20+
21+
Une description claire de ce qui devrait se passer.
22+
23+
## ❌ Comportement actuel
24+
25+
Ce qui se passe actuellement.
26+
27+
## 📸 Captures d'écran
28+
29+
Si applicable, ajoutez des captures d'écran pour illustrer le problème.
30+
31+
## 🖥️ Environnement
32+
33+
- **OS** : [ex. Windows 11, macOS 14, Android 13]
34+
- **Navigateur** : [ex. Chrome 120, Safari 17, Firefox 121]
35+
- **Version de l'application** : [ex. 1.0.0]
36+
- **Type d'installation** : [PWA / APK / Web / Local]
37+
38+
## 📋 Informations supplémentaires
39+
40+
Tout autre contexte pertinent au problème.
41+
42+
## 🔍 Logs de console (optionnel)
43+
44+
```
45+
Collez ici les logs de la console du navigateur (F12 → Console)
46+
```

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: 💬 Discussion générale
4+
url: https://github.com/NexaFlowFrance/OpenFamily/discussions
5+
about: Posez une question ou discutez du projet
6+
- name: 📧 Contact
7+
url: mailto:contact@nexaflow.fr
8+
about: Contactez-nous directement par email
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
name: ✨ Feature Request
3+
about: Proposer une nouvelle fonctionnalité
4+
title: '[FEATURE] '
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## 🎯 Problème à résoudre
10+
11+
Une description claire du problème que cette fonctionnalité résoudrait.
12+
Ex : Je suis toujours frustré quand [...]
13+
14+
## 💡 Solution proposée
15+
16+
Une description claire de ce que vous aimeriez voir implémenté.
17+
18+
## 🔄 Alternatives envisagées
19+
20+
Une description des solutions ou fonctionnalités alternatives que vous avez envisagées.
21+
22+
## 📊 Cas d'usage
23+
24+
Décrivez comment cette fonctionnalité serait utilisée :
25+
26+
1. En tant qu'utilisateur, je voudrais...
27+
2. Pour que je puisse...
28+
3. Afin de...
29+
30+
## 📸 Maquettes ou exemples (optionnel)
31+
32+
Si vous avez des maquettes, captures d'écran ou exemples visuels, ajoutez-les ici.
33+
34+
## 🎨 Priorité estimée
35+
36+
- [ ] Critique (l'application est inutilisable sans)
37+
- [ ] Importante (amélioration majeure)
38+
- [ ] Moyenne (amélioration appréciable)
39+
- [ ] Faible (nice to have)
40+
41+
## 📋 Informations supplémentaires
42+
43+
Tout autre contexte ou information pertinente.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# 🔄 Pull Request
2+
3+
## 📝 Description
4+
5+
Décrivez brièvement les changements apportés par cette PR.
6+
7+
## 🎯 Type de changement
8+
9+
- [ ] 🐛 Bug fix (changement non-breaking qui corrige un problème)
10+
- [ ] ✨ Nouvelle fonctionnalité (changement non-breaking qui ajoute une fonctionnalité)
11+
- [ ] 💥 Breaking change (fix ou fonctionnalité qui causerait un comportement différent de l'existant)
12+
- [ ] 📝 Documentation (changements uniquement dans la documentation)
13+
- [ ] 🎨 Style (formatage, missing semi colons, etc; pas de changement de code)
14+
- [ ] ♻️ Refactoring (ni fix ni feature, amélioration du code)
15+
- [ ] ⚡ Performance (amélioration des performances)
16+
- [ ] ✅ Tests (ajout ou correction de tests)
17+
- [ ] 🔧 Chore (changements de build, dépendances, etc)
18+
19+
## 🔗 Issue liée
20+
21+
Fixes #(numéro de l'issue)
22+
23+
## ✅ Checklist
24+
25+
- [ ] Mon code suit le style de ce projet
26+
- [ ] J'ai effectué une auto-review de mon propre code
27+
- [ ] J'ai commenté mon code, en particulier dans les zones difficiles à comprendre
28+
- [ ] J'ai fait les changements correspondants dans la documentation
29+
- [ ] Mes changements ne génèrent pas de nouveaux warnings
30+
- [ ] J'ai testé mes changements sur plusieurs navigateurs/appareils
31+
- [ ] Les fonctionnalités existantes fonctionnent toujours correctement
32+
33+
## 📸 Captures d'écran (si applicable)
34+
35+
Ajoutez des captures d'écran pour illustrer les changements visuels.
36+
37+
## 🧪 Comment tester
38+
39+
Décrivez les étapes pour tester vos changements :
40+
41+
1.
42+
2.
43+
3.
44+
45+
## 📋 Notes supplémentaires
46+
47+
Toute information supplémentaire qui pourrait être utile pour les reviewers.

0 commit comments

Comments
 (0)