From f548db35ab773577bc6977d5ab070c9b618b6a9b Mon Sep 17 00:00:00 2001 From: Erika Date: Tue, 1 Apr 2025 12:19:05 +0200 Subject: [PATCH 01/10] add readme --- README.md | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 5c88ab2..d7b6667 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,44 @@ -# gesthub +# Projet gesthub + +## Membres + +- Lajus Erika +- Lemoule Duparc Nathan +- LABAT Nino + +## Présentation du projet +Ce projet vise à créer une interface fait pour faciliter la gestion et communication au sein d'un projet ou d'une entreprise. + +On y retrouve deux roles distints : +**1. Admin :** +Gestion des utilisateurs : Création et suppression de comptes par les admins. + + Authentification sécurisée:Avec nom, prénom et mot de passe. + + Gestion des annonces : Les admins peuvent publier des annonces sous forme de post-it qui apparait dans une zone défini sur l'interface des membres. +Chaque annonce a une date limite et disparaît automatiquement une fois la date dépassée. + + Gestion agenda : ajoute les évènement globaux + + Gestionnaire des taches : Création de tableaux, listes et cartes pour l'organisation des tâches. + +**2. Membre :** + Agenda/Planning partagé : +Visibilité des événements globaux ajouté par les admins. +Possibilité d'ajouter des événements personnels. + + Gestion de projets façon Trello : +Possibilité d'ajouter des cartes +Suivi de l'avancement des projets. +Visibilité sur les différents tableaux. + +Messagerie interne : +Système de chat pour la communication en temps réel entre membres. + +Liens vers outils externes : +Boutons pour accéder rapidement à des outils comme Discord, etc. + + + -### Membres -- Lajus Erika -- Lemoule Duparc Nathan -- LABAT Nino \ No newline at end of file From 094eeb769938da53ebe944cab5521b35a9571b86 Mon Sep 17 00:00:00 2001 From: "k6Wz7SqNXTDm@tpaDX2%" Date: Tue, 8 Apr 2025 12:19:56 +0200 Subject: [PATCH 02/10] add base --- Caddyfile | 13 ++++++++ docker-compose.yml | 70 ++++++++++++++++++++++++++++++++++++++++++++ flask-app/Dockerfile | 8 +++++ flask-app/app.py | 16 ++++++++++ start-gesthub.sh | 17 +++++++++++ start-infra.sh | 17 +++++++++++ 6 files changed, 141 insertions(+) create mode 100644 Caddyfile create mode 100644 docker-compose.yml create mode 100644 flask-app/Dockerfile create mode 100644 flask-app/app.py create mode 100755 start-gesthub.sh create mode 100755 start-infra.sh diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..8367583 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,13 @@ +# Caddyfile + +wekan.localhost { + reverse_proxy wekan:8080 +} + +chat.localhost { + reverse_proxy rocketchat:3000 +} + +flask.localhost { + reverse_proxy flask:5000 +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..291ef0c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,70 @@ +services: + caddy: + image: caddy:latest + ports: + - "80:80" + - "443:443" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile + - caddy_data:/data + - caddy_config:/config + depends_on: + - flask + - wekan + - rocketchat + + flask: + build: ./flask-app + environment: + - DB_HOST=mariadb + - DB_USER=flaskuser + - DB_PASSWORD=flaskpass + - DB_NAME=flaskdb + depends_on: + - mariadb + volumes: + - ./flask-app:/app + + mariadb: + image: mariadb:latest + environment: + - MYSQL_ROOT_PASSWORD=rootpass + - MYSQL_DATABASE=flaskdb + - MYSQL_USER=flaskuser + - MYSQL_PASSWORD=flaskpass + volumes: + - mariadb_data:/var/lib/mysql + + wekan: + image: wekanteam/wekan + environment: + - MONGO_URL=mongodb://mongo:27017/wekan + - ROOT_URL=https://wekan.localhost + depends_on: + - mongo + + mongo: + image: mongo:latest + volumes: + - mongo_data:/data/db + + rocketchat: + image: rocketchat/rocket.chat:latest + environment: + - MONGO_URL=mongodb://mongo:27017/rocketchat + - ROOT_URL=https://chat.localhost + - PORT=3000 + ports: + - "3000:3000" + depends_on: + - mongo + - redis + + redis: + image: redis:latest + +volumes: + caddy_data: + caddy_config: + mariadb_data: + mongo_data: diff --git a/flask-app/Dockerfile b/flask-app/Dockerfile new file mode 100644 index 0000000..0b5c45c --- /dev/null +++ b/flask-app/Dockerfile @@ -0,0 +1,8 @@ +FROM python:3.11 + +WORKDIR /app +COPY . /app + +RUN pip install flask flask_sqlalchemy pymysql + +CMD ["python", "app.py"] diff --git a/flask-app/app.py b/flask-app/app.py new file mode 100644 index 0000000..d4e71a7 --- /dev/null +++ b/flask-app/app.py @@ -0,0 +1,16 @@ +# flask-app/app.py +from flask import Flask +from flask_sqlalchemy import SQLAlchemy + +app = Flask(__name__) +app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://flaskuser:flaskpass@mariadb/flaskdb' +app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False + +db = SQLAlchemy(app) + +@app.route('/') +def index(): + return 'Bienvenue sur l’intranet !' + +if __name__ == '__main__': + app.run(host='0.0.0.0') diff --git a/start-gesthub.sh b/start-gesthub.sh new file mode 100755 index 0000000..ad28472 --- /dev/null +++ b/start-gesthub.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +PROJECT_DOMAIN="gesthub" +HOSTS_LINE="127.0.0.1 flask.$PROJECT_DOMAIN wekan.$PROJECT_DOMAIN chat.$PROJECT_DOMAIN" + +echo "🔧 Vérification des droits (sudo peut être requis pour modifier /etc/hosts)..." + +# Ajout dans /etc/hosts si absent +if ! grep -q "$PROJECT_DOMAIN" /etc/hosts; then + echo "✅ Ajout de $PROJECT_DOMAIN dans /etc/hosts..." + echo "$HOSTS_LINE" | sudo tee -a /etc/hosts > /dev/null +else + echo "✔️ Domaine $PROJECT_DOMAIN déjà présent dans /etc/hosts." +fi + +echo "🚀 Lancement des services Docker..." +docker compose up --build diff --git a/start-infra.sh b/start-infra.sh new file mode 100755 index 0000000..ad28472 --- /dev/null +++ b/start-infra.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +PROJECT_DOMAIN="gesthub" +HOSTS_LINE="127.0.0.1 flask.$PROJECT_DOMAIN wekan.$PROJECT_DOMAIN chat.$PROJECT_DOMAIN" + +echo "🔧 Vérification des droits (sudo peut être requis pour modifier /etc/hosts)..." + +# Ajout dans /etc/hosts si absent +if ! grep -q "$PROJECT_DOMAIN" /etc/hosts; then + echo "✅ Ajout de $PROJECT_DOMAIN dans /etc/hosts..." + echo "$HOSTS_LINE" | sudo tee -a /etc/hosts > /dev/null +else + echo "✔️ Domaine $PROJECT_DOMAIN déjà présent dans /etc/hosts." +fi + +echo "🚀 Lancement des services Docker..." +docker compose up --build From b7901b950f1ff725723a86f0dc95fe716066325a Mon Sep 17 00:00:00 2001 From: "k6Wz7SqNXTDm@tpaDX2%" Date: Tue, 8 Apr 2025 12:21:09 +0200 Subject: [PATCH 03/10] testname --- fileTest | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 fileTest diff --git a/fileTest b/fileTest new file mode 100644 index 0000000..e69de29 From ab9a11a77200f40c890ccd35ab086188259cc73f Mon Sep 17 00:00:00 2001 From: "k6Wz7SqNXTDm@tpaDX2%" Date: Tue, 8 Apr 2025 12:24:39 +0200 Subject: [PATCH 04/10] remove fileTest --- fileTest | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 fileTest diff --git a/fileTest b/fileTest deleted file mode 100644 index e69de29..0000000 From ec246dd5c4cdd0b4bbc2f88471083ce62fdcd084 Mon Sep 17 00:00:00 2001 From: "k6Wz7SqNXTDm@tpaDX2%" Date: Tue, 8 Apr 2025 12:26:10 +0200 Subject: [PATCH 05/10] test strange name on github --- fileTest | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 fileTest diff --git a/fileTest b/fileTest new file mode 100644 index 0000000..e69de29 From 7a7ad1e59d4c4d62287bdd028b9654b07182ca88 Mon Sep 17 00:00:00 2001 From: M1n-0 Date: Tue, 8 Apr 2025 12:29:16 +0200 Subject: [PATCH 06/10] remove test --- fileTest | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 fileTest diff --git a/fileTest b/fileTest deleted file mode 100644 index e69de29..0000000 From 17c91e5fa491aa458ec8c83785d17d1d26a1b081 Mon Sep 17 00:00:00 2001 From: M1n-0 Date: Mon, 14 Apr 2025 10:48:11 +0200 Subject: [PATCH 07/10] add base web + change a container --- Caddyfile | 14 ++++++------ docker-compose.yml | 41 ++++++++++++++++++++++------------- {flask-app => web}/Dockerfile | 4 ++-- {flask-app => web}/app.py | 9 ++++---- web/view/index.html | 12 ++++++++++ 5 files changed, 52 insertions(+), 28 deletions(-) rename {flask-app => web}/Dockerfile (78%) rename {flask-app => web}/app.py (72%) create mode 100644 web/view/index.html diff --git a/Caddyfile b/Caddyfile index 8367583..7ecc55b 100644 --- a/Caddyfile +++ b/Caddyfile @@ -1,13 +1,13 @@ # Caddyfile -wekan.localhost { +flask.gesthub { + reverse_proxy flask:5000 +} + +wekan.gesthub { reverse_proxy wekan:8080 } -chat.localhost { - reverse_proxy rocketchat:3000 -} - -flask.localhost { - reverse_proxy flask:5000 +chat.gesthub { + reverse_proxy mattermost:8065 } diff --git a/docker-compose.yml b/docker-compose.yml index 291ef0c..05e0ea8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,5 @@ +version: '3.8' + services: caddy: image: caddy:latest @@ -11,10 +13,10 @@ services: depends_on: - flask - wekan - - rocketchat + - mattermost flask: - build: ./flask-app + build: ./web environment: - DB_HOST=mariadb - DB_USER=flaskuser @@ -23,7 +25,7 @@ services: depends_on: - mariadb volumes: - - ./flask-app:/app + - ./web:/app mariadb: image: mariadb:latest @@ -39,7 +41,7 @@ services: image: wekanteam/wekan environment: - MONGO_URL=mongodb://mongo:27017/wekan - - ROOT_URL=https://wekan.localhost + - ROOT_URL=https://wekan.gesthub depends_on: - mongo @@ -48,23 +50,32 @@ services: volumes: - mongo_data:/data/db - rocketchat: - image: rocketchat/rocket.chat:latest - environment: - - MONGO_URL=mongodb://mongo:27017/rocketchat - - ROOT_URL=https://chat.localhost - - PORT=3000 + mattermost: + image: mattermost/mattermost-team-edition:latest ports: - - "3000:3000" + - "8065:8065" + environment: + - MM_SQLSETTINGS_DRIVERNAME=postgres + - MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mmuserpass@db:5432/mattermost?sslmode=disable + - MM_SERVICESETTINGS_SITEURL=http://chat.gesthub depends_on: - - mongo - - redis + - db + volumes: + - mattermost_data:/mattermost/data - redis: - image: redis:latest + db: + image: postgres:13 + environment: + - POSTGRES_DB=mattermost + - POSTGRES_USER=mmuser + - POSTGRES_PASSWORD=mmuserpass + volumes: + - postgres_data:/var/lib/postgresql/data volumes: caddy_data: caddy_config: mariadb_data: mongo_data: + mattermost_data: + postgres_data: \ No newline at end of file diff --git a/flask-app/Dockerfile b/web/Dockerfile similarity index 78% rename from flask-app/Dockerfile rename to web/Dockerfile index 0b5c45c..cce4b4c 100644 --- a/flask-app/Dockerfile +++ b/web/Dockerfile @@ -1,7 +1,7 @@ FROM python:3.11 -WORKDIR /app -COPY . /app +WORKDIR /web +COPY . /web RUN pip install flask flask_sqlalchemy pymysql diff --git a/flask-app/app.py b/web/app.py similarity index 72% rename from flask-app/app.py rename to web/app.py index d4e71a7..ebbb992 100644 --- a/flask-app/app.py +++ b/web/app.py @@ -1,6 +1,7 @@ # flask-app/app.py from flask import Flask from flask_sqlalchemy import SQLAlchemy +from flask import render_template app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://flaskuser:flaskpass@mariadb/flaskdb' @@ -8,9 +9,9 @@ app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) -@app.route('/') -def index(): - return 'Bienvenue sur l’intranet !' - + @app.route('/') + def index(): + return render_template('index.html') + if __name__ == '__main__': app.run(host='0.0.0.0') diff --git a/web/view/index.html b/web/view/index.html new file mode 100644 index 0000000..5b7436e --- /dev/null +++ b/web/view/index.html @@ -0,0 +1,12 @@ + + + + + + Document + + + Hello World! +

