Si la base de données est à restaurer
Sur Scalingo, à parir de l'application à restaurer, accéder à l'archive de la base de données: Ressources
/ Addons
/ PostgreSQL
/ Go to dashboard
/ BACKUPS
Télécharger la dernière archive non comrompue.
Si le stockage s3 est à restaurer.
Récupérer la dernière archive sur github (archivé tous les lundis matin):
- Accéder à la tâche github action qui archive les objets S3 : https://github.com/MTES-MCT/apilos/actions/workflows/s3_backup.yml
- Accéder à la dernière execution de la github action dont le contenu n'est pas comrompu
- Télécharger l'artefact s3_production
FIXME : qu'est-ce qu'est Scalingo
- Rendez-vous sur dashboard.scalingo.com
- Cliquer sur créer une application
- Créer une application avec le nom de votre choix, ex: "apilos-production"
- Choisir le déployement
Scalingo git server
- Invitez vos collaborateurs sur le projet nouvellement créé
Settings
/Collaborators
Une fois les invitations acceptées, vous serez en capacité de transférer la propriété du projet, ceci transfert aussi la facturation
A partir de l'application sur Scalingo
- Accéder à la gestion des Addons
Ressources
/Addons
/Add an addon
- Choisir PostgreSQL
- Choisir un plan (éviter le plan gratuit)
- Clicker sur
Provision Addons
Nécessaire pour le pluggin explorer de l'application
- Accéder à la gestion des utilisateurs de la base de données
Ressources
/Addons
/PostgreSQL
/Go to dashboard
/USERS
- Créer un utilisateur en lecture seule sur la base de données
- Garder les identifiants, ils vous serviront pour configurer les variables d'environnement
- récupérer le DSN
SCALINGO_POSTGRESQL_URL
dans les variables d'environnement de votre nouvelle application - Créer un tunnel ssh sur le réseau de votre application Scalingo (doc https://doc.scalingo.com/platform/databases/access), Astuce : il faudra modifier l'URL et le port de la variable d'environnement
SCALINGO_POSTGRESQL_URL
en local avec les données fourni par le tunnel ssh - Restaurer la base de données avec la commande
pg_restore
, ex: pg_restore -d "${DB_URL}" --clean --no-acl --no-owner --no-privileges <dump_file.pgsql> - Conseil, vérifier la présence des données sur la nouvelle base de données grâce à un client psql
FIXME : stockage s3, pourquoi faire
Accéder au fournisseur de stockage s3 (Scaleway)
- Créer un bucket
Stockage
/Object Storage
/Créer un bucket
- Nommer le bucket
- Choisir un lieu de stockage
- Sélectionner la visibilité privé
- Activé le versionnage du bucket
- Dézipper l'archive
- Configurer un client aws s3 locallement pour accéder au bucket nouvellement créé (doc scaleway: https://www.scaleway.com/en/docs/storage/object/api-cli/object-storage-aws-cli/)
- Copier le contenu de l'archive dans le bucket
- Accéder à la gestion des Addons
Ressources
/Addons
/Add an addon
- Choisir Redis
- Choisir un plan (éviter le plan gratuit)
- Clicker sur
Provision Addons
- Prenez le contenu de fichier .env.template
- Adapter les valeurs de chaque variable d'environnement pour l'environnement souhaité
Suivre la procédure de scalingo : https://doc.scalingo.com/platform/deployment/deploy-with-git
Sur votre fournisseur de DNS (ex: alwaysdata)
- Ajouter le CName vers votre application Scalingo selon la documentation (https://doc.scalingo.com/platform/app/domain#configure-your-domain-name)
A partir de l'application sur Scalingo
- Accéder aux paramètres réseau de l'application
Settings
/Domains / SSL
/Add
- Ajouter l'URL de l'application
- Modifier la configuration SSL dans
Settings
/Routing
- Activé l'option
Force HTTPS
- Modifier la variable d'environnement
ALLOWED_HOSTS
pour ajouter l'url de l'application
La WebApp APiLos est déployée 2 fois, 1 dépendante du SIAP et 1 indépendante, cf. Architecture APiLos
Il sera donc peut-être nécessaire d'appliquer la procédure ci-dessus 2 fois excepté pour les briques logiciel qui sont partagées:
- Base de données PostgreSQL
- Stockage Object S3
- La variable d'environnement
ENVIRONMENT