DSsenegal / saleor

BSD 3-Clause "New" or "Revised" License
1 stars 0 forks source link

Déploiement de l'écosystème saleor #15

Closed zlorgoncho1 closed 1 month ago

zlorgoncho1 commented 2 months ago

Création des repositories:

Déploiement:

dofbi commented 2 months ago

Hello @honorableCon Je te propose de regarder saleor dashboard 🙏

honorableCon commented 2 months ago

D'accord @dofbi je l'avais déjà forké même 🚀

zlorgoncho1 commented 2 months ago

Hello @dofbi, finalement l'approche du virtualenv m'a beaucoup aidé. Nous avons ce script qui nous permet de déployer le core.

#!/bin/bash
sudo apt-get update
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt install -y python3.9 python3.9-venv python3.9-dev
sudo apt-get install -y libcairo2 libgdk-pixbuf2.0-0 liblcms2-2 libopenjp2-7 libpango-1.0-0 libpangocairo-1.0-0 libssl3 libwebp7 libxml2 libpq5 shared-mime-info mime-support
sudo apt-get install -y libpq-dev build-essential
pip install psycopg2-binary
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.9 get-pip.py
python3.9 -m venv env
source env/bin/activate
pip install poetry==1.7.0
poetry config virtualenvs.create false
git clone https://github.com/DSsenegal/saleor.git
cd saleor/
poetry install --no-root
echo 'image/webp webp' | sudo tee -a /etc/mime.types
echo 'image/avif avif' | sudo tee -a /etc/mime.types
mkdir media
mkdir static
SECRET_KEY=saleor STATIC_URL=0.0.0.0:8000/static/ python3 manage.py collectstatic --no-input
SECRET_KEY=saleor STATIC_URL=0.0.0.0:8000/static/ python3 manage.py runserver
zlorgoncho1 commented 2 months ago

Je vais maintenant essayer de déployer la base de donnée sur le même server, (défaut de ressources).

Image

zlorgoncho1 commented 2 months ago

Hello @dofbi , j'ai installé le postgres, voici les différents steps:

# Installation de postgres
sudo apt update
sudo apt install -y wget gnupg2
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt update
sudo apt install -y postgresql-15
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo -i -u postgres

sudo -i -u postgres
psql
CREATE USER saleor WITH PASSWORD 'saleor';
ALTER USER saleor WITH SUPERUSER;

CREATE DATABASE saleor;
\q
exit
zlorgoncho1 commented 2 months ago

Hello @dofbi, maintenant il faut juste effectuer les migrations et puis lancer le server:

SECRET_KEY=saleor STATIC_URL=0.0.0.0:8000/static/ python3 manage.py makemigrations
SECRET_KEY=saleor STATIC_URL=0.0.0.0:8000/static/ python3 manage.py migrate
SECRET_KEY=saleor STATIC_URL=0.0.0.0:8000/static/ python3 manage.py runserver

Image

L'api est up

dofbi commented 2 months ago

Good job @zlorgoncho1 Une adresse url ?

zlorgoncho1 commented 2 months ago

Je configure les permissions côté AWS.

zlorgoncho1 commented 2 months ago

Hello @dofbi, voici le lien: http://ec2-3-68-84-60.eu-central-1.compute.amazonaws.com/graphql/

Image

dofbi commented 2 months ago

Hello @zlorgoncho1

zlorgoncho1 commented 2 months ago

Hello @dofbi , l'install du postgres est bon depuis la mise en place du core. L'installation du dashboard, pas encore, le server crash a chaque build. Je builds sur ma machine local pour le copier sur le server.

zlorgoncho1 commented 2 months ago

Hello @dofbi , Je viens de déployer le Dashboard. Il est disponible a l'Endpoint suivant: http://ec2-3-68-84-60.eu-central-1.compute.amazonaws.com/

Le core est a l'Endpoint suivant: http://ec2-3-68-84-60.eu-central-1.compute.amazonaws.com:8000/graphql/

Ils sont indépendants de la session, autrement disponible même quand je me déconnecte du ssh.