Welcome to the GestHub Web Interface

+ + \ No newline at end of file From 6b3baed3600879dff16ddddaaa6c661580afa9d2 Mon Sep 17 00:00:00 2001 From: M1n-0 Date: Mon, 14 Apr 2025 12:43:49 +0200 Subject: [PATCH 08/10] add base asset --- web/assets/css/index.css | 3 +++ web/assets/images/fakeimg.img | 0 2 files changed, 3 insertions(+) create mode 100644 web/assets/css/index.css create mode 100644 web/assets/images/fakeimg.img diff --git a/web/assets/css/index.css b/web/assets/css/index.css new file mode 100644 index 0000000..5c00ee9 --- /dev/null +++ b/web/assets/css/index.css @@ -0,0 +1,3 @@ +body{ + background-color: bisque; +} \ No newline at end of file diff --git a/web/assets/images/fakeimg.img b/web/assets/images/fakeimg.img new file mode 100644 index 0000000..e69de29 From e5a93eb685e020f0411bba1b550bd29b7db64f33 Mon Sep 17 00:00:00 2001 From: M1n-0 Date: Mon, 14 Apr 2025 12:44:05 +0200 Subject: [PATCH 09/10] modif docker files --- Caddyfile | 6 +++--- docker-compose.yml | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Caddyfile b/Caddyfile index 7ecc55b..2440834 100644 --- a/Caddyfile +++ b/Caddyfile @@ -1,13 +1,13 @@ # Caddyfile -flask.gesthub { +flask.localhost { reverse_proxy flask:5000 } -wekan.gesthub { +wekan.localhost { reverse_proxy wekan:8080 } -chat.gesthub { +chat.localhost { reverse_proxy mattermost:8065 } diff --git a/docker-compose.yml b/docker-compose.yml index 05e0ea8..25aca52 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.8' - services: caddy: image: caddy:latest From ffbb86ac38d2a2b3e112b2a77de79b51887e3dc6 Mon Sep 17 00:00:00 2001 From: M1n-0 Date: Thu, 17 Apr 2025 11:39:24 +0200 Subject: [PATCH 10/10] testwebhook --- testwebhook | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 testwebhook diff --git a/testwebhook b/testwebhook new file mode 100644 index 0000000..e69de29