Publié

~3mn de lecture đź•‘

mar. 01 août 2017

← Liste des articles

Comment installer Kinto manuellement chez Alwaysdata

Qu'est-ce que Alwaysdata ?

Alwaysdata est un hébergeur français qui vous permet de payer pour un espace et d'y héberger autant de sites que vous le souhaitez en toute liberté.

L'équipe est à l'écoute et très sympathique ce qui en fait un service de grande qualité.

Une offre de découverte gratuite vous permet de tester le service avant de souscrire à un abonnement.

Créer un compte chez Alwaysdata

Pour créer un compte, rendez-vous ici: https://www.alwaysdata.com/fr/signup/

Vous allez renseigner vos coordonnées, votre email et choisir un mot de passe ainsi qu'un identifiant pour votre compte.

Cet identifiant vous sera nécessaire par la suite. Nous l'appelons ID_ALWAYSDATA.

Installation automatique de Kinto chez Alwaysdata

Avant toute chose, sachez qu'il existe un script qui s'occupe de faire l'installation pour vous automatiquement.

Vous pouvez le trouver ici : https://kinto.github.io/kinto-alwaysdata/

Installation manuelle de Kinto chez Alwaysdata

Activez Python 3.6.0

Dans le menu Environnement > Python vérifiez que votre version de Python par défaut soit bien au moins Python 3.6.0

Configurer la version 3.6.0 de Python chez Alwaysdata.

Créez une base de données PostgreSQL

Via l'administration de Alwaysdata vous pouvez créer un utilisateur et une base de données PostgreSQL, retenez bien l'identifiant et le mot de passe car vous en aurez besoin pour votre fichier de configuration kinto.ini

Créer un utilisateur et une base de données PostgreSQL

Activer la connexion SSH

L'installation de Kinto chez Alwaysdata se fait Ă  l'aide de la connexion SSH.

Commencez par vous connecter Ă  l'administration et Ă  activer votre compte SSH.

Activer l'utilisateur SSH.

Créer le fichier de configuration de Kinto

Créez le fichier kinto/kinto.ini

Vous pouvez utiliser ce modèle de fichier ini en veillant bien à remplacer les champs de type {...} et à configurer votre base de donnée PostgreSQL (appellée ici DBname) avec votre identifiant et mot de passe. Il est conseillé de créer un utilisateur spécifique pour Kinto (ici DBuser) en plus de votre compte AlwaysData (ici ADuser).

  • {id_alwaysdata} -> ADuser_DBuser
  • {password} -> le mot de passe
  • {postgresql_host} -> postgresql-ADuser.alwaysdata.net
  • {prefixed_username} -> ADuser_DBname

Vous devez également générer une clé secrète pour {hmac_secret}. Pour ce faire vous pouvez utiliser la commande uuidgen.

Pas besoin de changer {bucket_id}/{collection_id}.

Créer le lanceur du serveur

Créez le fichier kinto/kinto.wsgi

Vous pouvez utiliser ce modèle de fichier WSGI

Veillez à ce que le fichier soit exécutable :

chmod +x kinto/kinto.wsgi

Créer un environment virtuel Python et installez Kinto dedans

Vous pouvez vous connecter Ă  votre compte SSH depuis le terminal :

ssh ID_ALWAYSDATA@ssh-ID_ALWAYSDATA.alwaysdata.net

Remplacez ID_ALWAYSDATA par l'identifiant de votre compte alwaysdata.

virtualenv kinto/venv/
kinto/venv/bin/pip install kinto[postgresql] kinto-attachment
kinto/venv/bin/kinto migrate --ini kinto/kinto.ini

Associer votre Kinto Ă  un nom de domaine

Par défaut, Alwaysdata vous procure le sous domaine suivant: ID_ALWAYSDATA.alwaysdata.net

Mais vous pouvez également lier votre propre nom de domaine, soit en délégant la gestion du DNS à Alwaysdata soit en configurant la zone DNS pour pointer vers les serveurs de Alwaysdata.

Dans tous les cas Alwaysdata pourra vous fournir un certificat SSL gratuit via Let's Encrypt.

Ajoutez un nouveau site

Configurer le site internet

Informations

Entrez les informations concernant le site.

  • Nom : Kinto
  • Adresses: ID_ALWAYSDATA.alwaysdata.net
Nom du site et noms de domaine associés.

Configuration

Configurer le site Python :

  • Type : Python WSGI
  • Chemin de l'application : /kinto/kinto.wsgi
  • Version de Python : Version par dĂ©faut
  • RĂ©pertoire du virtualenv : /kinto/venv/
  • Chemins statiques : /attachments/=attachments
Configuration du site Python

SSL

  • Forcer le SSL : Oui
Configuration SSL

Autre nom de domaine

Si vous utilisez autre chose que xxx.alwaysdata.net, pensez à modifier :

  • kinto.http_host
  • kinto.attachment.base_url

Se connecter

Vous pouvez maintenant vous connecter au site et vérifier que tout fonctionne :

Configurer un administrateur

Connectez-vous Ă  la kinto-admin : https://ID_ALWAYSDATA.alwaysdata.net/v1/admin/

Choisissez un login/password et connectez-vous. Vous allez obtenir un identifiant unique pour votre administrateur: basicauth:......

Vous pouvez ensuite modifier la configuration de votre serveur Kinto pour n'autoriser la création de bucket que par cet utilisateur (et vous protéger des usages abusifs de votre service.)

kinto.bucket_create_principals = basicauth:800748fb8963fd00...a3420db354570a4e
kinto.bucket_write_principals = basicauth:800748fb8963fd00...a3420db354570a4e
kinto.bucket_read_principals = basicauth:800748fb8963fd00...a3420db354570a4e

kinto.collection_create_principals = basicauth:800748fb8963fd00...a3420db354570a4e
kinto.collection_write_principals = basicauth:800748fb8963fd00...a3420db354570a4e
kinto.collection_read_principals = basicauth:800748fb8963fd00...a3420db354570a4e

kinto.group_create_principals = basicauth:800748fb8963fd00...a3420db354570a4e
kinto.group_write_principals = basicauth:800748fb8963fd00...a3420db354570a4e
kinto.group_read_principals = basicauth:800748fb8963fd00...a3420db354570a4e

kinto.record_create_principals = basicauth:800748fb8963fd00...a3420db354570a4e
kinto.record_write_principals = basicauth:800748fb8963fd00...a3420db354570a4e
kinto.record_read_principals = basicauth:800748fb8963fd00...a3420db354570a4e

Si vous utilisez un autre système d'authentification, vous aurez probablement d'autres identifiants ne commençant pas par basicauth mais vous pouvez quand même utiliser ces identifiants dans votre fichier de configuration.

Vous pouvez également créer un groupe et utiliser ce groupe comme identifiant.

N'hésitez pas à nous demander de l'aide sur Slack ou IRC.

Troubleshooting

Dans tous les cas, les logs sont toujours une aide précieuse.

Error 503

> HTTP 503; Error: HTTP 503 Service Unavailable: > Service Temporary unavailable due to high load (Service temporary > unavailable due to overloading or maintenance, please retry later.)

Cette erreur peut se présenter si le mot de passe Postgres a été mal configuré.

Revenir au début