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
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
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.
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
Informations
Entrez les informations concernant le site.
- Nom : Kinto
- Adresses: ID_ALWAYSDATA.alwaysdata.net
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
SSL
- Forcer le SSL : Oui
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.
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é.