Code source wiki de Tekiens.net ✨
Version 6.1 par Kevin FRICK le 2025/01/27 21:10
Masquer les derniers auteurs
author | version | line-number | content |
---|---|---|---|
![]() |
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. | ||
![]() |
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. |
![]() |
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 | |||
![]() |
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: |
![]() |
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 | |||
![]() |
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 | |||
![]() |
1.1 | 31 | == Développement == |
32 | |||
![]() |
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. |
![]() |
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 | |||
![]() |
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). |
![]() |
1.1 | 38 | |
![]() |
3.1 | 39 | === Intégration (CI) === |
![]() |
1.1 | 40 | |
![]() |
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]]. |
![]() |
1.1 | 42 | |
![]() |
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é. |
![]() |
1.1 | 44 | |
![]() |
3.1 | 45 | === Déploiement (CD) === |
![]() |
1.1 | 46 | |
![]() |
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}} |
![]() |
3.1 | 48 | |
![]() |
6.1 | 49 | Voici le script exécuté : |
![]() |
3.1 | 50 | |
![]() |
1.1 | 51 | {{code language="bash"}} |
![]() |
6.1 | 52 | #!/bin/bash |
![]() |
1.1 | 53 | |
![]() |
6.1 | 54 | cd /srv/tekiens-net/ |
![]() |
1.1 | 55 | |
![]() |
6.1 | 56 | # Sauvegarder le dernier commit |
57 | LAST_COMMIT=$(git rev-parse HEAD) | ||
58 | echo "Last commit: $LAST_COMMIT" | ||
![]() |
3.1 | 59 | |
![]() |
6.1 | 60 | # Mise à jour du dépôt |
61 | git fetch | ||
62 | git reset --hard origin/master | ||
![]() |
1.1 | 63 | |
![]() |
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 | ||
![]() |
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}} |