feat: setup Docker + MariaDB pour déploiement self-hosted
Deploy to Pacha Family / deploy (push) Failing after 3s
Deploy to Pacha Family / deploy (push) Failing after 3s
- Dockerfile (PHP 8.2 Apache + pdo_mysql) - docker-compose.yml (househub + mariadb + Traefik househub.nas.percolouco.com) - schema.sql (22 tables + données initiales) - includes/db.php adapté pour variables d'environnement - .env.example, .gitignore, README mis à jour Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
3f7ed9c2f1
commit
634e4647da
@@ -0,0 +1,5 @@
|
|||||||
|
# Copier ce fichier en .env et adapter les valeurs
|
||||||
|
DB_NAME=househub
|
||||||
|
DB_USER=househub
|
||||||
|
DB_PASS=changeme
|
||||||
|
DB_ROOT_PASS=rootchangeme
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
househub_db_data
|
||||||
|
.env
|
||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
FROM php:8.2-apache
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
libpng-dev libjpeg-dev libwebp-dev libzip-dev libonig-dev \
|
||||||
|
&& docker-php-ext-install pdo pdo_mysql mysqli mbstring zip \
|
||||||
|
&& a2enmod rewrite \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY . /var/www/html/
|
||||||
|
|
||||||
|
RUN chown -R www-data:www-data /var/www/html
|
||||||
|
|
||||||
|
COPY docker/apache.conf /etc/apache2/sites-available/000-default.conf
|
||||||
@@ -1,6 +1,31 @@
|
|||||||
🦙 HouseHub OS
|
🦙 HouseHub OS
|
||||||
Système de gestion familiale sur-mesure : Budget, Calendrier, Voyages et Cadeaux.
|
Système de gestion familiale sur-mesure : Budget, Calendrier, Voyages et Cadeaux.
|
||||||
|
|
||||||
|
## 🚀 Déploiement (Docker)
|
||||||
|
|
||||||
|
**Prérequis** : Docker, Docker Compose, Traefik sur le réseau `proxy`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Cloner le repo
|
||||||
|
git clone http://<gitea>/perco/HouseHub.git && cd HouseHub
|
||||||
|
|
||||||
|
# 2. Créer le fichier d'environnement
|
||||||
|
cp .env.example .env
|
||||||
|
# Éditer .env pour changer les mots de passe
|
||||||
|
|
||||||
|
# 3. Lancer
|
||||||
|
docker compose up -d --build
|
||||||
|
|
||||||
|
# 4. Accéder à l'app
|
||||||
|
# https://househub.nas.percolouco.com
|
||||||
|
```
|
||||||
|
|
||||||
|
La base de données est **initialisée automatiquement** depuis `schema.sql` au premier démarrage.
|
||||||
|
|
||||||
|
Compte par défaut : `admin` / `password` → **à changer immédiatement** dans la table `pf_users`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
📝 Présentation du projet
|
📝 Présentation du projet
|
||||||
HouseHub est une application web privée conçue pour centraliser l'organisation de la tribu. Elle repose sur une stack légère (PHP natif / Vanilla JS) pour garantir rapidité et portabilité, avec un support complet de l'internationalisation (FR/CA).
|
HouseHub est une application web privée conçue pour centraliser l'organisation de la tribu. Elle repose sur une stack légère (PHP natif / Vanilla JS) pour garantir rapidité et portabilité, avec un support complet de l'internationalisation (FR/CA).
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
services:
|
||||||
|
|
||||||
|
househub:
|
||||||
|
build: .
|
||||||
|
container_name: househub
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
househub-db:
|
||||||
|
condition: service_healthy
|
||||||
|
environment:
|
||||||
|
DB_HOST: househub-db
|
||||||
|
DB_NAME: ${DB_NAME:-househub}
|
||||||
|
DB_USER: ${DB_USER:-househub}
|
||||||
|
DB_PASS: ${DB_PASS:-changeme}
|
||||||
|
networks:
|
||||||
|
- househub_net
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.househub.rule=Host(`househub.nas.percolouco.com`)"
|
||||||
|
- "traefik.http.routers.househub.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.househub.tls=true"
|
||||||
|
- "traefik.http.routers.househub.tls.certresolver=letsencrypt"
|
||||||
|
- "traefik.http.services.househub.loadbalancer.server.port=80"
|
||||||
|
|
||||||
|
househub-db:
|
||||||
|
image: mariadb:11
|
||||||
|
container_name: househub-db
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS:-rootchangeme}
|
||||||
|
MYSQL_DATABASE: ${DB_NAME:-househub}
|
||||||
|
MYSQL_USER: ${DB_USER:-househub}
|
||||||
|
MYSQL_PASSWORD: ${DB_PASS:-changeme}
|
||||||
|
volumes:
|
||||||
|
- househub_db_data:/var/lib/mysql
|
||||||
|
- ./schema.sql:/docker-entrypoint-initdb.d/schema.sql:ro
|
||||||
|
networks:
|
||||||
|
- househub_net
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
househub_db_data:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
househub_net:
|
||||||
|
proxy:
|
||||||
|
external: true
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<VirtualHost *:80>
|
||||||
|
DocumentRoot /var/www/html
|
||||||
|
<Directory /var/www/html>
|
||||||
|
AllowOverride All
|
||||||
|
Require all granted
|
||||||
|
Options -Indexes
|
||||||
|
</Directory>
|
||||||
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||||
|
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||||
|
</VirtualHost>
|
||||||
+6
-34
@@ -2,31 +2,13 @@
|
|||||||
if (file_exists(__DIR__ . '/config.php')) {
|
if (file_exists(__DIR__ . '/config.php')) {
|
||||||
require_once __DIR__ . '/config.php';
|
require_once __DIR__ . '/config.php';
|
||||||
}
|
}
|
||||||
// Activer erreurs
|
|
||||||
ini_set('display_errors', 1);
|
|
||||||
ini_set('display_startup_errors', 1);
|
|
||||||
error_reporting(E_ALL);
|
|
||||||
|
|
||||||
// Détection de l'environnement
|
|
||||||
$isLocal = (strpos($_SERVER['HTTP_HOST'] ?? 'localhost', 'localhost') !== false ||
|
|
||||||
strpos($_SERVER['HTTP_HOST'] ?? '', '127.0.0.1') !== false ||
|
|
||||||
strpos($_SERVER['HTTP_HOST'] ?? '', '::1') !== false);
|
|
||||||
|
|
||||||
if ($isLocal) {
|
|
||||||
// Configuration XAMPP local
|
|
||||||
$host = 'localhost';
|
|
||||||
$db = 'percolo314'; // Même nom que sur OVH pour simplifier
|
|
||||||
$user = 'root';
|
|
||||||
$pass = ''; // Généralement vide sur XAMPP
|
|
||||||
} else {
|
|
||||||
// Configuration serveur OVH
|
|
||||||
$host = 'percolo314.mysql.db';
|
|
||||||
$db = 'percolo314';
|
|
||||||
$user = 'percolo314';
|
|
||||||
$pass = 'Wxcvbn99';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
$host = getenv('DB_HOST') ?: 'househub-db';
|
||||||
|
$db = getenv('DB_NAME') ?: 'househub';
|
||||||
|
$user = getenv('DB_USER') ?: 'househub';
|
||||||
|
$pass = getenv('DB_PASS') ?: 'changeme';
|
||||||
$charset = 'utf8mb4';
|
$charset = 'utf8mb4';
|
||||||
|
|
||||||
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
|
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
|
||||||
|
|
||||||
$options = [
|
$options = [
|
||||||
@@ -39,18 +21,8 @@ $options = [
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$pdo = new PDO($dsn, $user, $pass, $options);
|
$pdo = new PDO($dsn, $user, $pass, $options);
|
||||||
|
|
||||||
// Forcer la collation
|
|
||||||
$pdo->exec("SET collation_connection = utf8mb4_general_ci");
|
$pdo->exec("SET collation_connection = utf8mb4_general_ci");
|
||||||
$pdo->exec("SET collation_database = utf8mb4_general_ci");
|
|
||||||
$pdo->exec("SET collation_server = utf8mb4_general_ci");
|
|
||||||
|
|
||||||
// Debug optionnel (à commenter en production)
|
|
||||||
// $env = $isLocal ? 'LOCAL' : 'SERVEUR';
|
|
||||||
// echo "<!-- Connecté en $env sur $host/$db -->";
|
|
||||||
|
|
||||||
} catch (\PDOException $e) {
|
} catch (\PDOException $e) {
|
||||||
$environment = $isLocal ? 'local (XAMPP)' : 'serveur (OVH)';
|
die("Erreur de connexion BDD : " . $e->getMessage());
|
||||||
die("Erreur de connexion ($environment) : " . $e->getMessage());
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
+237
@@ -0,0 +1,237 @@
|
|||||||
|
-- HouseHub — Schéma MySQL
|
||||||
|
-- Créer la base : CREATE DATABASE househub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ─── Utilisateurs ─────────────────────────────────────────────────────────────
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_users (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
username VARCHAR(100) NOT NULL UNIQUE,
|
||||||
|
password_hash VARCHAR(255) NOT NULL,
|
||||||
|
display_name VARCHAR(100) NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
-- ─── Personnes ────────────────────────────────────────────────────────────────
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_people (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
name VARCHAR(100) NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
-- ─── Calendrier familial ──────────────────────────────────────────────────────
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_events (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
event_date DATE NOT NULL,
|
||||||
|
event_type VARCHAR(50) NOT NULL,
|
||||||
|
person_id INT NOT NULL,
|
||||||
|
duration DECIMAL(4,2) DEFAULT 1.0
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_leaves (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
person_id INT NOT NULL,
|
||||||
|
leave_type VARCHAR(50) NOT NULL,
|
||||||
|
leave_date DATE NOT NULL,
|
||||||
|
duration DECIMAL(4,2) DEFAULT 1.0,
|
||||||
|
UNIQUE KEY uq_leave (person_id, leave_type, leave_date)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_leave_balances (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
person_id INT NOT NULL,
|
||||||
|
leave_type VARCHAR(50) NOT NULL,
|
||||||
|
initial_balance DECIMAL(6,2) DEFAULT 0,
|
||||||
|
balance_year INT NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_leave_snapshots (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
person_id INT NOT NULL,
|
||||||
|
leave_type VARCHAR(50) NOT NULL,
|
||||||
|
snapshot_date DATE NOT NULL,
|
||||||
|
remaining_balance DECIMAL(6,2) DEFAULT 0
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_person_leave_meta (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
person_id INT NOT NULL UNIQUE,
|
||||||
|
anniversary_date DATE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_calendar_weeks (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
year INT NOT NULL,
|
||||||
|
week_iso_year INT NOT NULL,
|
||||||
|
week_iso_number INT NOT NULL,
|
||||||
|
week_label VARCHAR(20),
|
||||||
|
month INT,
|
||||||
|
month_name VARCHAR(20),
|
||||||
|
week_start_date DATE,
|
||||||
|
mon_date DATE, tue_date DATE, wed_date DATE,
|
||||||
|
thu_date DATE, fri_date DATE, sat_date DATE, sun_date DATE,
|
||||||
|
UNIQUE KEY uq_week (year, week_iso_year, week_iso_number)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
-- ─── Budget ───────────────────────────────────────────────────────────────────
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_budget_items (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
amount DECIMAL(10,2) DEFAULT 0,
|
||||||
|
category VARCHAR(100),
|
||||||
|
type VARCHAR(50),
|
||||||
|
payment_day INT DEFAULT NULL,
|
||||||
|
is_estimate TINYINT(1) DEFAULT 0,
|
||||||
|
reg_month VARCHAR(7) DEFAULT NULL,
|
||||||
|
mapping_keywords TEXT DEFAULT NULL,
|
||||||
|
holiday_id INT DEFAULT NULL,
|
||||||
|
is_checked TINYINT(1) DEFAULT 0,
|
||||||
|
sort_order INT DEFAULT 0
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_expenses (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
date_exp DATE NOT NULL,
|
||||||
|
gestion_month VARCHAR(7) NOT NULL,
|
||||||
|
category VARCHAR(100),
|
||||||
|
label VARCHAR(255),
|
||||||
|
amount DECIMAL(10,2) DEFAULT 0,
|
||||||
|
import_ref VARCHAR(255) DEFAULT NULL,
|
||||||
|
budget_item_id INT DEFAULT NULL,
|
||||||
|
holiday_id INT DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_alloc_categories (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
name VARCHAR(100) NOT NULL,
|
||||||
|
target DECIMAL(10,2) DEFAULT 0,
|
||||||
|
holiday_id INT DEFAULT NULL,
|
||||||
|
sort_order INT DEFAULT 0
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_alloc_values (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
month_date VARCHAR(7) NOT NULL,
|
||||||
|
cat_id INT NOT NULL,
|
||||||
|
amount_alex DECIMAL(10,2) DEFAULT 0,
|
||||||
|
amount_laia DECIMAL(10,2) DEFAULT 0,
|
||||||
|
UNIQUE KEY uq_alloc (month_date, cat_id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_savings (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
owner VARCHAR(50) NOT NULL,
|
||||||
|
month_date VARCHAR(7) NOT NULL,
|
||||||
|
category VARCHAR(100) NOT NULL,
|
||||||
|
amount DECIMAL(10,2) DEFAULT 0,
|
||||||
|
holiday_id INT DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_bank_snapshots (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
snapshot_date DATE NOT NULL,
|
||||||
|
amount DECIMAL(12,2) DEFAULT 0
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_salary_config (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
year INT NOT NULL,
|
||||||
|
person VARCHAR(50) NOT NULL,
|
||||||
|
salary DECIMAL(10,2) DEFAULT 0,
|
||||||
|
mensualite DECIMAL(10,2) DEFAULT 0,
|
||||||
|
frais_func DECIMAL(10,2) DEFAULT 0,
|
||||||
|
eco_perso DECIMAL(10,2) DEFAULT 0,
|
||||||
|
eco_family DECIMAL(10,2) DEFAULT 0,
|
||||||
|
UNIQUE KEY uq_salary (year, person)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_import_rules (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
keyword VARCHAR(255) NOT NULL UNIQUE,
|
||||||
|
category VARCHAR(100) NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_notes (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
note_type VARCHAR(100) NOT NULL,
|
||||||
|
reference_id VARCHAR(100) NOT NULL,
|
||||||
|
content TEXT,
|
||||||
|
UNIQUE KEY uq_note (note_type, reference_id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
-- ─── Voyages / Holidays ───────────────────────────────────────────────────────
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_holidays (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
title VARCHAR(255) NOT NULL,
|
||||||
|
period_hint VARCHAR(100) DEFAULT NULL,
|
||||||
|
start_date DATE DEFAULT NULL,
|
||||||
|
end_date DATE DEFAULT NULL,
|
||||||
|
status VARCHAR(50) DEFAULT 'draft',
|
||||||
|
budget_food DECIMAL(10,2) DEFAULT 0,
|
||||||
|
budget_extra DECIMAL(10,2) DEFAULT 0,
|
||||||
|
notes TEXT DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_holidays_items (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
holiday_id INT NOT NULL,
|
||||||
|
category VARCHAR(100),
|
||||||
|
name VARCHAR(255),
|
||||||
|
amount DECIMAL(10,2) DEFAULT 0,
|
||||||
|
is_paid TINYINT(1) DEFAULT 0,
|
||||||
|
location_name VARCHAR(255) DEFAULT NULL,
|
||||||
|
lat DECIMAL(10,7) DEFAULT NULL,
|
||||||
|
lng DECIMAL(10,7) DEFAULT NULL,
|
||||||
|
sort_order INT DEFAULT 0,
|
||||||
|
notes TEXT DEFAULT NULL,
|
||||||
|
item_date DATE DEFAULT NULL,
|
||||||
|
item_time TIME DEFAULT NULL,
|
||||||
|
step_start_date DATE DEFAULT NULL,
|
||||||
|
step_end_date DATE DEFAULT NULL,
|
||||||
|
duration INT DEFAULT NULL,
|
||||||
|
is_return TINYINT(1) DEFAULT 0
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_holidays_ideas (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
title VARCHAR(255) NOT NULL,
|
||||||
|
period_hint VARCHAR(100) DEFAULT NULL,
|
||||||
|
start_date DATE DEFAULT NULL,
|
||||||
|
end_date DATE DEFAULT NULL,
|
||||||
|
status VARCHAR(50) DEFAULT 'idea',
|
||||||
|
budget_food DECIMAL(10,2) DEFAULT 0,
|
||||||
|
budget_extra DECIMAL(10,2) DEFAULT 0,
|
||||||
|
notes TEXT DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_geocode_cache (
|
||||||
|
q_hash CHAR(64) PRIMARY KEY,
|
||||||
|
q VARCHAR(255),
|
||||||
|
lat DECIMAL(10,7),
|
||||||
|
lng DECIMAL(10,7),
|
||||||
|
display_name TEXT,
|
||||||
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
-- ─── Cadeaux ──────────────────────────────────────────────────────────────────
|
||||||
|
CREATE TABLE IF NOT EXISTS pf_gifts (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
year INT NOT NULL,
|
||||||
|
adult_name VARCHAR(100) NOT NULL,
|
||||||
|
payer_name VARCHAR(100),
|
||||||
|
child_name VARCHAR(100) NOT NULL,
|
||||||
|
occasion VARCHAR(50) NOT NULL,
|
||||||
|
gift_description TEXT NOT NULL,
|
||||||
|
product_link VARCHAR(500) DEFAULT NULL,
|
||||||
|
amount DECIMAL(8,2) DEFAULT 0
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
-- ─── Données initiales ────────────────────────────────────────────────────────
|
||||||
|
-- Utilisateur admin (mot de passe : changeme → à modifier !)
|
||||||
|
INSERT IGNORE INTO pf_users (id, username, password_hash, display_name)
|
||||||
|
VALUES (1, 'admin', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'Admin');
|
||||||
|
|
||||||
|
-- Personnes (IDs fixes correspondant aux constantes dans config.php)
|
||||||
|
INSERT IGNORE INTO pf_people (id, name) VALUES (2, 'Alex');
|
||||||
|
INSERT IGNORE INTO pf_people (id, name) VALUES (3, 'Laia');
|
||||||
Reference in New Issue
Block a user