dofbi commented 2 months ago

Hello @zlorgoncho1 Pour le Dashboard, pas besoin de l'avoir dans la même machine, nous pouvons l'avoir sur un vercel, netlify ou autre.

Pour la machine core, la migration passe ?

zlorgoncho1 commented 2 months ago

Hello @dofbi, Pour la machine core la migration passe. Voici les taches a faire:

zlorgoncho1 commented 2 months ago

Hello @dofbi ,

Lorsque j'essaie de build sur vercel, il faudra y'a une erreur comme quoi y'a pas assez de mémoire.

Image

dofbi commented 2 months ago

Try avec netlify @zlorgoncho1

zlorgoncho1 commented 2 months ago

@dofbi , avec Netlify, on a aussi un soucis :

Image

dofbi commented 2 months ago

Hello @zlorgoncho1 Je te propose de faire le build sur github avec les actions puis d'envoyer les fichier statics

Voici une action qui automatise cela

https://github.com/marketplace/actions/netlify-deploy

zlorgoncho1 commented 2 months ago

Hello @dofbi , Pour la base de donnée, c'est crée sur AWS. Je le plug au projet.

Image

zlorgoncho1 commented 2 months ago

Hello @dofbi , je rencontre ce soucis avec la connexion de la base de donnée sur aws, quand j'essaie la migration:

Image

dofbi commented 2 months ago

Hello @zlorgoncho1 merci de patager ta configuration sur une branche

zlorgoncho1 commented 2 months ago

Hello @dofbi , Voici les actions qui ont ete effectue:

dofbi commented 2 months ago

Hello @zlorgoncho1 Good job

zlorgoncho1 commented 2 months ago

Voici l'adresse du dashboard-1: https://dscale-saleor-dashboard.netlify.app/ Voici l'adresse du dashboard-2: https://dscale-saleor-dashboard-2.netlify.app/

L'adresse du core n'a pas change: http://ec2-3-68-84-60.eu-central-1.compute.amazonaws.com:8000/graphql/

C'est juste que par soucis de ressource, le server crash. Je précise que la base de donnée est retirée, mais aussi les Dashboards.

Pour le login, on a toujours pas pu créer un utilisateur a cause du server qui crash a chaque 2 requêtes.

dofbi commented 2 months ago

@zlorgoncho1

zlorgoncho1 commented 2 months ago

J'ai etendu les specs de la machine pour pouvoir faire les configuration correctement. On est alors passe de 1 vcpu, 1 Go Ram a 4vcpu, 8Go Ram, ca tourne normalement.

Voici le nouveau Host: http://ec2-3-70-156-20.eu-central-1.compute.amazonaws.com:8000/graphql/

2 schemas ont ete cree:

shop1 et shop2, je vous envoie lese informations de la base de donnee sur discord.

zlorgoncho1 commented 2 months ago

Hello @dofbi , @honorableCon , @mass-gueye ,

Nous avons déployé un troisième dashboard. Les deux premiers dashboards ne fonctionnaient pas à cause du HTTPS. Les sites en HTTPS ne peuvent pas faire de requêtes vers des sites en HTTP (les requêtes sont bloquées au niveau du client). Deux options s'offraient à nous :

Déployer les frontends sur un provider qui supporte le HTTP, ce qui n'est pas le cas de Netlify. Rendre les backends disponibles en HTTPS, ce qui n'est pas possible pour le moment, car notre DNS est fourni par AWS, et nous n'avons pas accès aux enregistrements pour générer notre propre certificat avec Let's Encrypt. Finalement, j'ai redéployé le frontend sur notre serveur AWS en HTTP, levant ainsi la première limitation. Il restait un autre problème lié au CORS. Nous avons donc ajouté un package CORS pour gérer ces limitations.

À cette heure, nous avons un troisième dashboard disponible à l'adresse suivante : Dashboard

L'utilisateur admin par défaut est :

email: admin@example.com
password: admin

Vous trouverez la branche deploy-static, qui correspond a la branche déployée avec les configs.