|
| 1 | +# DbSaver |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +DbSaver est une application réalisée par <b>Bastien LOUGHIN</b>, vous permettant de réaliser des backups quotidiens automatiques (et manuels) pour vos bases de données MySQL. |
| 6 | +Vous n'avez qu'à renseigner les identifiants pour accéder aux différentes bases de données, configurer une tâche CRON... et c'est fini. |
| 7 | +Les mots de passe seront automatiquement cryptés. |
| 8 | + |
| 9 | +Vous pourrez ensuite grâce à DbSaver accéder aux différents backups de vos bases de données en vous rendant sur l'onglet <b>Backups</b>. |
| 10 | +Ceux-ci peuvent être sauvegardés en <b>local</b> ou sur le cloud d'Amazon <b>AWS S3</b>. |
| 11 | + |
| 12 | +/!\ DbSaver sauvegarde uniquement les données stockées dans les bases de données. Les fichiers (uploads clients par exemple) ne sont pas sauvegardés. |
| 13 | + |
| 14 | +# Table des matières |
| 15 | + |
| 16 | +1. [Pré-requis](#preRequis) |
| 17 | +2. [Installation](#installation) |
| 18 | +3. [Configuration de la tâche CRON](#cron) |
| 19 | +4. [Backups en local ou sur AWS S3](#backups) |
| 20 | + 1. [Local](#backupLocal) |
| 21 | + 2. [AWS S3](#backupAws) |
| 22 | +5. [Utiliser l'application](#app) |
| 23 | +6. [Licence](#licence) |
| 24 | + |
| 25 | + |
| 26 | +## Pré-requis <a name="preRequis"></a> |
| 27 | + |
| 28 | +* PHP 8 |
| 29 | +* Composer |
| 30 | +* Symfony CLI (si vous souhaitez lancer le projet en local) |
| 31 | + |
| 32 | +## Installation <a name="installation"></a> |
| 33 | + |
| 34 | +1. `git clone [email protected]:bastien70/dbsaver.git` |
| 35 | +2. `cd dbsaver` |
| 36 | +3. Configurez la variable d'environnement dans le fichier `.env` : `DATABASE_URL`. |
| 37 | +3. `composer install` (installation des dépendances) |
| 38 | +4. `php bin/console app:regenerate-app-secret` (régénération de la clé secrète permettant de crypter les mots de passes de vos bases de données) |
| 39 | +5. `php bin/console d:d:c` (création de la base de données) |
| 40 | +6. `php bin/console d:s:u -f` (migration des tables) |
| 41 | +7. `php bin/console app:make-user` (création de votre compte d'accès) |
| 42 | + |
| 43 | +## Configuration de la tâche CRON <a name="cron"></a> |
| 44 | + |
| 45 | +Configurer une tâche CRON vous servira à lancer automatiquement et à la fréquence désirée, un backup de toutes vos bases de données. |
| 46 | + |
| 47 | +Le fichier responsable de lancer la commande se trouve sur `[projet]/src/Command/BackupCommand.php` |
| 48 | + |
| 49 | +La commande à effectuer pour la lancer est la suivante : `php bin/console app:backup` |
| 50 | + |
| 51 | +Initialisez une tâche CRON sur votre serveur ou PC : |
| 52 | + |
| 53 | +`[chemin vers php] [chemin vers la racine du projet]/bin/console app:backup` |
| 54 | + |
| 55 | +## Backups en local ou sur AWS S3 <a name="backups"></a> |
| 56 | + |
| 57 | +### Local <a name="backupLocal"></a> |
| 58 | + |
| 59 | +L'application est configurée pour sauvegarder les backups en local. Si vous venez d'installer l'application, vous n'avez rien à faire. |
| 60 | +Sinon, voici les changements à effectuer : |
| 61 | + |
| 62 | +Ouvrez le fichier `[projet]/config/packages/vich_uploader.yaml`. |
| 63 | + |
| 64 | +Remplacez le contenu par : |
| 65 | + |
| 66 | +```yaml |
| 67 | +### UTILISEZ CETTE CONFIGURATION SI VOUS SOUHAITEZ STOCKER LES FICHIERS EN LOCAL ### |
| 68 | +vich_uploader: |
| 69 | + db_driver: orm |
| 70 | + mappings: |
| 71 | + backups: |
| 72 | + uri_prefix: /files/backups |
| 73 | + upload_destination: '%kernel.project_dir%/public/files/backups' |
| 74 | + |
| 75 | + |
| 76 | +### UTILISEZ CETTE CONFIGURATION SI VOUS SOUHAITEZ STOCKER LES FICHIERS SUR LE CLOUD AWS S3 |
| 77 | +#vich_uploader: |
| 78 | +# db_driver: orm |
| 79 | +# storage: gaufrette |
| 80 | +# mappings: |
| 81 | +# backups: |
| 82 | +# uri_prefix: '%uploads_base_url%' |
| 83 | +# upload_destination: backup_fs |
| 84 | +``` |
| 85 | + |
| 86 | +Modifiez également la variable d'environnement `BACKUP_LOCAL` dans le fichier `.env` comme ceci : |
| 87 | +`BACKUP_LOCAL=1` |
| 88 | + |
| 89 | +### AWS S3 <a name="backupAws"></a> |
| 90 | + |
| 91 | +Modifiez dans le fichier `.env` les variables d'environnement suivantes pour les faire correspondre à ceux renseignés par AWS S3. |
| 92 | + |
| 93 | +``` |
| 94 | +###> AWS_S3 ### |
| 95 | +AWS_S3_ACCESS_ID="your aws_s3 access id" |
| 96 | +AWS_S3_ACCESS_SECRET="your aws_s3 access secret" |
| 97 | +AWS_S3_BUCKET_NAME="your aws_s3 bucket name" |
| 98 | +AWS_S3_REGION="eu-west-3" |
| 99 | +###< AWS S3 ### |
| 100 | +``` |
| 101 | + |
| 102 | +Modifiez également la variable `BACKUP_LOCAL` comme ceci : |
| 103 | +`BACKUP_LOCAL=0` |
| 104 | + |
| 105 | +Ouvrez le fichier `[projet]/config/packages/vich_uploader.yaml`. |
| 106 | + |
| 107 | +Remplacez le contenu par : |
| 108 | + |
| 109 | +```yaml |
| 110 | +### UTILISEZ CETTE CONFIGURATION SI VOUS SOUHAITEZ STOCKER LES FICHIERS EN LOCAL ### |
| 111 | +#vich_uploader: |
| 112 | +# db_driver: orm |
| 113 | +# mappings: |
| 114 | +# backups: |
| 115 | +# uri_prefix: /files/backups |
| 116 | +# upload_destination: '%kernel.project_dir%/public/files/backups' |
| 117 | + |
| 118 | + |
| 119 | +### UTILISEZ CETTE CONFIGURATION SI VOUS SOUHAITEZ STOCKER LES FICHIERS SUR LE CLOUD AWS S3 |
| 120 | +vich_uploader: |
| 121 | + db_driver: orm |
| 122 | + storage: gaufrette |
| 123 | + mappings: |
| 124 | + backups: |
| 125 | + uri_prefix: '%uploads_base_url%' |
| 126 | + upload_destination: backup_fs |
| 127 | +``` |
| 128 | +
|
| 129 | +## Utiliser l'application <a name="app"></a> |
| 130 | +
|
| 131 | +Après avoir déployé l'application sur votre serveur (ou l'avoir lancée en local), accédez à la page de connexion : |
| 132 | +Pour l'exemple, le nom de domaine rattaché à l'application sera `127.0.0.1:8000`. |
| 133 | + |
| 134 | +Lancez l'application : `https://127.0.0.1:8000` |
| 135 | +Vous serez invité à vous connecter. Entrez les identifiants de votre compte (que vous avez créé avec la commande `php bin/console app:make-user`) |
| 136 | + |
| 137 | + |
| 138 | + |
| 139 | +Vous serez redirigés vers `https://127.0.0.1:8000/dbsaver` |
| 140 | + |
| 141 | + |
| 142 | + |
| 143 | +Pour créer une base de données, cliquez sur l'onglet `Bases de données`, puis sur le bouton `Ajouter une base de données`. |
| 144 | +Remplissez les informations de votre base de données et validez. |
| 145 | + |
| 146 | + |
| 147 | + |
| 148 | +Vous aurez dès lors, pour chaque base de données ajoutée, la possibilité de consulter les backups, d'éditer les informations de la base de données, |
| 149 | +supprimer la base de données de l'application (ainsi que ses backups),ou lancer un backup manuel. |
| 150 | + |
| 151 | + |
| 152 | + |
| 153 | +Selon la fréquence de votre tâche CRON que vous avez configurée, un backup automatique sera effectué. |
| 154 | + |
| 155 | +Pour accéder aux backups de vos bases, cliquez sur l'onglet `Backups`. |
| 156 | + |
| 157 | + |
| 158 | + |
| 159 | +Vous aurez la possibilité de supprimer ou télécharger un Backup. |
| 160 | + |
| 161 | +## Licence <a name="licence"></a> |
| 162 | + |
| 163 | +Cette application est protégée par une licence MIT : [LICENCE](LICENSE) |
0 commit comments