Skip to content

pokusio/pokus

Repository files navigation

Pokus

https://pok-us.io/ (domain name bought on 22/02/2020 )

The distributed, scalable Content Manager for hugo.

TypeScript / TSOA based microservice app.

IAAC

export WORK_FOLDER=~/pokus.dev
export SSH_URI_TO_THIS_REPO=git@gitlab.com:second-bureau/pegasus/pokus/pokus.git

export COMMIT_MESSAGE=""
export COMMIT_MESSAGE="$COMMIT_MESSAGE Reprise du travail sur [$SSH_URI_TO_THIS_REPO]"

initializeIAAC $SSH_URI_TO_THIS_REPO $WORK_FOLDER

atom .
# git add --all && git commit -m "$COMMIT_MESSAGE" && git push -u origin master

Brouillon: build n run

super tuto angular rest api JWT auth https://www.toptal.com/angular/angular-6-jwt-authentication

Build, run, n test

  • Dans un environnement :
# --
jbl@poste-devops-jbl-16gbram:~/pokus.dev$ node --version
v14.4.0
jbl@poste-devops-jbl-16gbram:~/pokus.dev$ npm --version
6.14.5
jbl@poste-devops-jbl-16gbram:~/pokus.dev$ yarn --version
1.22.4
jbl@poste-devops-jbl-16gbram:~/pokus.dev$ npm list --depth 0 -g tsoa
/usr/lib
└── tsoa@3.2.1

jbl@poste-devops-jbl-16gbram:~/pokus.dev$ npm list --depth 1 -g tsoa
/usr/lib
└── tsoa@3.2.1

jbl@poste-devops-jbl-16gbram:~/pokus.dev$ npm list --depth 0 -g multer
/usr/lib
└── multer@1.4.2

jbl@poste-devops-jbl-16gbram:~/pokus.dev$ npm list --depth 1 -g multer
/usr/lib
└── multer@1.4.2

jbl@poste-devops-jbl-16gbram:~/pokus.dev$
  • exécuter :
export URI_POKUS_REPO=git@gitlab.com:second-bureau/pegasus/pokus/pokus.git
export WORKDIR=$(pwd)/pokus-test
git clone $URI_POKUS_REPO $WORKDIR
cd $WORKDIR
# because we don't want this git repo to interfere with $GITOPS in the workpsace
rm -fr ./.git/

#
# defines from working directory where the
# files are going to be uploaded.
#
export MULTER_VERSION='1.4.2'
export TSOA_VERSION='3.2.1'
export POKUS_WKSP=$(pwd)/pokus.workspace
export POKUS_UPLOADS=${POKUS_WKSP}/uploads
export POKUS_GITOPS=${POKUS_WKSP}/pokus
mkdir -p $POKUS_UPLOADS
mkdir -p $POKUS_GITOPS
# mkdir -p ~/.ssh
# ssh-keygen -t rsa -b 4096
# cat ~/.ssh/id_rsa.pub
export GITOPS_REPO=https://github.com/Jean-Baptiste-Lasselle/hugoify.git
# export GITOPS_REPO=git@github.com:Jean-Baptiste-Lasselle/hugoify.git
git clone ${GITOPS_REPO} ${POKUS_GITOPS}
npm i -g tsoa@${TSOA_VERSION} multer@${MULTER_VERSION}
npm install
tsoa routes -c tsoa.json
npm run build
npm run server
  • Suite au démarrage du serveur, on aura, dans une autre session shell, une réponse API en requêtant en GET :
#
export POKUS_API_HOSTNAME="$(hostname)"
export POKUS_API_HOSTNAME=localhost
export POKUS_API_PORT_NO=3000
export POKUS_UPLOADS=$(pwd)/pokus_uploads
export POKUS_GITOPS=$(pwd)/pokus_gitops

curl -X GET http://$POKUS_API_HOSTNAME:$POKUS_API_PORT_NO/api/v1 | jq .
curl -X GET http://$POKUS_API_HOSTNAME:$POKUS_API_PORT_NO/api/v1/msg | jq .
  • Suite au démarrage du serveur, on aura, dans une autre session shell, une réponse API en requêtant en GET :
# On [Katacoda.com] / [NodeJS] playground :
export POKUS_API_HOSTNAME=2886795275-3000-elsy06.environments.katacoda.com
export POKUS_API_PORT_NO=80
# Locally
export POKUS_API_HOSTNAME=localhost
export POKUS_API_PORT_NO=3000

export POKUS_UPLOADS=$(pwd)/pokus_uploads
export POKUS_GITOPS=$(pwd)/pokus_gitops

#
# Invocation du endpoint /files/uploadFile
#

mkdir -p ./ptitestespace
echo 'ceci est un magnifique fichier que j ai edité' > ./ptitestespace/autrefichier.pokus

export CHEMIN_FICHIER_DS_GIT_REPO=exemple/rep1/rep2/autrefichier.pokus
export CHEMIN_LOCAL_FICHIER=./ptitestespace/autrefichier.pokus

curl -L -X POST -F "fichierSousEdition=@\"$CHEMIN_LOCAL_FICHIER\""  -F "cheminRepoGitFichierSousEdition=\"$CHEMIN_FICHIER_DS_GIT_REPO\"" http://$POKUS_API_HOSTNAME:$POKUS_API_PORT_NO/api/v1/files/uploadFile | jq .

#
# Invocation GET du endpoint [/]
#
curl -L -X GET http://$POKUS_API_HOSTNAME:$POKUS_API_PORT_NO/api/v1 | jq .

#
# Invocation GET du endpoint [/msg]
#
curl -L -X GET http://$POKUS_API_HOSTNAME:$POKUS_API_PORT_NO/api/v1/msg | jq .
  • Invocation testée du endpoint api/v1/files/uploadFile Ici, en ajoutant le paramètre de formulaire http multipart cheminRepoGitFichierSousEdition, ait pour valeur le chemin du sous-répertoire de workspace/pokus, dans lequel on veut enregistrer le fichier sur le serveur :
curl -L -X POST -F 'fichierSousEdition=@"./ptitestespace/autrefichier.pokus"'  -F 'cheminRepoGitFichierSousEdition="./ptitestespace/autrefichier.pokus"' http://$POKUS_API_HOSTNAME:$POKUS_API_PORT_NO/api/v1/files/uploadFile
# pour l'instant, les fichiers sont tous enregistrés dansle sous-répertoire 'workspace/pokus/subfolder1'

Running Containerized

TOP TODO :

Install

To install the application, do the following after cloning the repository:

$ npm install

Build and Run

To build the application:

$ npm run build

And to run the server:

$ npm run server

Codestyle

To check the codestyle (lint), do the following:

$ npm run lint

About

The only distributed Hugo Content manager

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published