158 Commits
Author SHA1 Message Date
gregandev 34285efc5a maj finale? 2023-11-18 00:31:18 +01:00
gregandev b6fb697f6b maj prez 2023-11-18 00:16:47 +01:00
gregandev 8cee66966c maj theme hugo 2023-11-17 23:53:20 +01:00
gregandev 9a963d3422 Mise à jour de '.drone.yml' 2023-07-16 09:26:20 +02:00
gregandev 72abff0a44 shoot github 2023-07-16 09:19:35 +02:00
gregandev e76c4fdc7d switch to main branch + menu placement (weight) + test ci 2023-06-26 12:27:24 +02:00
gregandev eda3af19fd Mise à jour de 'content/page/liens.md' 2023-06-16 01:00:26 +02:00
gregandev cc2345349d Mise à jour de 'content/_index.md' 2023-06-15 23:30:38 +02:00
gregandev bf5bbbee6a Supprimer 'web-to-pdf.py' 2023-06-15 18:18:11 +02:00
gregandev 17f5c4d885 Mise à jour de '.drone.yml' 2023-06-15 18:17:52 +02:00
gregandev a4ce8323ea Mise à jour de '.drone.yml' 2023-06-15 17:47:11 +02:00
gregandev 7b4fe350b2 maj python web 2 pdf script 2023-06-15 17:31:40 +02:00
gregandev 78be8dcba2 add python web 2 pdf script 2023-06-15 17:21:24 +02:00
gregandev 34bbc29eb1 Mise à jour de '.drone.yml' 2023-06-15 17:19:51 +02:00
gregandev 943cc07355 Mise à jour de 'content/page/la-2029.md' 2023-06-15 16:10:48 +02:00
gregandev 6b68cb8b76 corrections diverses 2023-06-11 16:00:10 +02:00
gregandev 5c3988007c correction main.css background color for navbar menu 2023-06-11 15:24:19 +02:00
gregandev 119c38753f add osm files + maj CSS colors and hyperlink + title alignement (centered) 2023-06-11 14:09:18 +02:00
gregandev e8989a4d48 Mise à jour de 'themes/beautifulhugo/layouts/partials/footer.html' 2023-06-07 09:44:21 +02:00
gregandev 77629d3586 Mise à jour de 'themes/beautifulhugo/layouts/partials/footer.html' 2023-06-07 08:12:49 +02:00
gregandev 1f61b99d95 maj date footer.html 2023-06-06 23:20:11 +02:00
gregandev ed9424345c divers modifs 2023-03-26 10:28:17 +02:00
gregandev 8f08de1452 divers modifs 2023-03-26 10:03:55 +02:00
gregandev 585a28b0bd maj test devops ci/cd 2023-03-04 10:26:17 +01:00
gregandev c013433a89 test ci/cd 2023-03-03 14:30:15 +01:00
gregandev 4c5bbe95ad Mise à jour de '.drone.yml' 2023-02-04 01:39:21 +01:00
gregandev b2fba46e4d Mise à jour de '.drone.yml' 2023-02-04 01:09:55 +01:00
gregandev 80cb766847 add akira-bike img 2023-01-30 16:53:57 +01:00
gregandev 14a2be0c8e Merge branch 'master' of git.gregandev.fr:gregandev/hugo-site 2023-01-30 16:48:51 +01:00
gregandev 43ffc420e7 add exemple openstreetmap 2023-01-20 17:49:33 +01:00
gregandev e0905c1d9c maj objectpooler script 2023-01-16 15:22:30 +01:00
gregandev 16fa9782e0 maj la-2029 2023-01-16 14:20:23 +01:00
gregandev 4aa4ab2914 maj la-2029 2023-01-16 14:03:58 +01:00
gregandev bcdba8536a chg favicon 2023-01-08 18:10:27 +01:00
gregandev 2e3be18a99 correction fautes 2023-01-07 20:57:01 +01:00
gregandev d0e4b0c3cf chg logo 2023-01-05 20:26:25 +01:00
gregandev a107b2966b chg logo 2023-01-05 20:19:49 +01:00
gregandev 3c397ea8da maj goldeneyevr menu space 2023-01-01 19:01:17 +01:00
gregandev 1e0d6761ed maj goldeneyevr fautes 2023-01-01 18:47:29 +01:00
gregandev fb6fdc1f15 maj goldeneyevr 2023-01-01 18:38:08 +01:00
gregandev b0fb66f251 add screenshots for gevr et la2029 2023-01-01 18:06:48 +01:00
gregandev 7951e9a164 maj homepage 2022-12-27 21:39:54 +01:00
gregandev 9672d2c70d maj diverses 2022-12-27 21:01:51 +01:00
gregandev 30af06f35a maj générale 2022-12-27 20:38:42 +01:00
gregandev 7f69b74814 stuff page garagenum 2022-12-27 20:32:18 +01:00
gregandev 923c0ad2e0 add terminal CV link 2022-12-27 12:03:45 +01:00
gregandev 2689e5d90b commencé la page AkiraVR 2022-12-26 22:41:01 +01:00
gregandev 6d91123c0e ajout garagnum page 2022-12-21 12:19:18 +01:00
gregandev 3d521ee7a9 ajout GEVR page 2022-12-20 23:03:44 +01:00
gregandev 4b54a96784 clean up games data 2022-12-20 22:47:49 +01:00
gregandev db4670103d merged 2022-12-20 20:37:48 +01:00
gregandev da0232e8c7 ajout page retrogame 2022-12-20 20:35:47 +01:00
gregandev d1918d204a Mise à jour de 'content/page/liens.md' 2022-12-20 19:21:08 +01:00
gregandev 01240727bf correction sous-titres 2022-12-20 15:46:45 +01:00
gregandev 4eb11c136b Mise à jour de '.drone.yml' 2022-12-20 14:43:43 +01:00
gregandev 211aad0def Mise à jour de '.drone.yml' 2022-12-20 14:18:53 +01:00
gregandev c842f86964 Mise à jour de '.drone.yml' 2022-12-20 14:18:07 +01:00
gregandev 2f5d195395 Mise à jour de '.drone.yml' 2022-12-20 14:16:52 +01:00
gregandev d4b4f3443d Mise à jour de '.drone.yml' 2022-12-20 14:09:52 +01:00
gregandev ac47cef4fa Mise à jour de '.drone.yml' 2022-12-20 14:04:55 +01:00
gregandev b591b48551 Mise à jour de '.drone.yml' 2022-12-20 14:03:39 +01:00
gregandev 4db782ef83 Mise à jour de '.drone.yml' 2022-12-20 14:01:19 +01:00
gregandev cd3d48192b Mise à jour de '.drone.yml' 2022-12-20 13:59:30 +01:00
gregandev 06651ab856 Mise à jour de 'config.toml' 2022-12-20 13:33:36 +01:00
gregandev 01bee9164e Mise à jour de '.drone.yml' 2022-12-20 11:25:04 +01:00
gregandev 7bba49a7fe Mise à jour de '.drone.yml' 2022-12-20 11:17:43 +01:00
gregandev 4e951b76e0 Mise à jour de '.drone.yml' 2022-12-20 11:13:06 +01:00
gregandev 8398294841 correction bug cv url 2022-12-19 22:29:46 +01:00
gregandev a145f9350f clean up + retrarch gif 2022-12-19 22:25:54 +01:00
gregandev e329cb9aeb corrections 2022-12-19 22:18:47 +01:00
gregandev d822a1011d maj liens + a propos 2022-12-19 21:22:31 +01:00
gregandev a7d7baab90 Mise à jour de '.drone.yml' 2022-12-19 20:05:27 +01:00
gregandev f8a58da4a7 Mise à jour de '.drone.yml' 2022-12-19 18:21:32 +01:00
gregandev 035fe5288d Mise à jour de '.drone.yml' 2022-12-19 18:16:15 +01:00
gregandev 4bf678b5a1 Mise à jour de '.drone.yml' 2022-12-19 18:13:01 +01:00
gregandev 7f18c15c4d Mise à jour de '.drone.yml' 2022-12-19 18:00:29 +01:00
gregandev aa9522680c Mise à jour de '.drone.yml' 2022-12-19 17:57:45 +01:00
gregandev ee5647a04c Mise à jour de 'config.toml' 2022-12-19 17:52:31 +01:00
gregandev 3421c64903 Mise à jour de '.drone.yml' 2022-12-19 17:34:13 +01:00
gregandev 97c4cff62f Mise à jour de '.drone.yml' 2022-12-19 17:16:21 +01:00
gregandev db47257f4b Mise à jour de '.drone.yml' 2022-12-19 17:13:04 +01:00
gregandev 90c1b677ab Mise à jour de '.drone.yml' 2022-12-19 17:03:18 +01:00
gregandev 37f94275c4 Mise à jour de '.drone.yml' 2022-12-19 16:58:04 +01:00
gregandev 3dea59b656 Mise à jour de '.drone.yml' 2022-12-19 16:54:07 +01:00
gregandev b38e09b15c Mise à jour de '.drone.yml' 2022-12-19 16:50:17 +01:00
gregandev 5e80dd7b44 Mise à jour de '.drone.yml' 2022-12-19 16:29:27 +01:00
gregandev 1c432196a6 Mise à jour de '.drone.yml' 2022-12-19 16:26:15 +01:00
gregandev 2ac2fc5489 Mise à jour de '.drone.yml' 2022-12-19 15:54:11 +01:00
gregandev f42bd0d4ce Mise à jour de '.drone.yml' 2022-12-19 15:51:01 +01:00
gregandev 1f1584063e Mise à jour de '.drone.yml' 2022-12-19 15:39:18 +01:00
gregandev 89802e6c1b Mise à jour de '.drone.yml' 2022-12-19 15:35:04 +01:00
gregandev bd58ea7d28 Mise à jour de '.drone.yml' 2022-12-19 15:33:20 +01:00
gregandev c33ea824e8 Mise à jour de '.drone.yml' 2022-12-19 15:12:29 +01:00
gregandev f16f69689e Mise à jour de '.drone.yml' 2022-12-19 15:11:26 +01:00
gregandev 307bcb5be4 Mise à jour de '.drone.yml' 2022-12-19 15:07:55 +01:00
gregandev b0394641c4 Mise à jour de '.drone.yml' 2022-12-19 14:57:58 +01:00
gregandev 0a3e3e2119 Mise à jour de '.drone.yml' 2022-12-19 14:53:07 +01:00
gregandev 93178519df add nginx.conf 2022-12-19 14:52:09 +01:00
gregandev bf94c9f833 Ajouter 'Dockerfile' 2022-12-19 14:49:01 +01:00
gregandev ecc737f647 Mise à jour de '.drone.yml' 2022-12-19 14:44:59 +01:00
gregandev 1c6dda9340 Mise à jour de '.drone.yml' 2022-12-19 14:30:07 +01:00
gregandev 6de898077e Mise à jour de '.drone.yml' 2022-12-19 13:53:22 +01:00
gregandev a5130281b8 Mise à jour de '.drone.yml' 2022-12-19 13:49:28 +01:00
gregandev e7c84bee49 Mise à jour de '.drone.yml' 2022-12-19 13:48:03 +01:00
gregandev 754b1572c4 Mise à jour de '.drone.yml' 2022-12-19 13:46:57 +01:00
gregandev b0a71f9af2 Mise à jour de '.drone.yml' 2022-12-19 13:45:52 +01:00
gregandev 44e13adc89 Mise à jour de '.drone.yml' 2022-12-19 13:39:25 +01:00
gregandev d2bc719d23 Mise à jour de '.drone.yml' 2022-12-19 13:19:11 +01:00
gregandev e43876fdd0 Mise à jour de '.drone.yml' 2022-12-19 13:16:06 +01:00
gregandev 104cf826f5 Mise à jour de '.drone.yml' 2022-12-19 13:14:29 +01:00
gregandev 81c0422297 Mise à jour de '.drone.yml' 2022-12-19 13:12:24 +01:00
gregandev 67f6381023 Mise à jour de '.drone.yml' 2022-12-19 13:07:46 +01:00
gregandev b4a90e956c Mise à jour de '.drone.yml' 2022-12-19 13:04:29 +01:00
gregandev 42e956ca73 Mise à jour de '.drone.yml' 2022-12-19 13:02:33 +01:00
gregandev 04aee0b27a Mise à jour de '.drone.yml' 2022-12-19 13:00:33 +01:00
gregandev f4a88bcb3f Mise à jour de '.drone.yml' 2022-12-19 12:58:54 +01:00
gregandev 61ee278bbd Mise à jour de '.drone.yml' 2022-12-19 12:56:27 +01:00
gregandev ae1997eb6d Mise à jour de '.drone.yml' 2022-12-19 12:26:55 +01:00
gregandev b5663b2692 Mise à jour de '.drone.yml' 2022-12-19 12:25:31 +01:00
gregandev 9db0b2496d Mise à jour de '.drone.yml' 2022-12-19 12:24:48 +01:00
gregandev c0743b1333 Mise à jour de '.drone.yml' 2022-12-19 12:23:44 +01:00
gregandev 70a8e1d5d6 Mise à jour de '.drone.yml' 2022-12-19 12:17:58 +01:00
gregandev 53ab547f51 Mise à jour de '.drone.yml' 2022-12-19 12:15:27 +01:00
gregandev 61783cf7f9 Mise à jour de '.drone.yml' 2022-12-19 12:13:39 +01:00
gregandev 153d24cb21 Mise à jour de '.drone.yml' 2022-12-19 12:10:24 +01:00
gregandev 15b8e6dd06 Mise à jour de '.drone.yml' 2022-12-19 12:04:08 +01:00
gregandev 3e7c4a3c70 Mise à jour de '.drone.yml' 2022-12-19 11:55:46 +01:00
gregandev a91ba21c77 Mise à jour de '.drone.yml' 2022-12-19 11:54:07 +01:00
gregandev 20d6b80845 Mise à jour de '.drone.yml' 2022-12-19 11:53:08 +01:00
gregandev b568547fbc Mise à jour de '.drone.yml' 2022-12-19 11:47:35 +01:00
gregandev 575ccb4306 Mise à jour de '.drone.yml' 2022-12-19 11:45:34 +01:00
gregandev db1f78ba14 Mise à jour de '.drone.yml' 2022-12-19 11:41:47 +01:00
gregandev 6607f1000e Mise à jour de '.drone.yml' 2022-12-19 11:39:00 +01:00
gregandev 60ca85ebae Mise à jour de '.drone.yml' 2022-12-19 11:36:10 +01:00
gregandev 4657f4ed55 Mise à jour de '.drone.yml' 2022-12-19 11:32:35 +01:00
gregandev 521ec648e5 Mise à jour de '.drone.yml' 2022-12-19 11:29:57 +01:00
gregandev 768040947c Mise à jour de '.drone.yml' 2022-12-19 02:27:42 +01:00
gregandev e9dfc34c38 Mise à jour de '.drone.yml' 2022-12-19 02:24:00 +01:00
gregandev cd089f97cf Mise à jour de '.drone.yml' 2022-12-19 02:16:06 +01:00
gregandev 12343499fa Mise à jour de '.drone.yml' 2022-12-19 02:15:01 +01:00
gregandev 307e5e6e76 Mise à jour de '.drone.yml' 2022-12-19 02:02:07 +01:00
gregandev eae3c6b911 Mise à jour de '.drone.yml' 2022-12-19 01:57:08 +01:00
gregandev afdc120231 test pipeline 2 2022-12-19 00:15:25 +01:00
gregandev aa8dcfa681 add CI 2022-12-19 00:00:58 +01:00
gregandev 2d5d6735e5 push 2022-12-18 23:30:52 +01:00
gregandev 1cd466c96d Mettre à jour content/_index.md 2022-05-09 15:58:30 +00:00
gregandev 1921b1ec18 Mettre à jour themes/beautifulhugo/layouts/partials/head.html 2022-05-09 15:56:58 +00:00
gregandev c46695ae92 Mettre à jour themes/beautifulhugo/layouts/partials/head.html 2022-05-09 15:54:33 +00:00
gregandev b831e49bdf Mettre à jour themes/beautifulhugo/layouts/partials/head.html 2022-05-09 15:52:59 +00:00
gregandev e93415b0f9 Mettre à jour themes/beautifulhugo/layouts/partials/head.html 2022-05-09 15:36:45 +00:00
gregandev 7454a9dc40 Mettre à jour themes/beautifulhugo/layouts/partials/head.html 2022-05-09 15:33:53 +00:00
gregandev 31c079472a test head.html 2022-05-09 17:07:21 +02:00
gregandev e74918d8be test head.html 2022-05-09 17:01:30 +02:00
gregandev 11f4f9c32a test head.html 2022-05-09 17:00:13 +02:00
gregandev 77db717d1f test head.html 2022-05-09 16:58:49 +02:00
gregandev 160226c402 test CI/CD 2022-04-05 15:31:22 +02:00
gregandev b3d3547323 Mettre à jour content/page/about.md 2022-01-26 07:29:12 +00:00
gregandev d0bcf0c70a maj readme 2021-07-24 11:37:02 +02:00
384 changed files with 22926 additions and 4642 deletions
+69
View File
@@ -0,0 +1,69 @@
kind: pipeline
name: hugo
type: docker
platform:
os: linux
arch: arm64
trigger:
branch:
- main
steps:
- name: git pull submodules
image: alpine/git
# settings:
# user:
# from_secret: GIT_USER
# password:
# from_secret: GIT_PASSWORD
commands:
- git submodule update --init --recursive
- name: build hugo site
image: plugins/hugo
settings:
hugo_version: 0.69.0
theme: ameida-cv
extended: true
validate: true
config: config.toml
content: content
output: ./public
commands:
- apk add libc6-compat libstdc++
- /bin/hugo
- name: deploy site on server
image: greglebreton/drone-rsync:aarch64
settings:
hosts: ["192.168.1.100"]
target: /var/www/html/hugo-site
source: public/*
port: 2021
user:
from_secret: RSYNC_USER
key:
from_secret: RSYNC_SSH_KEY
- name: notification
image: appleboy/drone-telegram
settings:
token:
from_secret: TELEGRAM_TOKEN
to:
from_secret: TELEGRAM_USERID
when:
status:
- failure
- success
format: markdown
message: >
📝 {{repo.name}} / {{commit.branch}} - {{commit.message}}
{{#success build.status}}
✅ succeeded for 👷‍♂️ build {{build.number}}
{{else}}
🛑 failed for 👷‍♂️ build {{build.number}}
{{/success}}
+15 -3
View File
@@ -1,3 +1,15 @@
[submodule "themes/zen"]
path = themes/zen
url = https://github.com/frjo/hugo-theme-zen.git
[submodule "themes/hugo.386"]
path = themes/hugo.386
url = https://gitlab.com/jmfergeau/hugo.386
[submodule "themes/simpleIntro"]
path = themes/simpleIntro
url = https://github.com/qub1750ul/hugo-simpleIntro
[submodule "themes/graysx-hugo"]
path = themes/graysx-hugo
url = https://github.com/akatiggerx04/graysx-hugo/
[submodule "themes/capsule"]
path = themes/capsule
url = https://github.com/sudorook/capsule
[submodule "themes/silhouette-hugo"]
path = themes/silhouette-hugo
url = https://github.com/mattbutton/silhouette-hugo.git
+1 -1
View File
@@ -1,6 +1,6 @@
FROM nginx:alpine
COPY ./public /var/www/html
COPY ./nginx-docker/nginx.conf /etc/nginx/conf.d/default.conf
COPY ./nginx-proxy/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
+20 -48
View File
@@ -1,69 +1,41 @@
# HUGO SITE AVEC DOCKER
# HUGO SITE
Cette branche à pour but de conteneurisé un site HUGO compilé avec un server NGINX.
La configuration pour le NGINX reverse proxy en front se trouve dans le dossir nginx-proxy.
Hugo est un framework open source pour générer facilement des sites webs (https://gohugo.io/)
## UTILISATION:
Pour l'utiliser avec un autre site Hugo, copier simplement la Dockerfile ou le docker-compose.yml
ainsi que les dossiers nginx-docker et nginx-proxy à la racine du projet Hugo (à côté du config.toml)
et éxécuter la commande pour construire le site:
### HUGO INSTALL
Voir sur le site https://gohugo.io/ selon vtre OS et distribution
### UTILISATION
```bash
hugo
hugo new site monsite
```
Un dossier public s'est créé avec les fichiers statiques du site, il faut maintenant configurer
les Nginx (le proxy et celui dans l'image Docker:
## CONFIGURATION:
Editer le fichier de configuration
```bash
nano nginx-proxy/nginx.conf
```
/\ Attention, le nom de domaine (ici exemple.com) est à configuré dans le proxy NGINX !
Une fois tout bien renseigné
Redémarrer NGINX:
#### Installer un thème:
```bash
sudo systemctl restart nginx
git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
echo theme = \"ananke\" >> config.toml
```
## DEMARRER L'IMAGE:
### VIA DOCKER
#### Ajouter un nouveau post:
```bash
docker build -t hugo/hugo-site .
docker run -d -p 6666:80 --name hugo-site hugo/hugo-site
hugo new posts/my-first-post.md
```
### VIA DOCKER-COMPOSE
#### lancer le serveur en local:
```bash
docker-compose up -d
hugo server -D
```
### HTTPS:
Visiter http://localhost:1313
Via Certbot:
```bash
sudo apt install certbot -y
sudo certbot certonly -d example.com
```
#### Déployer via Docker:
Une fois le certificat obtenu, décommenter les 3 lignes concernant le SSL en vérifiant
le nom des certificats en fonction du nom de domaine:
```
#ssl on;
#ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
#ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
```
Créer une redirection vers le HTTPS dans le bloc server HTTP:
```
return 301 https://$host$request_uri;
```
Visiter la branch docker
+79 -75
View File
@@ -1,58 +1,101 @@
# Configuration de l'adresse, titre (onglet) et des chemins vers les contenus
baseurl = "https://hugo.gregandev.fr"
baseurl = "/"
contentdir = "content"
layoutdir = "layouts"
publishdir = "public"
title = "GreganDev"
title = "Gregandev"
canonifyurls = true
logo = "images/logos/logo.png"
favicon = "images/logos/favicon.png"
# Configuration du language et thème
author = "Grégory Lebreton"
paginate = 3
theme = "silhouette-hugo"
pygmentsUseClasses=true
#disqusShortname = ""
#googleAnalytics = ""
[params]
author = "Grégory Lebreton"
introDescription = "Ingénieur Devops"
contentSharing = ""
[social]
github = "greglebreton"
linkedin = "grégory-lebreton-996b261bb"
gitlab = "greglebreton"
# CONFIG LANGAGE ET THEME
DefaultContentLanguage = "fr"
theme = "beautifulhugo"
#theme = "Lanyon"
# theme = ["osm", "beautifulhugo"]
theme = "silhouette-hugo"
metaDataFormat = "yaml"
pygmentsUseClasses = true
pygmentCodeFences = true
#disqusShortname = "XXX"
#googleAnalytics = "XXX"
# ACCUEIL
[Params]
subtitle = "Portfolio made in HUGO !"
logo = "img/logo2.png"
favicon = "img/favicon.ico"
dateFormat = "January 2, 2006"
commit = false
rss = false
comments = true
# gcse = "012345678901234567890:abcdefghijk" # Get your code from google.com/cse. Make sure to go to "Look and Feel" and change Layout to "Full Width" and Theme to "Classic"
# [params]
# mainbg = "images/unix.jpg"
# name = "Gregandev"
# # mainTitle = "Portfolio"
# mainText = "Devops for Game"
# # subtitle = "Portfolio"
# since = 2022
# logo = "images/logos/logo.png"
# favicon = "images/logos/favicon.png"
# dateFormat = "January 2, 2006"
# commit = false
# rss = false
# comments = true
#[[Params.bigimg]]
# src = "img/triangle.jpg"
# desc = "Triangle"
#[[Params.bigimg]]
# src = "img/sphere.jpg"
# desc = "Sphere"
#[[Params.bigimg]]
# src = "img/hexagon.jpg"
# desc = "Hexagon"
# [menus]
# [[menu.main]]
# identifier = "about"
# name = "A propos"
# url = "page/about"
# [[menu.main]]
# identifier = "skills"
# name = "Liens"
# url = "page/liens"
# [[menu.main]]
# identifier = "projects"
# name = "Projects"
# url = "page/projects"
# [[menu.main]]
# identifier = "projects"
# name = "CV"
# url = "https://cv.gregandev.fr"
# # ACCUEIL
# [Params]
# subtitle = "Portfolio"
# since = 2022
# logo = "images/logos/logo.png"
# favicon = "images/logos/favicon.png"
# dateFormat = "January 2, 2006"
# commit = false
# rss = false
# comments = true
# ICONES RESEAUX SOCIAUX
[Author]
name = "Greg Lebreton"
email = "greg.lebreton@hotmail.com"
gitlab = "GregLebreton"
email = "contact@gregandev.fr"
# gitlab = "GregLebreton"
github = "GregLebreton"
twitter = "Gregan"
reddit = "username"
linkedin = "<greg<lebreton"
stackoverflow = "users/XXXXXXX/username"
instagram = "username"
youtube = "user/username" # or channel/channelname
spotify = "username"
itchio = "username"
linkedin = "grégory-lebreton-996b261bb"
itchio = "gregan"
#twitter = "Gregan"
#reddit = "username"
#stackoverflow = "users/XXXXXXX/username"
#instagram = "username"
#youtube = "user/username" # or channel/channelname
#spotify = "username"
#keybase = "username"
#xing = "username"
#bandcamp = "username"
@@ -61,42 +104,3 @@ pygmentCodeFences = true
#facebook = "username"
#googleplus = "+username" # or xxxxxxxxxxxxxxxxxxxxx
##### MENU #####
[[menu.main]]
name = "Post"
url = "post/"
weight = 1
# About
[[menu.main]]
name = "A propos"
url = "page/about"
weight = 2
# Tags
[[menu.main]]
name = "Tags"
url = "tags"
weight = 3
# sous menu PROJETS
[[menu.main]]
parent = "Projets"
name = "Projet 1"
url = "projets/projet1"
weight = 4
[[menu.main]]
parent = "Projets"
name = "Projet 2"
url = "projets/projet2"
[[menu.main]]
parent = "Projets"
name = "Projet 3"
url = "projets/projet3"
+24 -14
View File
@@ -1,19 +1,29 @@
[comment]: <> (PIPELINE)
---
title: Accueil
---
## Contenu de la page d'accueil
<div class="contenu">
<!-- Ajout image -->
![c'est une image](/images/hugo-logo.png)
### INTRODUCTION
<!-- Ajout vidéo youtube -->
{{< youtube bdQCxm1YOwY >}}
Développeur passionné par les technologies de l'information et de communication, autodidacte de formation, j'aime le partage de connaissances par l'intermédiaire de tout vecteur possible dont l'open source !
### Explication de config
This website is powered by [GitLab Pages](https://about.gitlab.com/features/pages/)
/ [Hugo](https://gohugo.io) and can be built in under 1 minute.
Literally. It uses the `beautifulhugo` theme which supports content on your front page.
Edit `/content/_index.md` to change what appears here. Delete `/content/_index.md`
if you don't want any content here.
### LES PROJETS
Head over to the [GitLab project](https://gitlab.com/pages/hugo) to get started.
<!-- test ouroboros ou watchtower -->
Voici les projets sur lesquels je travaille actuellement :
[![LA2029](images/jeux/CaptureTerminatorQuest00.png)]({{< relref "page/la-2029.md" >}})
[![GEVR](images/jeux/GEVRCover.jpg)]({{< relref "page/goldeneyevr.md" >}})
[![E&MVSW](images/jeux/AkiraCover.JPG)]({{< relref "page/akiravr.md" >}})
[![E&MVSW](images/jeux/cover.jpg)]({{< relref "page/retroarcade.md" >}})
[![GARAGE](images/formation/garagenum.png)]({{< relref "page/garagenum.md" >}})
[![CNAM](images/formation/cnam.png)]({{< relref "page/cnam.md" >}})
[![SK8](images/projets/skate.png)](https://git.gregandev.fr/explore/repos)
</div>
+51 -29
View File
@@ -1,43 +1,65 @@
---
title: Un titre
subtitle: Un sous titre
title: MON PARCOURS
subtitle:
comments: false
---
## Exemple de texte
Après mon Baccalauréat, j'ai choisit de travailler pour être indépendant. C'est plus tard que j'ai trouvé ma vocation et alors ai entrepris de reprendre les études nécessaires pour faire le méter de mes rêves.
Mon nom est Greg Lebreton, et voici mes compétences:
#### CONCEPTEUR DEVELOPPEUR APPLICATION JAVA
- Devops
- C#
- PHP
- Java
- Python
- Bash
- Docker
- Ansible
- Jenkins
- Kubernetes
- ...
La formation de concepteur développeur informatique était orientée Java et web, avec le développement d'applications gérant aussi bien le Frontend que le Backend avec un affichage fenêtré géré par Swing ou un affichage par Jsp.
Et bien plus encore.
J'ai pu aborder également la persistence a travers JPA mais aussi de manière traditionnelle avec le SQL et les bases de données (relationnelles).
J'ai alors développer des applications pour des librairie ou de restaurants connectés.
du code:
```
cd /etc/
```
En conception, j'ai été formé à la méthode Merise ainsi que l'UML pour la modélisation, puis plus tard la méthode agile avec le développement SCRUM.
## Des exemples d'ajouts de contenu :
[![AFPA](../../images/formation/Afpa12.jpg)](https://www.afpa.fr/)
### lien
Juste le meilleure film : [mon lien](https://www.youtube.com/watch?v=W8sop56DBUs)
#### DEV PHP LEADING FROG
### image
![c'est une image](/images/hugo-logo.png)
J'ai eu la chance de pouvoir développer un module en PHP pour une application liscenciée par Leading Frog.
### video youtube
{{< youtube ZSWzPI4BqvA >}}
L'application est déployée sur des totems dans les hôtels touristiques de Disneyland et offrent
différents modules comme la consultation d'horaires des transports (avions, bus, état du trafic routier), etc...
### texte
Mon module propose de choisir parmi des photos selectionnées par l'établissement pour les envoyer via un service payant (stripe) sous forme de carte postale.
juste blabla, et bla !
Une fois le paiement effectué, une notification est envoyée à Leading Frog proposant d'imprimer la carte postale avec le visuel précédement choisi et l'adresse de destination déjà saisie.
[![Leading Frog](../../images/formation/LG.png)](https://news.leadingfrog.com/)
#### DEVOPS
Puis j'ai suivi une formation DEVOPS avec l'utilisation d'outils comme Jenkins, Ansible ou Kubernetes qui change la façon de concevoir, développer et déployer des services informatiques.
[![DEVOPS](../../images/formation/Devops.png)](https://fr.wikipedia.org/wiki/Devops)
## MON TRAVAIL
-----------
[![GN](../../images/formation/garagenum.png)]({{< relref "page/garagenum.md" >}})
Je suis actuellement employé au Garage Numérique en tant que formateur Devops, avec également les casquettes d'administrateur systèmes, développeur et intégrateur.
C'est dans cet incubateur de talents que j'ai développé une application web de quiz en python via le framework Django, implémenter l'identification centralisée avec le logiciel Keycloak sur tous les services de l'association ([Nextcloud](https://nextcloud.com/fr/), [Kanboard](https://kanboard.org/), [Element](https://element.io/), [Workadventure](https://workadventu.re/), [Portainer](https://www.portainer.io/), [Jenkins](https://www.jenkins.io/), [Penpot](https://penpot.app/), [Gitea](https://gitea.com/)), ainsi que tout un système de PRA avec sauvegardes régulières et redéploiement automatiseé via: [Ansible](https://www.ansible.com/).
[![CNAM](../../images/formation/cnam.png)]({{< relref "page/cnam.md" >}})
Le [CNAM](https://www.cnam.fr/) est un partenaire dans la formation des jeunes aux métiers de demain, il développe de nouvelles filières qui visent à répondre aux besoins des professionnels de l'informatique et permettent la reconnaissance des nouvelles compétences de l'IT par l'intermédiaire de dipômes.
## MES PASSIONS
-----------
#### SKATEBOARD
Une autre de mes passion, le skateboard. La plaisir de cruiser avec sa board un soir d'été afin de sentir le vent rafraîchir ces tempes est un des plaisirs de la vie.
[![SK8](../../images/formation/skate.png)](https://www.youtube.com/@TheGregan77)
#### VR GAMES
Je suis depuis le début cette technologie qui me fascine tant par son aspect futuriste que par les possibilités qu'elle offre.
![VR](../../images/jeux/vr.gif)
+19
View File
@@ -0,0 +1,19 @@
---
title: AKIRA VR
subtitle: Jeux VR dev sous Unity
comments: false
---
### LE PRINCIPE
Le but de ce projet est de reproduire le Neo Tokyo d'Akira, au volant de la moto de Kaneda, parcours les autoroutes niponnes en pleine ville suréaliste.
![AKIRAVR](../../images/jeux/AkiraCover.JPG)
Ce projet me permet de travailler sur les lumières et l'optimisation de celles-ci dans une scène sous Unity.
### ROADMAP
Il n'y en as pas vraiment, c'est mon projet le moins prioritaire pour le moment, idéalement, ajouter plus de routes / circuits, des ennemis et amèliorer la maniabilité de la bécane.
![AKIRAVR](../../images/jeux/akira-bike.png)
+15
View File
@@ -0,0 +1,15 @@
---
title: Le CNAM
subtitle: conservatoire national des arts et métiers
comments: false
---
![CNAM](../../images/formation/cnam2.png)
Dans le cadre d'un partenariat entre le Garage Numérique et le CNAM, j'anime les cours de spécialité DEVOPS technicien d'exploitation.
Cela me permet de former les jeunes à l'informatique de demain dans une branche offrant tant de métiers différents qu'il est souvent difficile de s'orienter pour un étudiant.
Pour connaître le contenu de la formation, cliquez sur le logo ci-dessous:
[![Plaquette formation](../../images/formation/cnam.png)](https://formation.cnam.fr/rechercher-par-discipline/technicien-developpement-securite-et-exploitation-1357504.kjsp?RF=)
+59
View File
@@ -0,0 +1,59 @@
---
title: LE GARAGE NUMERIQUE
subtitle:
comments: false
---
[![GN](../../images/logos/linux.png)](https://fr.wikipedia.org/wiki/Linux)
### L'ASSOCIATION
[![GN](../../images/formation/garagenum.png)](https://www.legaragenumerique.fr)
L'association Le Garage Numérique prône la culture du logiciel libre. Linux Debian est l'OS de prédilection.
Nous avons pour but de former la population à l'utilisation de logiciels libres pour que celle-ci s'approprie les outils plutôt que de payer de grands éditeurs pour pouvoir travailler ou faire ses démarches administratives.
Au Garage Numérique, on répare, on reconditionne et on forme les habitants aux outils libres pour une égalité numérique!
---------------
### MON TRAVAIL
![GN](../../images/logos/devops.png)
##### MES RÔLES
Mon travail au "Garage" revêt de multiples facettes:
- Je suis formateur Technicien d'exploitation Devops au CNAM pour des étudiants BAC +1.
- Je suis également Administrateur système, en charge de maintenir les serveurs du Garage opérationnels, à jour et sécurisés.
Dans ce cadre, j'ai déployé un PRA (Plan Reprise d'Activité) visant à sauvegarder les applicatifs régulièrement et redéployer ceux-ci en cas de problèmes sur les serveurs.
- J'ai aussi la casquette de développeur / intégrateur des applications déployés sur les serveurs de l'association.
##### LES PROJETS
- Le framework python Django m'a permis de développer une application de quiz avec connection centralisée (SSO) vers le gestionnaire d'identité du Garage: Keycloak
[![DJANGO](../../images/logos/django.png)](https://www.djangoproject.com/)
[![KEYCLOAK](../../images/logos/keycloak.png)](https://www.keycloak.org/)
- A la manière de [OVERTHEWIRE](https://overthewire.org/wargames/bandit/), nous avons créé un "bash game" pour faire découvrir aux étudiants les commandes terminal Linux via un jeux:
[![BASH](../../images/projets/bash-game.png)](https://devops.legaragenumerique.fr/)
Pour déployer l'application sur les serveurs du Garage, nous avons choisi de "dockerisé" celle-ci afin d'optimiser et de sécuriser notre serveur via l'outil Docker.
[![DOCKER](../../images/logos/docker.png)](https://www.docker.com/)
- Nous avons également déployer un méta-verse permettant aux étudiants de se retrouver d'une manière ludique pour travailler:
[![WA](../../images/projets/wa.png)](https://workadventu.re/)
Développé par [The Coding Machine](https://thecodingmachine.com/)
- Nous avons constitué une documentation au fil du temps archivant nos process et beacoup de connaissances utiles dans l'informatique hébergé sur Gitlab et mise à jour régulièrement:
[![DOC](../../images/logos/mkdocs.png)](https://garagenum.gitlab.io/doc/)
+60
View File
@@ -0,0 +1,60 @@
---
title: GOLDENEYE VR
subtitle: VR multiplayer retro classic remake
---
[![GEVR COVER](../../images/jeux/GEVRCover.jpg)](https://fr.wikipedia.org/wiki/GoldenEye_007)
### LE PRINCIPE
Le but est de se rapprocher un maximum de la version N64 mais en VR : restituer l'ambiance et les mécanismes de l'original mais en y étant. Un principe des plus simple :
transposer GoldenEye 64 en PC VR avec une compatibilité maximale (Oculus Rift(s), HTC Vive, Windows MR, etc...).
Je développe sous Unity avec l'api Photon pour le multiplayer. Pour les mécaniques, c'est du pur script! Le projet est à vocation open source,
destiné pour les fans de GoldenEye 64 et de VR, le but est de créer une communauté pour améliorer continuellement le jeu à la manière de GoldenEye Source.
---------------
### SCREENSHOTS
#### les maps
![GEVR CAPTURE 1](../../images/jeux/CaptureGEVR1.PNG)
![GEVR CAPTURE 2](../../images/jeux/CaptureGEVR2.PNG)
![GEVR CAPTURE 3](../../images/jeux/CaptureGevrArchives.PNG)
(Toutes les maps du jeu originales sont présentes bien entendu!)
#### les menus
![GEVR CAPTURE 4](../../images/jeux/CaptureGevrDiscord.PNG)
![GEVR CAPTURE 5](../../images/jeux/CaptureGevrMenu.PNG)
![GEVR CAPTURE 6](../../images/jeux/CapturePauseMenu.PNG)
![GEVR CAPTURE 7](../../images/jeux/CapturePauseMenu2.PNG)
---------------
### UPDATE 04/2020DES NEWS
Suite au contexte de confinement, j'ai pû replonger dans le projet pour y avançer quelque peu.
Voici les petits ajouts et une petite update de la road map:<br>
- Ajout de différents modèle de player (Connery, Brosnan et Craig)<br>
- Ajout du plug-in Steam VR<br>
- Ajout du plug-in Photon Voice qui gère le dialogue par voix dans le jeu<br>
![GEVR CAPTURE 8](../../images/jeux/CaptureGEVR5.JPG)
![GEVR CAPTURE 9](../../images/jeux/CaptureGEVR4.JPG)
![GEVR CAPTURE 10](../../images/jeux/CaptureGEVR6.JPG)
---------------
### LA ROAD MAP
La roadmap du projet est la suivante:<br>
* Implémenter la création de room personnalisée pour faire des parties privée entre amis.<br>
* Intégrer les différents modes de jeu (deathmatch, teammatch, capture the flag, the man with the golden gun, etc...)<br>
* Ajouter des options de comfort comme la vignette lors du déplacement, la TP, le remappage des boutons.<br>
* Et des features auxquels je n'ai pas encore pensé!
+214
View File
@@ -0,0 +1,214 @@
---
title: LA 2029
subtitle: VR Shooter
comments: false
---
![LA 2029](../../images/jeux/CaptureTerminatorQuest00.png)
### LE PRINCIPE
C'est un FPS en VR pour la plateforme Oculus Quest où l'on tire sur des terminators se présentant.
La recharge se fait de manière manuelle avec le magasin vide à éjecter avant de se munir du nouveau magasin à sa ceinture pour<br>
l'ammener à l'arme, ce qui recharge celle-ci.<br>
Le but est de rejoindre la fin du niveau en tuant un maximum de Terminators et en restant en vie : simple et éfficace!
![LA 2029](../../images/jeux/CaptureTerminatorQuest3.png)
### LE POURQUOI
Je voulais tester de créer les scripts de mécanique de recharge manuelle de l'arme :<br>
une fois le magasin vide enlevé, on prends celui situé à gauche sur la "ceinture" et finalement celui-ci mis en place, l'arme se recharge.
L'aspect "limitation technique" vu le support mobile Quest est aussi ce qui m'a motivé pour ce projet.
Suite à la sortie du jeu Terminator Resistance, j'ai vraiment accroché avec l'ambiance que les
devs ont réussis à créer et étant un fan des films, je me suis lançé.<br>
C'est une version simple avec des assets téléchargées sur Sketchfab, le tout codé en une semaine.
### LE COMMENT
La plateforme Quest étant limité en ressources ([Spécifications Oculus Quest](https://vr-compare.com/headset/oculusquest)), il fallait trouver un moyen d'optimiser le chargement des GameObjects en cours de niveau, j'ai donc implémenté le principe "d'object pooler".
Le principe s'articule autour de deux scripts fonctionnant de concert:
- Le premier script, l'ObjectPooler charge en début de scene un nombre défini d'instances de Gameobjects afin que ceux-ci soient disponibles et ainsi éviter des ralentissements en plein niveau.
- Le second se place sur des "Transform" où les GameObjects sont sensé apparaître. Un composant collider va déclencher l'apparition du GameObject dès que le joueur arrive à une certaine distance. Il suffit au script de piocher dans le "pool" des GameObjects chargés en début de scène.
<!--
![OBJECT POOLER](../../images/jeux/object-pooler.gif)
-->
<!--
##### ObjectPooler.cs
```cs
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class ObjectPoolItem
{
public int amountToPool;
public GameObject objectToPool;
public bool shouldExpand;
}
public class ObjectPooler : MonoBehaviour
{
public static ObjectPooler SharedInstance;
public List<GameObject> pooledObjects;
public List<ObjectPoolItem> itemsToPool;
void Awake()
{
SharedInstance = this;
}
void Start ()
{
pooledObjects = new List<GameObject>();
foreach (ObjectPoolItem item in itemsToPool)
{
for (int i = 0; i < item.amountToPool; i++)
{
GameObject obj = (GameObject)Instantiate(item.objectToPool);
obj.SetActive(false);
pooledObjects.Add(obj);
}
}
}
public GameObject GetPooledObject(string tag)
{
for (int i = 0; i < pooledObjects.Count; i++) {
if (!pooledObjects[i].activeInHierarchy && pooledObjects[i].tag == tag) {
return pooledObjects[i];
}
}
foreach (ObjectPoolItem item in itemsToPool) {
if (item.objectToPool.tag == tag) {
if (item.shouldExpand) {
GameObject obj = (GameObject)Instantiate(item.objectToPool);
obj.SetActive(false);
pooledObjects.Add(obj);
return obj;
}
}
}
return null;
}
}
```
##### ObjectLoader.cs
```cs
using UnityEngine;
using System.Collections;
public class ObjectLoader : MonoBehaviour
{
public string prefabName;
private Transform spawnPoint;
private GameObject clone;
void Start()
{
spawnPoint = this.transform;
}
void OnTriggerEnter(Collider col)
{
if(col.transform.tag == "Player")
{
LoadObject();
}
}
void OnTriggerExit(Collider col)
{
if(col.transform.tag == "Player")
{
UnloadObject();
}
}
void LoadObject()
{
GameObject clone = ObjectPooler.SharedInstance.GetPooledObject(prefabName);
if(clone != null)
{
clone.transform.position = spawnPoint.transform.position;
clone.transform.rotation = spawnPoint.transform.rotation;
clone.SetActive(true);
this.clone = clone;
}
}
void UnloadObject()
{
if(clone != null)
{
clone.SetActive(false);
}
}
}
```
-->
### V 2.00
Suite aux critiques positive sur SideQuest, j'ai décidé de pousser un peu plus loin la complexité des mécanismes en scriptant un objectif:
détruire un batiment pour libérer le passage vers la fin du niveau.
Pour se faire, le joueur doit se munir d'une bombe à sa ceinture pour la déposer à un endroit spécifique qui déclenchera un compte à rebours,<br>
puis l'explosion du batiment qui libèrera enfin l'accès vers la fin du niveau.
![SCREENSHOT1](../../images/jeux/CaptureTerminatorQuest0.jpg)
![SCREENSHOT1](../../images/jeux/CaptureTent.JPG)
![SCREENSHOT1](../../images/jeux/CaptureTerminatorQuest2.png)
### VIDEOS TEST
En attendant le portage qui apportera des améliorations graphiques et au niveau du gameplay, voici une review sur Quest 2 :
{{< youtube 8Jfupw6VqgU >}}
La version 2.00 avec le deuxième level est disponible un peu plus bas en téléchargement via le sideloader Sidequest.
### ROAD MAP
Pour la suite du projet, on passe sur PC, on oublie Oculus et on plonge dans l'open source avec openXR pour le côté VR.
Par la même occassion, on bascule sur la dernière version d'Unity (2021.3.15), on corrige les petits bugs et on repasse les textures en standard (bye bye textures mobile sans UV maps!).
Reste à peupler un peu plus la map maintenant que l'on est plus limité par un chipset mobile et on se lançe vers un niveau 3!
![LA 2029](../../images/jeux/LA2029.png)
V 3.00 on the way!
### TÉLÉCHARGER
Télécharger la version 2.00 pour Oculus Quest (compatible Quest 2):
>(Oculus Quest nécessaire ainsi que SideQuest pour l'installation)
[![STORE SIDEQUEST](../../images/logos/sidequest-logo.png)](https://sdq.st/a/366)
<!--[TELECHARGER DE GREGANDEV](../../docs/TerminatorQuest/TerminatorQuest_v2.00.apk)-->
Pour les versions suivantes, ce sera disponible sur itch.io en version PC Windows et Linux, API openXR (compatible Steam VR).
+81
View File
@@ -0,0 +1,81 @@
---
title: LIENS
subtitle:
comments: false
---
### BLADE RUNNER
![BR](../../images/jeux/bladerunner.jpg)
Quentin Langèle est un software engineer qui s'est lançé dans
un projet faramineux de reconstitution de l'appartement du célèbre Blade runner Rick Deckard.
La minutie des textures, le souci du détail et l'athmosphère générale en fait pour moi un monument numérique dédié au chef d'oeuvre du septième art qu'est Blade Runner.
Bref, pour les amoureux de Blade Runner, c'est ici :
[![BLADE RUNNER 9732](../../images/logos/logobr.png)](http://www.br9732.com)
[SITE DU CREATEUR](https://www.br9732.com)
### RETRO GAMING
![RETROARCH](../../images/jeux/retroarch.png)
Grâce à des devs brillants, la plateforme open source de retrogaming "Retroarch" a été déclinée
en version web via emscriptem. Une image docker éxistait déjà, cependant voulant héberger le tout sur un Raspberry Pi 4,
l'architecture ne correspondait pas. Après réécriture de la Dockerfile et un build plus tard, j'ai constaté le succès de l'opération.
[RETROARCH SOURCE CODE](https://github.com/libretro/RetroArch)
[IMAGE DOCKER POUR RASPBERRY PI 4](https://hub.docker.com/r/greglebreton/retroarchwebpi)
<!-- [RETROARCH WEB PLAYER DÉPLOYÉ](https://retroarch.gregandev.fr) -->
![RETROARCH](../../images/jeux/retroarch.gif)
### EMULATIONSTATION
![EMULATIONSTATION](../../images/jeux/Emulation.jpg)
EmulationStation est un FrontEnd opensource pour émulateur (généralement Retroarch). Il se décline sous différentes OS tels que Windows, Raspberry pi, débian et Arch OS.
Cet outil nécessite de la configuration pour fonctionner mais il offre des possibilités et une profondeur pour les afficionados du retro gaming qui mérite un détour.
En attendant de partager ma config, un petit lien permet de se faire une bonne idée de la chose.
J'ai également refait certains screens de menus pour quelques consoles que vous pouvez télécharger: [ICI](https://github.com/GregLebreton/emulationstationThemes)
[![SITE D'EMULATIONSTATION](../../images/jeux/logoes.png)](https://emulationstation.org)
### MOZINOR
![MOZINOR](../../images/liens/Mozinor.png)
Le célèbre Mozinor...
Mozinor est un amateur de doublages de vieux films qui peu a peu est passé pro dans le détournement de films.
Le mieux, c'est encore de parcourir son site en commençant par les premières années pour
constater l'évolution et l'ampleur du personnage !
[![MOZINOR](../../images/liens/mozinor.jpg)](http://www.mozinor.com)
La classe américaine ou le grand détournement. c'est le "flim" qui a inspiré Mozinor tant au niveau du principe que de l'humour.
![CLASSE AMERICAINE GIF](https://image.noelshack.com/fichiers/2018/02/7/1515913960-chips.gif)
[LA CLASSE AMERICAINE (FILM COMPLET)](https://www.youtube.com/watch?v=W8sop56DBUs)
### POUR LES VIEUX GEEKS
![DOS](../../images/jeux/doslogo.png)
![DOS](../../images/jeux/dos.gif)
JSdos est un projet pour faire tourner DosBox (émulateur MS-DOS en JavaScript) sur navigateur.
Cliquez sur l'icône et choisissez parmis les plus grand classiques DOS tels que DOOM, SIM CITY ou encore BLOOD.
Un grand merci à [@caiiiycuk](https://twitter.com/caiiiycuk) pour cet ouvrage.
[UN DOS EMBARQUÉ DANS UNE PAGE WEB AVEC LES GRANDS CLASSIQUES](https://js-dos.com/games/)
+76
View File
@@ -0,0 +1,76 @@
---
title: RETRO ARCADE GAME
subtitle: A tribute to retro classics
---
![RETRO-COVER](../../images/jeux/cover.jpg)
### LE PRINCIPE
Le but est de fournir un jeu ludique et personalisé pour mes neveux, dans l'esprit
des jeux codés fin des années 90 : plateforme 2D à niveaux themés.
Pour ce faire, nous allons récupérer un tas de "sprites" (animation 2D ou suite de différentes poses du personnage) ainsi que des décors pour créer des scènes sous Unity.
Ensuite, le plus dur est de codé les mécanismes de jeu... mais heureusement, il y a des tutos pour ça! (voir youtube, tutos, unity)
Le cahier des charges est le suivant:<br>
- Un level type Mario World<br>
- Un level type Sonic<br>
- Un level type R-type<br>
- Un Level de type Street of Rage<br>
![RETRO-COVER](../../images/jeux/projetunity.jpg)
![CODE-CASTLE](../../images/jeux/code-castle.png)
![RETRO-COVER2](../../images/jeux/capture-sonic.png)
----------------
### LA V2.0 EN WEBGL
![RETRO-COVER](../../images/jeux/webgl.png)
Cela fait un petit bout de temps que je voulais mettre en ligne la version 2 de mon projet de jeu mais des querelles de versions entre Unity et son plugin WebGL ainsi que le boulot m'ont
freiné dans le processus, mais voilà la V2.0 avec un niveaux vraiment complet ainsi que pleins de nouvelles mécaniques est là!
Un petit listing des updates:<br><br>
- Ajout d'un Game Manager qui persiste entre les scènes (persiste le score et les vies)<br>
- Le coup de poing est disponible avant l'arme <br>
- Le player peut désormais s'agenouiller<br>
- Ajout des dragons cracheurs de boule de feu<br>
- Ajout du boss Bowser<br>
- Ajout d'un Menu avec choix du perso <br>
- Nouveau HUD (affichage des vies et du score)<br>
- Nouveaux FX visuels <br><br>
J'ai dû en oublier mais l'essentiel est là. Pour essayer, toujours le même lien en dessous,
Pour les commandes, les manettes type Xbox360 sont reconnus ainsi que le clavier, control pour tirer, espace pour sauter<br>
[LE JEUX VERSION WEBGL](../../docs/webgl/index.html)
----------------
### LA V3.0 ANDROID
![ANDROID](../../images/logos/android.png)
Nouvelle version avec un troisième level!
Beaucoup d'améliorations au niveau des animations et du gameplay:<br>
- Affinage du code des ennemis,<br>
- Ajout d'ennemis au niveau 2 (Sonic)<br>
- Ajout niveau 3 : Star wars en mode R-type pour ceux qui ont connus<br>
- Ajout du menu pause avec l'option quitter<br>
- Build Android avec contrôles tactiles<br>
Bref, pleins de belles choses à tester!<br>
> Note: Fichier au format APK
[LE JEUX VERSION ANDROID](../../docs/android/EwannEtMilhauVSVideoGames.apk)
----------------
### ROADMAP
![ANDROID](../../images/jeux/CaptureSonicLevel.PNG)
### SCREENSHOTS
![ANDROID](../../images/jeux/CapturePreviewStreetofrageLevel.PNG)
(Les références à "One piece" & "Yu-Gi-Oh!", c'est pour mes neveux...)
-32
View File
@@ -1,32 +0,0 @@
---
title: Page Test Contenu
date: 2021-05-02
tags: ["test", "texte", "Rio de Janeiro"]
---
## Du texte:
Rio de Janeiro (/ˈʁi.u d(ʒi) ʒɐˈnejɾu/2), souvent désignée simplement sous le nom de Rio, et archaïquement Riogénaire en français, est la deuxième plus grande ville du Brésil après São Paulo. Située dans le Sud-Est du pays, elle est la capitale de l'État de Rio de Janeiro.
Avec ses 6,1 millions d'habitants intra-muros (communément appelés Cariocas, la variante Carioques existant aussi en français) et 12,62 millions dans l'aire urbaine, Rio de Janeiro est l'une des métropoles les plus importantes du continent américain.
Elle est mondialement connue pour son carnaval, ses plages (Copacabana, Leblon et Ipanema) ainsi que sa statue du Christ Rédempteur au sommet du Corcovado.
(extrait Wikipédia)
------
## Des tableaux:
| Tableau | Article | Prix |
| ------------- |:-------------:| -----:|
| 1 | Chapeau | €25 |
| 2 | Echarpe | €15 |
| 3 | Malabar | €0,1 |
------
## Simple lien:
[Je suis un lien!](https://gregandev.fr)
------
-44
View File
@@ -1,44 +0,0 @@
---
title: post test de divers contenus !
date: 2021-05-02
tags: ["test", "contenu", "photos", "gif", "code"]
---
## Image via link:
![](https://pbs.twimg.com/media/DGKRMoPXcAIyA8y.jpg)
commentaire ...
------
## Image via url locale (/static):
![](/images/test/1.png)
------
## Gif via link:
![](https://media-exp3.licdn.com/dms/image/C4D22AQHEESwqVLITmQ/feedshare-shrink_1280/0/1559729958380?e=1629331200&v=beta&t=5t3x2ObhIXjQU59nVvAarB-0f1mLpP55Z0C0ytli7DQ)
------
## Vidéo Youtube:
{{< youtube ZSWzPI4BqvA >}}
------
## Du code:
```javascript
var s = "JavaScript syntax highlighting";
alert(s);
```
```python
s = "Python syntax highlighting"
print s
```
```bash
cd /ici/etla
echo "Salut le monde!"
```
-10
View File
@@ -1,10 +0,0 @@
---
title: projet 1
tags: ["projet"]
---
### sous titre projet 1
le projet 1 est un tout nouveau projet ...
![](/images/projets/projet1/projet1.jpg)
-12
View File
@@ -1,12 +0,0 @@
---
title: projet 2
tags: ["projet2", "projet"]
---
le projet 2 est un tout nouveau projet ...
![](/images/projets/projet2/projet2.webp)
et bla !
![](/images/projets/projet2/projet2.webp)
-20
View File
@@ -1,20 +0,0 @@
---
title: projet 3
tags: ["projet3", "projet"]
---
le projet 3 est un projet de code
![](/images/hugo-logo.png)
bla bla bla
bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla !
bla bla bla bla bla bla :
- bla bla bla
- bla bla
{{< youtube ZSWzPI4BqvA >}}
+3 -1
View File
@@ -1,10 +1,12 @@
version: '3.9'
services:
hugo:
image: nginx:alpine
container_name: hugo-site
volumes:
- ./nginx-docker:/etc/nginx/conf.d
- ./nginx-proxy:/etc/nginx/conf.d
- ./public:/var/www/html
ports:
- 6060:80
View File
-23
View File
@@ -1,23 +0,0 @@
# config pour le nginx dans le caontainer
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /var/www/html;
index index.html index.htm;
}
error_page 404 /404.html; # Here and below is 404 error handling docs tried to describe
location = /404.html {
root /var/www/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
}
-59
View File
@@ -1,59 +0,0 @@
# HTTP
server {
listen 80;
listen [::]:80;
server_name example.com;
client_max_body_size 64M;
# Redirection HTTP -> HTTPS
#return 301 https://$host$request_uri;
location / {
proxy_buffering off;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:6666;
}
}
# Nécessaire pour les redirections internes à Hugo
location /feed {
return 302 https://example.com/index.xml;
}
# HTTPS
server{
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
location / {
proxy_buffering off;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:6666;
}
# Nécessaire pour les redirections internes à Hugo
location /feed {
return 302 https://example.com/index.xml;
}
#ssl on;
#ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
#ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
access_log /var/log/nginx/hugo_access.log;
error_log /var/log/nginx/hugo_error.log;
}
+29
View File
@@ -0,0 +1,29 @@
# HTTP
server {
listen 80;
listen [::]:80;
server_name localhost;
client_max_body_size 64M;
# Redirection HTTP -> HTTPS
#return 301 https://$host$request_uri;
location / {
root /var/www/html/;
index index.html;
# proxy_buffering off;
# proxy_redirect off;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Host $server_name;
# proxy_set_header X-Forwarded-Proto $scheme;
# proxy_pass http://127.0.0.1:6060;
}
# Nécessaire pour les redirections internes à Hugo
location /feed {
return 302 https://example.com/index.xml;
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 874 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 599 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 918 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 483 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Some files were not shown because too many files have changed in this diff Show More