Code source wiki de Tekiens.net ✨
Modifié par Valerie ROUX le 2026/01/10 14:03
Afficher les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
| 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. | ||
| 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. | ||
| 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 (Obsolète, migré sur Rantanplan) == | ||
| 13 | |||
| 14 | Tekiens.net est hébergé sur la vm tekiens-prod.prod.infra.atilla.org sur [[Laika>>Infrastructure.Serveurs_physiques.Laika.WebHome]] dans: | ||
| 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 | |||
| 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 | |||
| 31 | == Développement == | ||
| 32 | |||
| 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. | ||
| 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 | |||
| 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). | ||
| 38 | |||
| 39 | === Intégration (CI) === | ||
| 40 | |||
| 41 | La CI fonctionne actuellement avec la CI du [[GitLab>>Services.GitLab.WebHome]] d'Atilla, et donc avec les [[GitLab runners>>Services.GitLab.WebHome]]. | ||
| 42 | |||
| 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é. | ||
| 44 | |||
| 45 | === Déploiement (CD) === | ||
| 46 | |||
| 47 | Le déploiement automatisé se fait via un cronjob toutes les heures ({{code language="none"}}crontab -e{{/code}}) : {{code language="none"}}0 * * * * /root/update.sh{{/code}} | ||
| 48 | |||
| 49 | Voici le script exécuté : | ||
| 50 | |||
| 51 | {{code language="bash"}} | ||
| 52 | #!/bin/bash | ||
| 53 | cd /srv/tekiens-net/ | ||
| 54 | |||
| 55 | # Sauvegarder le dernier commit | ||
| 56 | LAST_COMMIT=$(git rev-parse HEAD) | ||
| 57 | echo "Last commit: $LAST_COMMIT" | ||
| 58 | |||
| 59 | # Mise à jour du dépôt | ||
| 60 | git fetch | ||
| 61 | git reset --hard origin/master | ||
| 62 | |||
| 63 | # Récupération du nouveau commit | ||
| 64 | NEW_COMMIT=$(git rev-parse HEAD) | ||
| 65 | echo "New commit: $NEW_COMMIT" | ||
| 66 | |||
| 67 | # Vérifier s'il y a des changements | ||
| 68 | if [ "$LAST_COMMIT" != "$NEW_COMMIT" ]; then | ||
| 69 | # Script installant les dépendances manquantes | ||
| 70 | ./run.sh install | ||
| 71 | # Script pour automatiser le build du front | ||
| 72 | ./run.sh build | ||
| 73 | # Redémarrage du serveur HTTP (pour mettre à jour le back) | ||
| 74 | systemctl restart apache2 | ||
| 75 | fi | ||
| 76 | {{/code}} | ||
| 77 | |||
| 78 | == Maintenance == | ||
| 79 | |||
| 80 | Chaque association a un compte sur le site et pour le moment --le seul-- un des moyens de changer un mot de passe ou de créer une association est de lancer les scripts éponymes directement dans le conteneur Docker. | ||
| 81 | 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. | ||
| 82 | |||
| 83 | Les scripts sont dans le conteneur Tekiens.net : | ||
| 84 | |||
| 85 | {{code language="bash"}} | ||
| 86 | docker exec -it tekiens-net /bin/bash | ||
| 87 | cd /app/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}} |