Code source wiki de Tekiens.net ✨

Version 6.1 par Kevin FRICK le 2025/01/27 21:10

Masquer les derniers auteurs
Louis GRANDEL 1.1 1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 = Le projet =
6
7 Dans la continuité des sites eistiens.net, tekiens.net se veut être une plateforme au service des associations et de la vie étudiante de CY tech.
Kevin FRICK 3.1 8 La première version du site propose une page pour chaque association ainsi qu'une page regroupant les événements publiés par celles-ci.
Louis GRANDEL 1.1 9
10 Le site est actuellement géré par Louis Grandel et Kévin Frick mais une nouvelle équipe projet devrait arriver à la fin d'année 2024.
11
12 == Hébergement ==
13
Louis GRANDEL 1.10 14 Tekiens.net est hébergé sur la vm tekiens-prod.prod.infra.atilla.org sur [[Laika>>Infrastructure.Serveurs_physiques.Laika.WebHome]] dans:
Louis GRANDEL 1.1 15
16 {{code language="bash"}}
17 cd /srv/tekiens-net/
18 {{/code}}
19
20 (% class="wikigeneratedid" %)
21 La base de donnée est dans la vm mysql de bill (mysq-prod) sous le nom tekiens_net
22
Kevin FRICK 6.1 23 (% class="wikigeneratedid" %)
24 Les variables d'environnement sont dans {{code language="none"}}/etc/apache2/envvars{{/code}} :
25
26 {{code language="bash"}}
27 export SMTP_ADDRESS=mail-prod.prod.infra.atilla.org
28 export SMTP_PORT=25
29 {{/code}}
30
Louis GRANDEL 1.1 31 == Développement ==
32
Kevin FRICK 3.1 33 Le développement est actuellement géré par l'équipe de développement de tekiens.net qui que vous pouvez retrouver sur le serveur discord du projet.
Louis GRANDEL 1.1 34
35 Il existe 2 dépôt git du projet, un hébergé sur le [[gitlab ATILLA>>https://gitlab.atilla.org/tekiens-net/tekiens-net/]] et un autre [[ici>>https://gitlab.com/ptlc8/tekiens-net]]
36
Kevin FRICK 3.1 37 Le site utilise [[Flask>>https://flask.palletsprojects.com]] pour son back-end, [[VueJS>>https://vuejs.org/]] pour son front-end et sa base de donnée en SQL (MySQL ou MariaDB).
Louis GRANDEL 1.1 38
Kevin FRICK 3.1 39 === Intégration (CI) ===
Louis GRANDEL 1.1 40
Kevin FRICK 5.1 41 La CI fonctionne actuellement avec la CI du [[GitLab>>Services.GitLab.WebHome]] d'Atilla, et donc avec les [[GitLab runners>>Services.GitLab.WebHome]].
Louis GRANDEL 1.1 42
Kevin FRICK 3.1 43 Ses différentes étapes sont définis dans le fichier [[.gitlab.yml du projet>>https://gitlab.atilla.org/tekiens-net/tekiens-net/-/blob/master/.gitlab-ci.yml?ref_type=heads]] : actuellement le projet est juste linté puis conteurisé et rapidement testé.
Louis GRANDEL 1.1 44
Kevin FRICK 3.1 45 === Déploiement (CD) ===
Louis GRANDEL 1.1 46
Kevin FRICK 6.1 47 Le déploiement automatisé se fait via un cronjob ({{code language="none"}}crontab -e{{/code}}) : {{code language="none"}}0 * * * * /root/update.sh{{/code}}
Kevin FRICK 3.1 48
Kevin FRICK 6.1 49 Voici le script exécuté :
Kevin FRICK 3.1 50
Louis GRANDEL 1.1 51 {{code language="bash"}}
Kevin FRICK 6.1 52 #!/bin/bash
Louis GRANDEL 1.1 53
Kevin FRICK 6.1 54 cd /srv/tekiens-net/
Louis GRANDEL 1.1 55
Kevin FRICK 6.1 56 # Sauvegarder le dernier commit
57 LAST_COMMIT=$(git rev-parse HEAD)
58 echo "Last commit: $LAST_COMMIT"
Kevin FRICK 3.1 59
Kevin FRICK 6.1 60 # Mise à jour du dépôt
61 git fetch
62 git reset --hard origin/master
Louis GRANDEL 1.1 63
Kevin FRICK 6.1 64 # Récupération du nouveau commit
65 NEW_COMMIT=$(git rev-parse HEAD)
66 echo "New commit: $NEW_COMMIT"
67
68 # Vérifier s'il y a des changements
69 if [ "$LAST_COMMIT" != "$NEW_COMMIT" ]; then
70 # Script installant les dépendances manquantes
71 ./run.sh install
72 # Script pour automatiser le build du front
73 ./run.sh build
74 # Redémarrage du serveur HTTP (pour mettre à jour le back)
75 systemctl restart apache2
76 fi
Louis GRANDEL 1.1 77 {{/code}}
78
79 == Maintenance ==
80
81 Chaque association a un compte sur le site et pour le moment le seul moyen de changer un mot de passe ou de créer une association est de lancer les scripts éponymes directement sur la VM.
82 Impossible de récupérer les mots de passe directement en BDD ceux-ci sont chiffrés avec bcrypt, donc si un mot de passe est perdu il faut en recréer un.
83
84 Les scripts sont dans le dossier :
85
86 {{code language="bash"}}
87 cd /srv/tekiens-net/back
88
89 {{/code}}
90
91 Pour créer une association:
92
93 {{code language="bash"}}
94 ./create_asso.py <asso_id> <password>
95 {{/code}}
96
97 Pour changer le mot de passe d'une association:
98
99 {{code language="bash"}}
100 ./change_password.py -p <password> -i <id_association>
101 {{/code}}