feat: add non-interactive installation parameter

This commit is contained in:
AnonymousWP
2024-05-12 18:46:13 +05:30
committed by Yogesh Ojha
parent ede6717b37
commit 32a45424af
5 changed files with 76 additions and 23 deletions
+7
View File
@@ -28,3 +28,10 @@ POSTGRES_HOST=db
#
MAX_CONCURRENCY=80
MIN_CONCURRENCY=10
#
# Rengine web interface super user (for non-interactive install)
#
DJANGO_SUPERUSER_USERNAME=rengine
DJANGO_SUPERUSER_EMAIL=rengine@example.com
DJANGO_SUPERUSER_PASSWORD=Sm7IJG.IfHAFw9snSKv
+6 -1
View File
@@ -1,3 +1,4 @@
include .env
.DEFAULT_GOAL:=help
# Credits: https://github.com/sherifabdlnaby/elastdocker/
@@ -25,7 +26,11 @@ build: ## Build all services.
${COMPOSE_PREFIX_CMD} docker compose ${COMPOSE_ALL_FILES} build ${SERVICES}
username: ## Generate Username (Use only after make up).
${COMPOSE_PREFIX_CMD} docker compose ${COMPOSE_ALL_FILES} exec web python3 manage.py createsuperuser
ifeq ($(isNonInteractive), true)
${COMPOSE_PREFIX_CMD} docker-compose ${COMPOSE_ALL_FILES} exec web python3 manage.py createsuperuser --username ${DJANGO_SUPERUSER_USERNAME} --email ${DJANGO_SUPERUSER_EMAIL} --noinput
else
${COMPOSE_PREFIX_CMD} docker-compose ${COMPOSE_ALL_FILES} exec web python3 manage.py createsuperuser
endif
changepassword: ## Change password for user
+23 -4
View File
@@ -318,12 +318,27 @@ screenshot: {
git clone https://github.com/yogeshojha/rengine && cd rengine
```
1. Edit the dotenv file, **please make sure to change the password for postgresql `POSTGRES_PASSWORD`!**
1. Edit the `.env` file, **please make sure to change the password for postgresql `POSTGRES_PASSWORD`!**
```bash
nano .env
```
1. **Optional, only for non-interactive install**: In the `.env` file, **please make sure to change the super admin values!**
```bash
DJANGO_SUPERUSER_USERNAME=yourUsername
DJANGO_SUPERUSER_EMAIL=YourMail@example.com
DJANGO_SUPERUSER_PASSWORD=yourStrongPassword
```
If you need to carry out a non-interactive installation, you can setup the login, email and password of the web interface admin directly from the .env file (instead of manually setting them from prompts during the installation process). This option can be interesting for automated installation (via ansible, vagrant, etc.).
`DJANGO_SUPERUSER_USERNAME`: web interface admin username (used to login to the web interface).
`DJANGO_SUPERUSER_EMAIL`: web interface admin email.
`DJANGO_SUPERUSER_PASSWORD`: web interface admin password (used to login to the web interface).
1. In the dotenv file, you may also modify the Scaling Configurations
```bash
@@ -352,6 +367,12 @@ screenshot: {
sudo ./install.sh
```
Or for a non-interactive installation, use `-n` argument (make sure you've modified the `.env` file before launching the installation).
```bash
sudo ./install.sh -n
```
If `install.sh` does not have install permission, please change it, `chmod +x install.sh`
**reNgine can now be accessed from <https://127.0.0.1> or if you're on the VPS <https://your_vps_ip_address>**
@@ -367,13 +388,11 @@ Installation instructions can be found at [https://reNgine.wiki/install/detailed
1. Updating is as simple as running the following command:
```bash
cd rengine && sudo ./update.sh
cd rengine && sudo ./update.sh
```
If `update.sh` does not have execution permissions, please change it, `sudo chmod +x update.sh`
**NOTE:** if you're updating from 1.3.6 and you're getting a 'password authentication failed' error, consider uninstalling 1.3.6 first, then install 2.x.x as you'd normally do.
### Changelog
[Please find the latest release notes and changelog here.](https://rengine.wiki/changelog/)
+1
View File
@@ -96,6 +96,7 @@ services:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_HOST=${POSTGRES_HOST}
- DJANGO_SUPERUSER_PASSWORD=${DJANGO_SUPERUSER_PASSWORD}
# THIS IS A MUST FOR CHECKING UPDATE, EVERYTIME A COMMIT IS MERGED INTO
# MASTER, UPDATE THIS!!! MAJOR.MINOR.PATCH https://semver.org/
- RENGINE_CURRENT_VERSION='2.0.6'
+39 -18
View File
@@ -1,5 +1,15 @@
#!/bin/bash
usageFunction()
{
echo " "
tput setaf 2;
echo "Usage: $0 (-n) (-h)"
echo -e "\t-n Non-interactive installation (Optional)"
echo -e "\t-h Show usage"
exit 1
}
tput setaf 2;
cat web/art/reNgine.txt
@@ -7,22 +17,29 @@ tput setaf 1; echo "Before running this script, please make sure Docker is runni
tput setaf 2; echo "Changing the postgres username & password from .env is highly recommended."
tput setaf 4;
read -p "Are you sure, you made changes to .env file (y/n)? " answer
answer=$(echo $answer | tr '[:upper:]' '[:lower:]')
case ${answer:0:1} in
y|yes )
echo "Continuing Installation!"
;;
* )
if [ -x "$(command -v nano)" ]; then
tput setaf 2; echo "nano already installed, skipping."
else
sudo apt update && sudo apt install nano -y
tput setaf 2; echo "nano installed!!!"
fi
nano .env
;;
esac
isNonInteractive=false
while getopts nh opt; do
case $opt in
n) isNonInteractive=true ;;
h) usageFunction ;;
?) usageFunction ;;
esac
done
if [ $isNonInteractive = false ]; then
read -p "Are you sure, you made changes to .env file (y/n)? " answer
case ${answer:0:1} in
y|Y|yes|YES|Yes )
echo "Continiuing Installation!"
;;
* )
nano .env
;;
esac
else
echo "Non-interactive installation parameter set. Installation begins."
fi
echo " "
tput setaf 3;
@@ -67,6 +84,7 @@ else
tput setaf 2; echo "Docker installed!!!"
fi
echo " "
tput setaf 4;
echo "#########################################################################"
@@ -75,12 +93,13 @@ echo "#########################################################################"
if [ -x "$(command -v docker compose)" ]; then
tput setaf 2; echo "Docker Compose already installed, skipping."
else
curl -L "https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
tput setaf 2; echo "Docker Compose installed!!!"
fi
echo " "
tput setaf 4;
echo "#########################################################################"
@@ -107,6 +126,8 @@ else
exit 1
fi
echo " "
tput setaf 4;
echo "#########################################################################"
@@ -122,7 +143,7 @@ if [ "${failed}" -eq 0 ]; then
echo "#########################################################################"
echo "Creating an account"
echo "#########################################################################"
make username
make username isNonInteractive=$isNonInteractive
tput setaf 2 && printf "\n%s\n" "Thank you for installing reNgine, happy recon!!"
echo "In case you have unapplied migrations (see above in red), run 'make migrate'"