La première étape de l’installation de Sharetribe nous a permis de préparer l’ensemble des éléments pour accueillir Sharetribe chez Amazon Web Services (AWS), soit le serveur (EC2), la base de données MySQL (RDS) et le système de stockage des données (S3). Il convient maintenant de lancer à proprement parler l’installation de Sharetribe sur le serveur.
Récupération du code source
Après vous êtes connecté à votre serveur EC2, nous allons récupérer le code source de Sharetribe sur GitHub en lançant la commande :
git clone git://github.com/sharetribe/sharetribe.git
L’ensemble des fichiers Sharetribe se trouve maintenant sur votre serveur. Nous allons pouvoir commencer l’installation.
Installation de Sharetribe sur AWS
Paramétrage de la base de données
La première étape consiste à indiquer à Sharetribe où se trouve la base de données RDS MySQL que nous avons créée. Pour cela, il faut paramétrer le fichier « database.yml ».
Allez dans le répertoire Sharetribe et créez d’abord une copie du fichier « database.example.yml » pour entrer nos propres informations de base de données.
cd sharetribe
cp config/database.example.yml config/database.yml
Pour éditer le fichier de base de données, nous utilisons l’éditeur de texte Nano
nano config/database.yml
Nous allons uniquement renseigner les lignes relatives au mode « production » qui se trouvent à la fin du fichier, en renseignant les informations suivantes :
production:
adapter: mysql2
database: le_nom_de_votre_base_de_données (DB Name)
encoding: utf8
username: le_nom_d_utilisateur_créé_pour_la_base_RDS (Username)
password: le_mot_de_passe_créé_pour_la_base_RDS
host: XXXXXXXX.YYYYYYY.eu-west-1.rds.amazonaws.com (Endpoint sans le :3306)
À noter que la partie host correspond à la partie Endpoint présente dans la console AWS, comme sur la capture d’écran ci-dessous.
Quittez Nano en tapant Ctrl + X et sauvegardez. Les références à la base de données sont maintenant complètes.
Paramétrage du stockage des données (Assets)
De la même manière que nous venons d’indiquer à Sharetribe où trouver la base de données, il faut maintenant lui indiquer où trouver l’espace de stockage S3. Ces paramètres se renseignent dans le fichier « config.yml ». Pour cela, éditons le fichier « config.ym » en copiant la base « config.defaults.yml ».
cp config.defaults.yml config.yml
nano config/config.yml
Nous allons devoir modifier un peu le code de ce fichier pour lui permettre de fonctionner. Commencez par compléter les lignes suivantes avec les informations de votre bucket S3 et les codes utilisateurs créés avec IAM :
# Default bucket
s3_bucket_name: nom_de_votre_bucket_sur_S3
# Bucket for files users upload directly to S3. You can add an expiration policy to these files
s3_upload_bucket_name: nom_de_votre_bucket_sur_S3
# AWS keys
aws_access_key_id: Access_Key_ID_créé_avec_IAM
aws_secret_access_key: Secret_Access_Key_créé_avec_IAM
Ajoutez ensuite les lignes de code suivantes (il s’agit d’une astuce pour faire fonctionner correctement S3) :
FOG_DIRECTORY: nom_de_votre_bucket_sur_S3
FOG_REGION: eu-west-1 (ou une autre région si votre serveur est hébergé sur une autre région)
FOG_PROVIDER: AWS
ASSET_SYNC_GZIP_COMPRESSION: true (si vous souhaitez compresser les fichiers sur le serveur)
Le paramétrage de S3 est terminé, mais ne fermez pas encore le fichier. Nous allons modifier d’autres paramètres.
Paramétrage des options de Sharetribe
Toujours dans le fichier « config.yml », nous avons accès à d’autres options, comme la langue, les adresses mail d’envoi des informations, le nom de domaine. N’hésitez pas à paramétrer ces données. Vous pourrez ensuite enregistrer et quitter le fichier.
Modification du fichier « asset_sync.rb » pour S3
Dans le fichier asset_sync.rb, nous allons effectuer un petit ajout de code pour définir la région de votre bucket (paramétrée dans « config.yml »). Ouvrer le fichier au moyen de la commande suivante :
nano config/initializers/asset_sync.rb
Et ajoutez la ligne « fog_region = app_config.FOG_REGION », comme dans l’exemple ci-dessous.
if defined?(AssetSync)
AssetSync.configure do |config|
app_config = Maybe(APP_CONFIG)
aws_access_key_id = app_config.aws_access_key_id
aws_secret_access_key = app_config.aws_secret_access_key
fog_directory = app_config.FOG_DIRECTORY
fog_provider = app_config.FOG_PROVIDER
fog_region = app_config.FOG_REGION
Un peu plus bas dans le fichier, ajoutez « config.fog_region = fog_region.get », comme dans l’exemple ci-dessous.
if enabled
config.fog_provider = fog_provider.get
config.fog_directory = fog_directory.get
config.aws_access_key_id = aws_access_key_id.get
config.aws_secret_access_key = aws_secret_access_key.get
config.fog_region = fog_region.get
end
Vous pouvez sauvegarder le fichier et quitter.
Modification du fichier « production.rb » pour Sphinx
Il convient d’effectuer une petite manipulation pour Sphinx en modifiant le fichier « production.rb ». Pour cela, ouvrez le fichier « production.rb »
nano config/environments/production.rb
Puis dans la ligne « config.assets.compile = false », remplacez « false » par « true » ce qui donne :
config.assets.compile = true
Lancement de l’installation
La première partie consiste à installer les gems nécessaires en entrant, depuis le dossier Sharetribe :
bundle install
Ensuite, il convient de charger la structure de la base de données, dans la base que nous avons créée :
rake RAILS_ENV=production db:schema:load
Ensuite on lance l’index de Sphinx :
rake RAILS_ENV=production ts:index
Puis on démarre Sphinx Daemon :
rake RAILS_ENV=production ts:start
Enfin on peut précompiler, invoquer le « job worker » et démarrer le serveur avec les commandes suivantes :
rake assets:precompile
rake RAILS_ENV=production jobs:work
rails server -e production
Bravo ! Sharetribe tourne sur votre serveur AWS ! Vous pouvez vous connecter via l’adresse ip suivante à votre nouvelle marketplace :
http://XX.XX.XX.XX:3000
où XX.XX.XX.XX est l’adresse IP de votre EC2, disponible dans la console d’AWS.
Initialisation de Sharetribe
Une fois connecté à votre marketplace, via votre navigateur internet, Sharetribe vous demandera quelques informations puis vous enverra un mail pour confirmer votre adresse.
Vous pourrez accéder ainsi à votre marketplace et vous concentrer sur le business :-).
Notes
En cas de besoin, n’hésitez pas à me contacter. Si vous souhaitez également que j’effectue l’installation de Sharetribe sur l’un de vos serveurs, je suis à votre disposition.
Laisser un commentaire