Initial commit - Mini CMS complet (PHP + Docker + MinIO)

This commit is contained in:
Aya Tess tess
2025-11-01 16:42:38 +01:00
commit 9a57013505
3035 changed files with 131442 additions and 0 deletions

17
infrastructure/.env Normal file
View File

@@ -0,0 +1,17 @@
# MySQL
MYSQL_ROOT_PASSWORD=rootpassword
MYSQL_DATABASE=forum_database
MYSQL_USER=myuser
MYSQL_PASSWORD=mypassword
MYSQL_PORT=3306
# MinIO
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
MINIO_PORT=9000
MINIO_CONSOLE_PORT=9001
MINIO_ENDPOINT=http://minio:9000
MINIO_BUCKET=bucketforum
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_REGION=us-east-1

View File

@@ -0,0 +1,68 @@
version: '3.8'
services:
app:
build:
context: ../forum-project
dockerfile: Dockerfile
container_name: php_app
ports:
- "8080:80"
volumes:
- ../forum-project:/var/www/html
env_file:
- .env
depends_on:
- mysql
mysql:
image: mysql:8.1
container_name: mysql_container
restart: always
ports:
- "${MYSQL_PORT}:3306"
env_file:
- .env
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- mysql_data:/var/lib/mysql
- ./setup-mysql:/docker-entrypoint-initdb.d
minio:
image: minio/minio:latest
container_name: minio_container
restart: always
ports:
- "${MINIO_PORT}:9000"
- "${MINIO_CONSOLE_PORT}:9001"
env_file:
- .env
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
command: server /data --console-address ":${MINIO_CONSOLE_PORT}"
volumes:
- minio_data:/data
minio-init:
image: minio/mc:latest
depends_on:
- minio
env_file:
- .env
volumes:
- ./setup-minio/init-minio.sh:/init-minio.sh
entrypoint: [ "/bin/sh", "/init-minio.sh" ]
volumes:
mysql_data:
minio_data:

View File

@@ -0,0 +1,13 @@
#!/bin/sh
# Attendre que MinIO démarre
echo "Waiting for MinIO to start..."
sleep 10
# Créer un alias pour MinIO
mc alias set localminio http://minio:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD
# Créer le bucket (ignore erreur si existe déjà)
mc mb localminio/bucketforum || true
# Définir une politique publique sur le bucket (optionnel)
mc policy set public localminio/bucketforum

View File

@@ -0,0 +1,33 @@
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,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
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,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES utilisateurs(id)
);
INSERT INTO utilisateurs (username, password, email)
VALUES
('aya', 'password123', 'ayae@example.com'),
('tess', 'password456', 'tess@example.com');
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;