Playbook for fully automated deployment of one or more web servers (Nginx + Apache)
-
Install Ansible and other required packages:
Debian:
sudo apt install ansible sshpass
-
Install the language files:
sudo install languages/en.mo /usr/share/locale/en/LC_MESSAGES/init.mo sudo install languages/ru.mo /usr/share/locale/ru/LC_MESSAGES/init.mo
-
Run init.sh and follow the instructions:
LANGUAGE=en ./init.sh
WARNING: Do not run the playbook directly from the server on which you plan to deploy!
NOTE: In case of deploying a web server with HTTPS (option 1), the certificate and key files must be on the server at the time of deployment!
- HTTP
- HTTPS
- With a pre-prepared certificate (option 1)
- With a certificate obtained from Let's Encrypt (option 2)
- With a self-signed certificate (option 3)
- Nginx (Frontend)
- Apache (Backend)
- Apache Modules
- mod_fastcgi
- mod_remoteip
- PHP-FPM
- DBMS (optional)
- MariaDB + phpMyAdmin (optional)
- MySQL + phpMyAdmin (optional)
- PostgreSQL + pgAdmin (optional) (in development)
- Knockd (optional)
- SFTP Server (optional)
- Fail2ban (optional) (in development)
- Firewall (optional)
- UFW
- Firewalld (in development)
- Hiding Nginx and Apache versions
- Blocking access to the Apache port
- Blocking access to DBMS from outside
- Blocking direct access via IP (redirect)
- Protecting Nginx from slow requests
- SSH protection with Port-Knocking (optional)
- Blocking access to phpMyAdmin via .htpasswd and .htaccess (optional)
- Adding HTTPS support
- Adding the ability to select the DBMS
- Adding support for pgAdmin
- GUI development for easier deployment
- Adding support for other OSes