Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
  • prez
2 results

Target

Select target project
No results found
Select Git revision
  • master
1 result
Show changes
798 files
+ 64869
7864
Compare changes
  • Side-by-side
  • Inline

Files

+22 −0
Original line number Diff line number Diff line
FROM debian:stable
ARG DEBIAN_FRONTEND=noninteractive

RUN { \
        echo krb5-config krb5-config/default_realm string 'LOCAL.ISIMA.FR'; \
        echo tzdata tzdata/Areas string 'Etc'; \
        echo tzdata tzdata/Zones/Etc string 'UTC'; \
    } | debconf-set-selections \
    && \
    apt-get update && apt-get install -y --no-install-recommends \
        krb5-user \
        krb5-config \
        openssh-client \
        locales \
        rsync \
    && \
    locale-gen fr_FR \
    locale-gen fr_FR.UTF-8 \
    update-locale LANG=fr_FR.UTF-8 \
    . /etc/default/locale

WORKDIR /srv/blog
 No newline at end of file
+16 −0
Original line number Diff line number Diff line
FROM debian:stable

RUN apt-get update && apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        locales \
    && \
    locale-gen fr_FR \
    locale-gen fr_FR.UTF-8 \
    update-locale LANG=fr_FR.UTF-8 \
    . /etc/default/locale

COPY requirements.txt .
RUN pip install --break-system-packages --user -r requirements.txt

WORKDIR /srv/blog
 No newline at end of file
+16 −0
Original line number Diff line number Diff line
source .env 
SSH_CMD="ssh -o StrictHostKeyChecking=no -K ${KRB_USER}@${SERVER}"
RSYNC_CMD=''
kinit ${KRB_USER}
${SSH_CMD} "mkdir -p ~/public_html/"
${SSH_CMD} "echo 'Options +FollowSymLinks' >  ~/public_html/.htaccess"
${SSH_CMD} "echo 'RewriteEngine on' >>  ~/public_html/.htaccess"
${SSH_CMD} "echo 'RewriteCond %{HTTP_HOST} ^perso.isima.fr$' >>  ~/public_html/.htaccess"
${SSH_CMD} "echo 'RewriteRule (.*) https://perso.limos.fr%{REQUEST_URI} [R=301,L]' >>  ~/public_html/.htaccess"
${SSH_CMD} "mkdir -p ~/public_html/_"
${SSH_CMD} "echo '<FilesMatch "\.phar">' >  ~/public_html/_/.htaccess"
${SSH_CMD} "echo '   php_flag engine off' >>  ~/public_html/_/.htaccess"
${SSH_CMD} "echo '   ForceType application/octet-stream' >>  ~/public_html/_/.htaccess"
${SSH_CMD} "echo '   Header set Content-Disposition attachment' >>  ~/public_html/_/.htaccess"
${SSH_CMD} "echo '</FilesMatch>' >>  ~/public_html/_/.htaccess"
rsync -az --exclude "_" -e "ssh -o StrictHostKeyChecking=no -K" ./output/ ${KRB_USER}@${SERVER}:~/public_html/
 No newline at end of file
+7 −0
Original line number Diff line number Diff line
git submodule init
git submodule update --recursive --remote
sed -i 's/\$port &/\$port/g' ./develop_server.sh
chmod +x develop_server.sh
export PATH=/root/.local/bin:$PATH
export PY='/usr/bin/python3'
./develop_server.sh start 8000
 No newline at end of file

.env

0 → 100644
+6 −0
Original line number Diff line number Diff line
PORT=8001
REGISTRY_URL=docker.isima.fr
NAMESPACE=docker.isima.fr/vimazeno
APP_NAME=pelican_perso
KRB_USER=vimazeno
SERVER=perso.local.isima.fr
+3 −0
Original line number Diff line number Diff line
@@ -4,3 +4,6 @@ pelican.pid
*.pyc
srv.pid
blog_limos.egg-info
node_modules
.venv
.vscode
 No newline at end of file
+32 −22
Original line number Diff line number Diff line
image: ubuntu:precise

cache:
  paths:
    - output/ # Node modules and dependencies
    - output/ # le répertoire où se trouve le HTML statique généré

