I have combined this project and it is now usable for development or on the production server.
The project is built more for development. Global Docker containers are used to intercept emails, but Let's Encrypt is not used. Each website itself has its own development container.
On the production system everything is usually reversed. This means you don’t want every dashboard available online. You need a real mail server and so on.
If you connect other instances with same volumes, for example a global read only SSH key or a Composer cache directory, other users can have access to private content. If you really need it, it is safer to store it in your own instance.
Always think about what you are doing.
Follow the guide:
- An Ubuntu desktop is quite sufficient
- Install Docker
- Configure docker global
- Optional: Configure database
Follow the guide:
- Production server
- Install Docker
- Configure docker global
- Configure database
- User ssh server
- Mail server
Some docker container for websites:
- Cyb10101/php-dev: Github
- cyb10101/php-dev: Dockerhub
- webdevops/php-apache-dev
- webdevops/php-nginx-dev
For a cool forwarding of the domains by means of local DNS:
Creating database dump:
./start.sh exec global-db sh -c 'exec mysqldump --all-databases -uroot -p"${MARIADB_ROOT_PASSWORD}"' > all-databases.sql
Restoring data from dump files:
./start.sh exec -i global-db sh -c 'exec mysql -uroot -p"${MARIADB_ROOT_PASSWORD}"' < all-databases.sql
Upgrade Database from 10.x:
./start.sh down && ./start.sh up
./start.sh exec global-db sh -c 'exec mariadb-upgrade -uroot -p"${MARIADB_ROOT_PASSWORD}"'