Initial commit - mini cms final
This commit is contained in:
0
infrastructure/README.md
Normal file
0
infrastructure/README.md
Normal file
@@ -3,19 +3,18 @@ version: '3.8'
|
||||
services:
|
||||
app:
|
||||
build:
|
||||
context: ../forum-project
|
||||
dockerfile: Dockerfile
|
||||
context: ../forum-project
|
||||
dockerfile: Dockerfile
|
||||
container_name: php_app
|
||||
ports:
|
||||
- "8080:80"
|
||||
- "8080:80"
|
||||
volumes:
|
||||
- ../forum-project:/var/www/html
|
||||
env_file:
|
||||
- .env
|
||||
|
||||
|
||||
depends_on:
|
||||
- mysql
|
||||
- mysql
|
||||
- minio
|
||||
|
||||
mysql:
|
||||
image: mysql:8.1
|
||||
@@ -33,6 +32,7 @@ services:
|
||||
volumes:
|
||||
- mysql_data:/var/lib/mysql
|
||||
- ./setup-mysql:/docker-entrypoint-initdb.d
|
||||
- ./setup-mysql/my.cnf:/etc/mysql/conf.d/my.cnf
|
||||
|
||||
|
||||
minio:
|
||||
@@ -64,5 +64,3 @@ services:
|
||||
volumes:
|
||||
mysql_data:
|
||||
minio_data:
|
||||
|
||||
|
||||
|
||||
29
infrastructure/setup-minio/init-minio.sh
Normal file → Executable file
29
infrastructure/setup-minio/init-minio.sh
Normal file → Executable file
@@ -1,13 +1,26 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# Attendre que MinIO démarre
|
||||
echo "Waiting for MinIO to start..."
|
||||
sleep 10
|
||||
echo "⏳ Attente du démarrage de MinIO..."
|
||||
sleep 5
|
||||
|
||||
# Créer un alias pour MinIO
|
||||
mc alias set localminio http://minio:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD
|
||||
# Configuration du client MinIO (mc)
|
||||
echo "🔧 Configuration du client MinIO..."
|
||||
mc alias set myminio http://minio:9000 "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD"
|
||||
|
||||
# Créer le bucket (ignore erreur si existe déjà)
|
||||
mc mb localminio/bucketforum || true
|
||||
# Création du bucket s’il n’existe pas déjà
|
||||
echo "🪣 Vérification du bucket 'bucketforum'..."
|
||||
if ! mc ls myminio | grep -q "bucketforum"; then
|
||||
mc mb myminio/bucketforum
|
||||
echo "✅ Bucket 'bucketforum' créé."
|
||||
else
|
||||
echo "ℹ️ Bucket 'bucketforum' déjà existant."
|
||||
fi
|
||||
|
||||
# Définir une politique publique sur le bucket (optionnel)
|
||||
mc policy set public localminio/bucketforum
|
||||
# Rendre le bucket public
|
||||
echo "🌍 Configuration de la politique publique..."
|
||||
mc anonymous set public myminio/bucketforum
|
||||
|
||||
# Vérification du statut
|
||||
echo "✅ Bucket 'bucketforum' est public et prêt à être utilisé."
|
||||
|
||||
@@ -1,33 +1,41 @@
|
||||
-- encodage base
|
||||
CREATE DATABASE IF NOT EXISTS forum_database
|
||||
CHARACTER SET utf8mb4
|
||||
COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
USE forum_database;
|
||||
|
||||
-- table utilisateurs
|
||||
CREATE TABLE IF NOT EXISTS utilisateurs (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
username VARCHAR(50) NOT NULL UNIQUE,
|
||||
password VARCHAR(255) NOT NULL,
|
||||
email VARCHAR(100) UNIQUE,
|
||||
role VARCHAR(50) DEFAULT 'user',
|
||||
bio TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
|
||||
profile_picture VARCHAR(255),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- table posts
|
||||
CREATE TABLE IF NOT EXISTS posts (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
user_id INT NOT NULL,
|
||||
title VARCHAR(100) NOT NULL,
|
||||
content TEXT NOT NULL,
|
||||
title VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
content LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
image_url VARCHAR(255),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES utilisateurs(id)
|
||||
);
|
||||
date_creation DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES utilisateurs(id) ON DELETE CASCADE
|
||||
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
INSERT INTO utilisateurs (username, password, email)
|
||||
-- données initiales
|
||||
INSERT INTO utilisateurs (username, password, email, role)
|
||||
VALUES
|
||||
('aya', 'password123', 'ayae@example.com'),
|
||||
('tess', 'password456', 'tess@example.com');
|
||||
('admin', '$2y$10$4U8a64xTrD/GQDnj8tCNsemA47765p.5gtflWWBKl6UGl2aj/uOlC', 'admin@example.com', 'admin'),
|
||||
('aya', '$2y$10$vhtGydzlL8AFMbRTeRVC2OtDkud47TZCHt98HcAjjGGVlLlm2Bn66', 'aya@example.com', 'user');
|
||||
|
||||
INSERT INTO posts (user_id, title, content)
|
||||
VALUES
|
||||
(1, 'Bienvenue sur le forum', 'Ceci est le premier post !'),
|
||||
(2, 'Deuxième post', 'Un autre test pour vérifier la base.');
|
||||
ALTER TABLE posts
|
||||
DROP FOREIGN KEY posts_ibfk_1;
|
||||
|
||||
ALTER TABLE posts
|
||||
ADD CONSTRAINT posts_ibfk_1
|
||||
FOREIGN KEY (user_id) REFERENCES utilisateurs(id)
|
||||
ON DELETE CASCADE;
|
||||
(1, 'Bienvenue sur le Mini CMS', 'Ceci est un article de démonstration publié par l’administrateur !'),
|
||||
(2, 'Un premier article test', 'Bienvenue dans notre CMS simplifié. Partagez vos idées ici !');
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
[mysqld]
|
||||
character-set-server = utf8mb4
|
||||
collation-server = utf8mb4_unicode_ci
|
||||
skip-character-set-client-handshake
|
||||
|
||||
[client]
|
||||
default-character-set = utf8mb4
|
||||
|
||||
[mysql]
|
||||
default-character-set = utf8mb4
|
||||
|
||||
Reference in New Issue
Block a user