before_script:
  - apt-get update
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$SSH_PRIVATE_KEY")
  - mkdir -p ~/.ssh
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
.pre:
  image: node:latest
  stage: .pre
  script:
    - cd /srv/blog/content/slides && yarn

build:
  image: docker.isima.fr/vimazeno/pelican_perso_python:35046e8
  stage: build
  script:
    - apt-get install -y --force-yes build-essential python-dev python-pip
    - pip install --editable .
    - pelican content

  artifacts:
    untracked: true
    - git submodule init
    - git submodule update --recursive --remote
    - PATH=/root/.local/bin:$PATH pelican
  
deploy:
  image: docker.isima.fr/vimazeno/pelican_perso_kerberos:35046e8
  stage: deploy
  dependencies:
    - build
  script:
    - scp -r output/* mazenod@192.168.100.59:~/public_html/
    - ssh mazenod@192.168.100.59 'find ~/public_html/ -type f -exec chmod -R 644 {} \;'
    - ssh mazenod@192.168.100.59 'find ~/public_html/ -type d -exec chmod -R 755 {} \;'
    # récupération du KEYTAB en hexa 
    - echo "$KEYTAB" > my.keytab.hex
    # conversion du KEYTAB en hexa en binaire
    - sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' my.keytab.hex | xargs printf > my.keytab
    # génération du ticket kerberos
    - kinit -k -t my.keytab vimazeno@LOCAL.ISIMA.FR
    # préparation du répertoire servi par apache
    - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "mkdir -p ~/public_html/"
    - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo 'Options +FollowSymLinks' >  ~/public_html/.htaccess"
    - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo 'RewriteEngine on' >>  ~/public_html/.htaccess"
    - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo 'RewriteCond %{HTTP_HOST} ^perso.isima.fr$' >>  ~/public_html/.htaccess"
    - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo 'RewriteRule (.*) https://perso.limos.fr%{REQUEST_URI} [R=301,L]' >>  ~/public_html/.htaccess"
    - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "mkdir -p ~/public_html/_"
    - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo '<FilesMatch "\.phar">' >  ~/public_html/_/.htaccess"
    - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo '   php_flag engine off' >>  ~/public_html/_/.htaccess"
    - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo '   ForceType application/octet-stream' >>  ~/public_html/_/.htaccess"
    - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo '   Header set Content-Disposition attachment' >>  ~/public_html/_/.htaccess"
    - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo '</FilesMatch>' >>  ~/public_html/_/.htaccess"
    # rsync du HTML statique généré
    - rsync -az --exclude '_' -e "ssh -o StrictHostKeyChecking=no -K" output/ vimazeno@perso.local.isima.fr:~/public_html/
 No newline at end of file

.gitmodules

0 → 100644
+3 −0
Original line number Diff line number Diff line
[submodule "plugins/math_render"]
	path = plugins/math_render
	url = https://github.com/barrysteyn/pelican_plugin-render_math.git

Makefile

0 → 100644
+82 −0
Original line number Diff line number Diff line
BOLD    := \033[1m
RESET   := \033[0m
RED     := \033[31m
GREEN   := \033[32m
YELLOW  := \033[33m
BLUE    := \033[34m
MAGENTA := \033[35m

SHELL    := /bin/bash
IMAGES   := $(shell docker compose config --services)
TAG      := $(shell git rev-parse --short HEAD)
VOLUMES  := content/node_modules output

# Executables (local)
DOCKER_COMP   := docker compose
.DEFAULT_GOAL := help

# Docker containers
KERBEROS_CONT  := $(DOCKER_COMP) run kerberos

include .env

build: ## Build required docker compose images
	@$(DOCKER_COMP) build
.PHONY: build	

push: ## Push build docker compose images
	@TAG=$(shell git rev-parse --short HEAD)
	@docker login ${REGISTRY_URL}
	@docker push ${NAMESPACE}/${APP_NAME}_python:latest ;
	@docker tag ${NAMESPACE}/${APP_NAME}_python:latest ${NAMESPACE}/${APP_NAME}_python:${TAG} ;
	@docker push ${NAMESPACE}/${APP_NAME}_python:${TAG} ;
	@docker push ${NAMESPACE}/${APP_NAME}_kerberos:latest ;
	@docker tag ${NAMESPACE}/${APP_NAME}_kerberos:latest ${NAMESPACE}/${APP_NAME}_kerberos:${TAG} ;
	@docker push ${NAMESPACE}/${APP_NAME}_kerberos:${TAG} ;
.PHONY: push

up: ## Make required containers up
	@$(DOCKER_COMP) up --remove-orphans node
	@echo -e "⏰ ${BOLD}${GREEN}Wait for node to install needed js (there's no problem we're just wait)...${RESET}"
	@$(DOCKER_COMP) run dockerize -timeout 180s -wait-retry-interval 3s \
			-wait file:///tmp/content/node_modules/.yarn-integrity ;
	@echo -e "⏰ ${BOLD}${GREEN}Wait for pelican to generate content (there's no problem we're just wait)...${RESET}"
	@echo -e "${GREEN}${BOLD}up and running${RESET}"
	@echo -e " 🐳 blog in docker ${BLUE}${BOLD}http://localhost:${PORT}${RESET}"
	@$(DOCKER_COMP) up --remove-orphans python
.PHONY: up

down: ## Make required containers down
	@$(DOCKER_COMP) down
.PHONY: down

logs: ## Show live containers logs. Pass the parameter "c=" to see one specific container's logs, example: make logs c='frontend'
	@$(eval c ?=)
	@if [ -z "$(c)" ]; then \
		$(DOCKER_COMP) logs --follow; \
	else \
		$(DOCKER_COMP) logs --timestamps --follow $(c); \
	fi 
.PHONY: logs

errors: ## Show live container errors.
	@$(DOCKER_COMP) logs | grep error
.PHONY: errors

publish: ## Open bash on php container
	@$(KERBEROS_CONT) bash .docker/scripts/kerberos/command.dev.sh
.PHONY: publish

clean: ## Remove node and php folders and files
	@for volume in ${VOLUMES} ; do \
		sudo rm -rf $${volume} ; \
	done
.PHONY: clean

slides: ## Force slides refresh
	@sudo cp -R content/slides output/
.PHONY: slides

help:
	@grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
.PHONY: help
 No newline at end of file
+34 −5
Original line number Diff line number Diff line
# Blog LIMOS de Vincent Mazenod

## Installer les dépendances
```
./bin/setup
source bin/activate
./bin/start
```

## Utilisation avec docker

### Build image 

```
docker build -t pelican_perso .
```

### run conatiner 

```bash
sudo pip install --editable .
```
docker run -it --rm -v $(pwd):/srv/pelican mjjacko/pelican pelican-quickstart -p my-site
```

## Utilisation avec venv

## Lancer le serveur de prévisualisation
### Lancer le serveur de prévisualisation

```bash
```
bash develop_server.sh start
```

* http://0.0.0.0:8000/

### faire tourner les slides en local

```
./bin/local
```

* http://slides/slides/



## see also

* [https://limos.isima.fr/~mazenod/blog-et-pages-perso-au-limos.html](https://limos.isima.fr/~mazenod/blog-et-pages-perso-au-limos.html)

bin/activate

0 → 100755
+6 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]:-$0}" )/.." && pwd )"
if [[ -z "$VIRTUAL_ENV" ]] || [[ "$VIRTUAL_ENV" != "${DIR}/.venv" ]] ; then
    source "${DIR}/.venv/bin/activate"
fi

bin/local

0 → 100755
+17 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]:-$0}" )/.." && pwd )"

if [[ ! -f "/etc/apache2/sites-available/slides.conf" ]] ; then

  (
  echo "<VirtualHost *:80>"
  echo "DocumentRoot /var/www/html/blog/blog.limos.fr/content/"
  echo "ServerName slides"
  echo "</VirtualHost>"
  ) | sudo tee -a /etc/apache2/sites-available/slides.conf

  sudo a2ensite slides

  echo "127.0.0.1   slides" | sudo tee -a /etc/hosts
fi

bin/setup

0 → 100755
+15 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]:-$0}" )/.." && pwd )"

if [[ ! -d "${DIR}/.venv" ]] ; then
  python3 -m venv "${DIR}/.venv"
fi

source "${DIR}/.venv/bin/activate"
pip install -r requirements.txt

git submodule init
git submodule update --recursive --remote

cd content && yarn install

bin/start

0 → 100755
+3 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash

bash develop_server.sh start

bin/stop

0 → 100755
+3 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash

bash develop_server.sh stop
+40 −0
Original line number Diff line number Diff line
Title: android-www
Date: 2017-09-20 10:30
Category: <i class='fa fa-graduation-cap' aria-hidden='true'></i> &Eacute;tudiants
Tags: Projets tutorés, android
Status: draft

## Contexte

L'idée première est de spoofer la page de login d'un Hotspot WIFI, c'est à dire de servir à partir d'un téléphone Android une page web imitant en tout point celle d'un hotspot wifi afin de collecter les identifiants des utilisateurs à proximité qui s'y connecteront.

Ce projet consiste essentiellement à configurer un serveur web sur un téléphone android qui soit accessible à partir d'un périphérique à proximité.

## Rendu attendu

Vous devez rendre un dépot git avec au minimum

* un code source implémentant les fonctionnalités demandées
* un apk permettant de déployer le service
* un fichier `README.md` documentant l'installtion et l'utilisation du service
* un rapport détaillé du travail réalisé

## Technologies

* [HTTP](https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol), [Android](https://fr.wikipedia.org/wiki/Android)

## Points à considérer

* la faisabilité d'un tel projet
* les pré-requis
    * root
    * librairies
* la sécurité
* la facilité de déploiment de l'application
* les possibilités d'interactions
    * possibilité de technologies server-side
    * bases de données ...

## Liens

* https://gbatemp.net/threads/android-app-for-self-hosting-exploit-5-5-1.425496/
+43 −0
Original line number Diff line number Diff line
Title: CKEditor for gitlab
Date: 2017-09-20 10:55
Category: <i class='fa fa-graduation-cap' aria-hidden='true'></i> &Eacute;tudiants
Tags: Projets tutorés, www, Tor
Status: draft

## Contexte

[GitLab](https://about.gitlab.com/) est une forge logicielle.

Cette forge présente notamment une interface web riche en fonctionnalités.

Il est possible au niveau d'un dépôt d'éditer ou de créer un fichier texte, ou encore d'uploader un fichier PDF directement à partir de l'interface web.

Chaque action donne lieu à un commit sur le dépôt.

Ce projet vise à intégrer au mieux CKEditor à la forge [https://gitlab.isima.fr/](https://gitlab.isima.fr/) notamment dans le but d'éditer en [WYSIWYG](https://fr.wikipedia.org/wiki/What_you_see_is_what_you_get) la documentation utilisateur de l'ISIMA [doc.isima.fr](https://doc.isima.fr) qui utilise [http://www.mkdocs.org/](http://www.mkdocs.org/)

Dans une première phase les possibilités d'implémenter une telle fonctionnalité seront toute étuidié

Dans une seconde phase la fonctionnalité sera développé avec les technologies choisies dans la première phase?

## Points à considérer

* se documenter sur la mailleure façon d'implémenter les fonctionnalités
    * plugin gitlab?
    * plugin firefox / chrome?
    * service stand alone?
        * utilisation de la commande git?
        * utilisation de l'api gitlab?
    * app electron
* sécurité

## Technologies

* [GitLab](https://about.gitlab.com/), [git](https://fr.wikipedia.org/wiki/Git), ???

## Rendu attendu

* Vous devez rendre un dépot git avec au minimum
    * un code source implémentant les fonctionnalités demandées
    * un fichier `README.md` documentant l'installation, la configuration et l'utilisation du service
    * un rapport détaillé du travail réalisé
+60 −0
Original line number Diff line number Diff line
Title: G-Box
Date: 2017-09-20 10:15
Category: <i class='fa fa-graduation-cap' aria-hidden='true'></i> &Eacute;tudiants
Tags: Projets tutorés, sécurité
Status: draft
## Contexte

La G-box est un routeur avec des fonctionnalités de sécurité, elle permet notamment de filtrer les flux sortant à des fins de contrôle parental ou de filtre anti-phishing.

Tout le trafic entre les ordinateurs du réseau local et internet doit passer par la G-box.

la G-box a pour de but valider ou non le trafic.

Elle utilise pour se faire 3 stratégies

* les DNS ([OpenDNS Family Shield](https://www.opendns.com/home-internet-security/) pour le contrôle parentale par exemple)
* l'inspection d'url
* l'inspection de contenu

La G-Box est un routeur domestique qui doit nécessiter le moins de configuration possible. Elle ne nécessite notamment aucune intervention sur les postes clients

La configuration du filtrage doit pouvoir se faire de manière sécurisée au travers d'une interface web.

Idéalement c'est un boîtier qui présente donc au moins 2 interfaces:

* l'interface publique, que vous connecterez sur la box du FAI
* la ou les interfaces privées, sur lesquelles viennent se connecter les appareils domestiques (PC fixe, laptop, tablette, téléhpone)

Pour le prototype de la G-Box le [raspberry pi 3b](https://www.raspberrypi.org/products/raspberry-pi-3-model-b/) est pressentie.
L'objectif de ce projet est d'arriver à une PoC (Proof Of Concept) permettant de valider l'implémentation des fonctions de filtrage.

Un ou deux raspberry vous seront fournis pour vos tests.

## Fonctionnalités à implémenter

* gestion d'une liste de sites autorisés / interdits par périphériques
* gestion de la liste de mots clés autorisés / interdits par périphériques
* gestion du DNS par périphériques
* système de notification lorsqu'une tentative d'outre passer une règle est détectée

## Résultat attendu

un dépôt sur [https://gitlab.isima.fr](https://gitlab.isima.fr) contenant

* une image de système déployable sur un raspberry pi
* un script de provisioning permettant le déploiement des fonctionnalités implémentées
* un fichier `README.md` documentant l'installation, la configuration et l'utilisation du service
* un rapport détaillé du travail réalisé

## Technologies

* [HTTP](https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol), [SSL](https://fr.wikipedia.org/wiki/SSL), [Raspberry Pi](https://www.raspberrypi.org/),  [Raspbian](https://raspbian-france.fr/), [Réseau informatique](https://fr.wikipedia.org/wiki/R%C3%A9seau_informatique)

## Points à considérer

* la sécurité globale du système
    * accès physique
    * MAC spoofing
    * configuraiton manuelle des DNS sur les postes clients
    * gestion des connection SSL en mode filtrage par urls ou par mots clés
+39 −0
Original line number Diff line number Diff line
Title: gitlab-issue
Date: 2017-09-20 10:25
Category: <i class='fa fa-graduation-cap' aria-hidden='true'></i> &Eacute;tudiants
Tags: Projets tutorés, www, git
Status: draft

## Contexte

[GitLab](https://about.gitlab.com/) est une forge logicielle.

La version [GitLab CE](https://gitlab.com/gitlab-org/gitlab-ce) présente [une API REST](https://docs.gitlab.com/ee/api/README.html).

Il s'agit ici d'implémenter un système de feedback [utilisant la partie de l'API consacrée à la gestion de tickets](https://docs.gitlab.com/ee/api/issues.html) sous forme d'un bundle [symfony](https://symfony.com/).

le bundle devra

* gérer l'authentification par utilisateur gitlab
* gérer l'authentification avec une seule clé d'api permettant à des utilisateurs anonyme de déposer aussi une issue
* gérer les issues par utilisateurs
* s'intégrer intelligemment à une application symfony

## Résultat attendu

un dépôt sur [https://gitlab.isima.fr](https://gitlab.isima.fr) contenant

* le code source implémentant les fonctionnalités demandées
* un fichier `README.md` documentant l'installation, la configuration et l'utilisation du service
* un rapport détaillé du travail réalisé

## Technologies

* [HTTP](https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol), [PHP](http://php.net/manual/fr/intro-whatis.php), [Symfony](https://symfony.com/), [Vagrant](https://www.vagrantup.com/), [GitLab](https://about.gitlab.com/)

## Points à considérer

* la qualité du code notamment en suivant les bests practices symfony
* la sécurité
* la facilité de déploiment dans une application
* l'intégration du bundle dans une application symfony
+37 −0
Original line number Diff line number Diff line
Title: ISIMA Tor
Date: 2017-09-20 10:50
Category: <i class='fa fa-graduation-cap' aria-hidden='true'></i> &Eacute;tudiants
Tags: Projets tutorés, www, Tor
Status: draft

## Contexte

le site https://isima.fr souhaite être présent sur le réseau Tor.

Une première phase consistera en la mise en place d'un site web afin qu'il soit visible sur le réseau Tor, dans un environnement que vous maquetterez.

Dans une seconde phase la mise en ligne sera maquettée dans un environnement [ispconfig](https://www.ispconfig.org/)

Le maquettage pourra être réalisé avec [Vagrant](https://www.vagrantup.com/) et le provisioning avec [ansible](https://www.ansible.com/)

## Résultat attendu

un dépôt sur [https://gitlab.isima.fr](https://gitlab.isima.fr) contenant

* le code source implémentant les fonctionnalités demandées
* un fichier `README.md` documentant l'installation, la configuration et l'utilisation du service
* un rapport détaillé du travail réalisé

## Technologies

* [HTTP](https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol), [Vagrant](https://www.vagrantup.com/), [ansible](https://www.ansible.com/)

## Points à considérer

* sécurité
* reproductibilité et industrialisation
* compréhesion des protocoles utilisés

## Liens

* http://www.bortzmeyer.org/blog-tor-onion.html
+51 −0
Original line number Diff line number Diff line
Title: ispcli
slug: ispcli
lang: en
save_as: ispcli-en.html
url: ispcli-en.html
Date: 2017-09-20 10:20
Category: <i class='fa fa-graduation-cap' aria-hidden='true'></i> &Eacute;tudiants
Tags: Projets tutorés, www

## Contexte

[ISPConfig](https://www.ispconfig.org/) est un outil de gestion de serveur (web, mail, dns) via une interface web.

[une API SOAP](http://docs.ispconfig.org/development/remote-api/)  est disponible depuis la version 3.

Ce projet vise à implémenter un client d'api en ligne de commande.

A titre d'exemple [python-gitlab](http://python-gitlab.readthedocs.io/en/stable/cli.html) est un client d'API pour gitlab.

Les commandes à implémenter concernent toutes les actions de

* configuration du serveur
* gestion des clients
* gestion des hotes web
* gestion des utilisateurs ssh
* gestion des bases de données
* gestion des utilisateurs bases de données
* gestion des entréees DNS
* gestion des comptes mail

Seule la partie gestion de la virtualisation pourra être mise de côté.

## Résultat attendu

un dépôt sur [https://gitlab.isima.fr](https://gitlab.isima.fr) contenant

* le code source implémentant les fonctionnalités demandées
* un fichier `README.md` documentant l'installation, la configuration et l'utilisation du service
* un rapport détaillé du travail réalisé

## Technologies

* [HTTP](https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol), [PHP](http://php.net/manual/fr/intro-whatis.php), [SOAP](https://fr.wikipedia.org/wiki/SOAP), [ISPConfig](https://www.ispconfig.org/)

## Points à considérer

* l'ergonomie
    * facilité de configuration
    * simplicité d'utilisation
    * commandes intuitives
    * possibilité de batcher certaines opérations
+50 −0
Original line number Diff line number Diff line
Title: ispcli
slug: ispcli
lang: fr
Date: 2017-09-20 10:20
Category: <i class='fa fa-graduation-cap' aria-hidden='true'></i> &Eacute;tudiants
Tags: Projets tutorés, www
Status: draft

## Contexte

[ISPConfig](https://www.ispconfig.org/) est un outil de gestion de serveur (web, mail, dns) via une interface web.

[une API SOAP](http://docs.ispconfig.org/development/remote-api/)  est disponible depuis la version 3.

Ce projet vise à implémenter un client d'api en ligne de commande.

A titre d'exemple [python-gitlab](http://python-gitlab.readthedocs.io/en/stable/cli.html) est un client d'API pour gitlab.

Les commandes à implémenter concernent toutes les actions de

* configuration du serveur
* gestion des clients
* gestion des hotes web
* gestion des utilisateurs ssh
* gestion des bases de données
* gestion des utilisateurs bases de données
* gestion des entréees DNS
* gestion des comptes mail

Seule la partie gestion de la virtualisation pourra être mise de côté.

## Résultat attendu

un dépôt sur [https://gitlab.isima.fr](https://gitlab.isima.fr) contenant

* le code source implémentant les fonctionnalités demandées
* un fichier `README.md` documentant l'installation, la configuration et l'utilisation du service
* un rapport détaillé du travail réalisé

## Technologies

* [HTTP](https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol), [PHP](http://php.net/manual/fr/intro-whatis.php), [SOAP](https://fr.wikipedia.org/wiki/SOAP), [ISPConfig](https://www.ispconfig.org/)

## Points à considérer

* l'ergonomie
    * facilité de configuration
    * simplicité d'utilisation
    * commandes intuitives
    * possibilité de batcher certaines opérations
Original line number Diff line number Diff line
Title: Mindmaping et markdown
Date: 2017-09-20 10:10
Category: <i class='fa fa-graduation-cap' aria-hidden='true'></i> &Eacute;tudiants
Tags: Projets tutorés, www
Status: draft


## Contexte

Le [Mindmaping](http://www.mindmapping.com/fr/) ou carte mentale est une méthode créative et logique pour prendre des notes et consigner des idées, qui consiste littéralement à "cartographier" votre réflexion sur un thème.

Il existe de nombreux programmes et services permettant de réaliser des cartes mentales:

Ce projet vise à réaliser un service en ligne permettant de réaliser des cartes mentale grâce au langage markdown.

L'extension [markdown-mindmap](https://atom.io/packages/markdown-mindmap) pour l'éditeur [atom](https://atom.io/) est une implémentation approchant le résulat attendu.

![markdown-mindmap](https://i.github-camo.com/a1d969d7ee4c9bd6145f8abf35d99de1544276d4/68747470733a2f2f6769746875622e636f6d2f64756e64616c656b2f61746f6d2d6d61726b646f776e2d6d696e646d61702f626c6f622f6d61737465722f73637265656e73686f742e6769663f7261773d74727565)


Le composant javascript [markmap](https://github.com/dundalek/markmap) peut être une brique logicielle intéressante.

N.B. Ce composant ne permet pas de créer des branches de part et d'autres du sujet principal, et cette possibilité est à discuter.

Afin d'être utilisable la solution devra intégrer

* le partage des cartes mentales
* afficher le contenu texte (en dessous du titre) au survol de la survie
* possibilité d'affecter une url (cliquable) à un noeud
* valider l'ergonomie et l'affichage sur ordinateurs, tablettes et téléphone
* une gestion d'utilisateur avec inscription et récupération de mot de passe [optionnel]


## Résultat attendu

un dépôt sur [https://gitlab.isima.fr](https://gitlab.isima.fr) contenant

* le code source implémentant les fonctionnalités demandées
* un fichier ```Vagrantfile``` permettant de tester l'application via ```vagrant up```
* un fichier `README.md` documentant l'installation, la configuration et l'utilisation du service
* un rapport détaillé du travail réalisé

## Technologies

* [HTTP](https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol), [JS](https://fr.wikipedia.org/wiki/JavaScript),  [Vagrant](https://www.vagrantup.com/), la technologie server-side et le SGBD sont à choisir.

## Points à considérer

* Choix des technologies
* ergonomie utilisateur

### Liens

* [FreeMind](https://fr.wikipedia.org/wiki/FreeMind)
* [framindmap.org](https://framindmap.org/mindmaps/index.html)
* [https://monod.lelab.tailordev.fr/](https://monod.lelab.tailordev.fr/) peut servir d'exemple pour l'ergonomie et le système de partage de document
    * présente notamment des idées pour l'ergonomie et le système de partage
+43 −0
Original line number Diff line number Diff line
Title: RSS2Epub
Date: 2017-09-20 10:40
Category: <i class='fa fa-graduation-cap' aria-hidden='true'></i> &Eacute;tudiants
Tags: Projets tutorés, www
Status: draft

## Contexte

RSS2Epub est un service qui permet de convertir une page web au format epub afin d'en optimiser l'affichage sur une liseuse numérique.

Dans sa version finale RSS2Epub proposera

* une gestion d'utilisateur
* la possibilité à chacun de gérer ses propres flux rss.

## Rendu attendu

Vous devez rendre un dépot git avec au minimum

* un code source implémentant les fonctionnalités demandées
* un fichier ```Vagrantfile``` permettant de tester l'application via ```vagrant up```
* un fichier ```deploy.php``` permettant de déployer l'application
* un fichier `README.md` documentant l'installation, la configuration et l'utilisation du service
* un rapport détaillé du travail réalisé

## Points à considérer

* nettoyage de toutes les parties
    * publicitaires
    * navigation
    * commentaires

* provisioning
    * le service doit être déployable simplement sur un virtual host

## Technologies

* [HTTP](https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol), [PHP](http://php.net/manual/fr/intro-whatis.php), [MySQL](https://www.mysql.com/fr/), [Symfony](https://symfony.com/), [Deployer](https://deployer.org/), [Vagrant](https://www.vagrantup.com/)

## Liens

* https://fr.kobo.com/help/fr-FR/article/938/utiliser-l-application-pocket-sur-votre-tablette-kobo
* https://pandoc.org/
+53 −0
Original line number Diff line number Diff line
Title: Security Dashboard
Date: 2017-09-20 10:00
Category: <i class='fa fa-graduation-cap' aria-hidden='true'></i> &Eacute;tudiants
Tags: Projets tutorés, sécurité
Status: draft

## Contexte

Ce projet vise à réaliser un tableau de bord permettant d'évaluer simplement l'état de la sécurité d'un ensemble de sites ou services web hétérogènes.

Ce tableau de bord prend en entrée une simple liste d'urls, l'idée est d'automatiser au maximum l'audit sécurité de chaque url.

Chaque url de la liste est inspectée à intervalles réguliers afin de déterminer les technologies qu'elle utilise et leur version respective - à la manière du service [Wappalyzer](https://wappalyzer.com/).

Pour chaque technologie:

* [(CVE) Common Vulnerabilities and Exposures](https://fr.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures) sera interrogé afin de déterminer si la version de chaque technologie utilisée par l'url présente une vulnérabilité connue

* la dernière version de chaque technologie sera déterminée (à partir du site ou du dépôt officielle)

Le tableau de bord présentera une rapport clair et priorisé (par indice de criticité) des technologies à mettre à jour par url

* l'inspection automatique des technologies pourra être complétée / corrigée manuellement

* un système d'alerte mail à partir d'un degré d'un niveau de criticicté paramétrable sera également mis en place

## Résultat attendu

un dépôt sur [https://gitlab.isima.fr](https://gitlab.isima.fr) contenant

* le code source implémentant les fonctionnalités demandées
* un fichier ```Vagrantfile``` permettant de tester l'application via ```vagrant up```
* un fichier ```deploy.php``` permettant de déployer l'application
* un fichier `README.md` documentant l'installation, la configuration et l'utilisation du service
* un rapport détaillé du travail réalisé

## Technologies

* [HTTP](https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol), [PHP](http://php.net/manual/fr/intro-whatis.php), [MySQL](https://www.mysql.com/fr/), [Symfony](https://symfony.com/), [Deployer](https://deployer.org/), [Vagrant](https://www.vagrantup.com/), API, [webscraping](https://fr.wikipedia.org/wiki/Web_scraping)

## Points à considérer

* la facilité de déploiement

* l'ergonomie
    * facilité de configuration
    * simplicité d'utilisation

## Liens

* https://github.com/AliasIO/Wappalyzer
* https://github.com/cve-search/cve-search
* https://stackoverflow.com/questions/14866528/how-can-i-grab-the-latest-stable-repo-version-from-the-github-api