Skip to content

Latest commit

 

History

History
123 lines (106 loc) · 7.64 KB

TODO.md

File metadata and controls

123 lines (106 loc) · 7.64 KB

TODO List

For release 3.4 (final)

Know Bugs

  • When restore a backup and change project_name or/and project_domain the script fails: - If the main domain detected is a root-domain like mydomain.com the "search and replace" will replace https://www.mydomain.com by https://www.test.mydomain.com - If decide to generate new certificate on root-domain, it fails to generate nginx config
  • LetsEncrypt: when delete a certificate, nginx config fails.
  • MySQL: delete user fails if was created different than "USER CREATE 'user'@'localhost'; - Maybe should save user data on /etc/brolit/domain_conf.json
  • Cloudflare: if migrate a site with certificates generated by python3-certbot-cloudflare, the certbot will fail.
  • Cloudflare: if proxy is enable on subdomain, change IP on record will fail.
  • Nginx+WP: if website is configured with root domain like: DOMAIN.com infinite redirects will happen. So we need to check that before create nginx server configuration.
  • Nginx-LetsEncrypt: regenerate nginx server configuration projects fails after running certbot.
  • Notifications: Email HTML breaks sometimes.

Need improvements

  • Core: need to check if select domain is a root domain or www domain, and ask if the user want to create a redirection.
  • Cloudflare-Certbot: Change proxy mode with Cloudflare API when create a certificate with Cloudflare. Also, if you use www, it should ask you if you want to use the root domain too.
  • Nginx-LetsEncrypt: When copy or generate a new nginx server configuration need to check certificates.
  • LetsEncrypt: need a better way to re-install a certificate after a website migration.
  • Project: on project delete, if the script can't find the user, maybe it will be better list all mysql users with database permision (before database deletion).
  • Backups: When restore or create a new project and the db_user already exists, we need to ask what todo (new user or continue?).

Need more testing

  • Borg support.
  • Core: PHP composer support (installer).
  • Core: Generate project config file (/etc/brolit/domain_conf.json).
  • Postgres: Better postgres support. On "DATABASE MANAGEMENT" Menu, add Database Engine selection.

In Progress

  • Core: Docker support: backup and restore databases.
  • Core: Flags should receive a json file to deploy or restore a new project.
  • Core: On project creation/restore need to ask first the project stage, then project domain. If project stage != prod and subdomains is not containing the stage, need to suggest one. Example: test.landing.gauchocode.net OK Example 2: landing.gauchocode.net X (OK only if prod).
  • Restore-database: granting privileges to user fails, database_name is empty.
  • PHP: At BROLIT init, if php is installed, check default version. https://stackoverflow.com/questions/42619312/switch-php-versions-on-commandline-ubuntu-16-04

For release 3.5

  • Core: Resolve small "TODOs" comments.
  • Core: Main menu should not show options that are disabled on .brolit_conf.json
  • Core: Add borg & borgmatic support.
  • Brolit-ui: Integration without brolit_lite.sh
  • Notifications: Email notification after install a new project (with credentials info).
  • Core: Implementation of brolit_project.json (intall, copy and restore).
  • Core: Create warning if multiple WP installation found on backup to restore.
  • Restore: Refactor function restore_config_files_from_dropbox.
  • Nginx: Multidomain support for nginx.
  • MySQL: Rename database (with and without WP).
  • PHP: php_reconfigure maybe PHP config files need to have specific version template.
  • Core: Create a way to check if nginx, php, and mysql are configured with the script recommendations.
  • Core: Add support to create projects with a database on different server. https://www.digitalocean.com/community/tutorials/automating-the-deployment-of-a-scalable-wordpress-site https://spinupwp.com/scaling-wordpress-dedicated-database-server/
  • Core: maybe with could ask for database user nomenclature. Today is "PROJECTNAME_user" and it could be "PROJECTNAME_PROJECTSTATE_user".
  • Backups: Implement on restore_from_backup easy way to restore all sites.
  • Scheduled options: backups, malware scans, image optimizations and wp actions (core and plugins updates, checksum and wp re-installation).
  • Refactor of RESTORE_FROM_SOURCE and complete server config restore.
  • Nginx: New option to put website on maintenance (maybe rename index.html/php and create a new HTML).
  • LetsEncrypt: Add more options of certificates creation (certonly and return the path).
  • Wordpress: Rollback plugins and core updates (wpcli_plugin_version_rollback).
  • SFTP: option to create SFTP user when create a new project.
  • SFTP: Option to create a user jail on sftp_create_user. Important:https://www.electricmonk.nl/log/2015/07/13/ssh-chrootdirectory-sftponly-not-working-fixed/

For release 3.6

  • Core: Add react-project support.
  • Core: Extend ufw support.
  • Core: Extend fail2ban support.
  • Core: Git deployment support.
  • Core: Prevent execute the script more than once at a time.
  • Core: More performance improvements.
  • Core: Refactor: croned tasks. Maybe should run the runner with flags.
  • Core: Add an option to backup/restore an entired server.
  • Core: IPv6 support for nginx, certbot and cloudflare helpers. https://geekflare.com/es/enable-ipv6-nginx-apache/
  • WordPress: Fallback for replace strings on wp database (if wp-cli fails, use old script version).
  • Installers: Refactor of WORDPRESS_INSTALLER - COPY_FROM_PROJECT The idea is that you could create/copy/delete/update different kind of projects (WP, Laravel, React, Composer, Empty) Maybe add this for Laravel: https://gitlab.com/gauchocode/laravel-boilerplate/-/tree/master
  • Installers: COPY_FROM_PROJECT option to exclude uploads directory rsync -ax --exclude [relative path to directory to exclude] /path/from /path/to
  • Server Optimization: Complete the pdf optimization process.

For release 3.7

For release 4.0