403Webshell
Server IP : 104.129.129.72  /  Your IP : 216.73.216.229
Web Server : LiteSpeed
System : Linux 123answers 5.15.0-143-generic #153-Ubuntu SMP Fri Jun 13 19:10:45 UTC 2025 x86_64
User : answe8064 ( 1002)
PHP Version : 8.2.28
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /opt/installer/apps/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/installer/apps/passbolt-3.0.1-offirepo
#!/bin/bash

if [ -f "include/startup.sh" ]; then
    . include/startup.sh
elif [ -f "../include/startup.sh" ]; then
    . ../include/startup.sh
fi

rootDir=$(rootDir)

echo "Installing dependencies" | log
packages=(apt-transport-https ca-certificates gnupg-agent software-properties-common docker-compose docker.io)
installPackage "${packages[@]}" | log
waitOrStop 0 "Failed apt install: ${packages[@]}"

ubuntu_version=$(lsb_release -rs)
containerName="passbolt_passbolt_1"

echo "Downloading passbolt from Git" | log
if [[ "$ubuntu_version" == "24.04" ]]; then
	rm /usr/bin/docker-compose 
	curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
	chmod +x /usr/bin/docker-compose
	systemctl daemon-reload 
	systemctl restart docker.service
	systemctl restart docker.socket
	curlDownload https://github.com/passbolt/passbolt_docker/archive/refs/tags/4.0.0.tar.gz
	waitOrStop 0 "Failed to download PassBolt"
else
	curlDownload https://github.com/passbolt/passbolt_docker/archive/refs/tags/v3.0.1.tar.gz
	waitOrStop 0 "Failed to download PassBolt"
fi

echo "Extracting PassBolt" | log
if [[ "$ubuntu_version" == "24.04" ]]; then
	tar -xzvf 4.0.0.tar.gz
	mv passbolt_docker-4.0.0/ passbolt/
	mv passbolt/ /opt/
	rm -rf 4.0.0.tar.gz
	cd /opt/passbolt/
	sed -i "s/passbolt.local/${CWM_DOMAIN}/g" /opt/passbolt/dev/env/passbolt.env
	sed -i "s/P4ssb0lt/${ADMINPASSWORD}/g" /opt/passbolt/dev/env/passbolt.env
	sed -i "s/P4ssb0lt/${ADMINPASSWORD}/g" /opt/passbolt/dev/env/mysql.env
	sed -i "s/test/${ADMINPASSWORD}/g" /opt/passbolt/dev/env/mysql.env
	mv /opt/passbolt/conf/passbolt.conf /opt/passbolt/conf/passbolt.conf.bk
	mv /opt/passbolt/docker-compose.yml /opt/passbolt/docker-compose.yml.bk
	cp $rootDir/tweaks/extras/passbolt/passbolt.conf /opt/passbolt/conf/
	cp $rootDir/tweaks/extras/passbolt/docker-compose.yml /opt/passbolt/
	sed -i 's/image: mariadb:10.3/image: mariadb:10.11/' docker-compose.yml
	sed -i 's/image: passbolt\/passbolt:3.0.1-ce/image: passbolt\/passbolt:latest-ce/' docker-compose.yml
	sed -i 's/env\/mysql.env/dev\/env\/mysql.env/' docker-compose.yml
	sed -i 's/env\/passbolt.env/dev\/env\/passbolt.env/' docker-compose.yml
	if [[ ! -f /etc/letsencrypt/live/${CWM_DISPLAYED_ADDRESS}/cert.pem ]]; then
		sed -i 's/cert\.pem/fullchain\.pem/g' conf/passbolt.conf
		sed -i 's/cert\.pem/fullchain\.pem/g' docker-compose.yml
	fi
	sed -i "s/CWMDOMAIN/${CWM_DOMAIN}/g" /opt/passbolt/conf/passbolt.conf
	sed -i "s/CWMDOMAIN/${CWM_DOMAIN}/g" /opt/passbolt/docker-compose.yml
	docker-compose up -d
	waitOrStop 0 "Failed docker-compose"
	containerName="passbolt-passbolt-1"
else	
	tar -xzvf v3.0.1.tar.gz
	mv passbolt_docker-3.0.1/ passbolt/
	mv passbolt/ /opt/
	rm -rf v3.0.1.tar.gz
	cd /opt/passbolt/
	sed -i "s/passbolt.local/${CWM_DOMAIN}/g" /opt/passbolt/env/passbolt.env
	sed -i "s/P4ssb0lt/${ADMINPASSWORD}/g" /opt/passbolt/env/passbolt.env
	sed -i "s/P4ssb0lt/${ADMINPASSWORD}/g" /opt/passbolt/env/mysql.env
	sed -i "s/test/${ADMINPASSWORD}/g" /opt/passbolt/env/mysql.env
	mv /opt/passbolt/conf/passbolt.conf /opt/passbolt/conf/passbolt.conf.bk
	mv /opt/passbolt/docker-compose.yml /opt/passbolt/docker-compose.yml.bk
	cp $rootDir/tweaks/extras/passbolt/passbolt.conf /opt/passbolt/conf/
	cp $rootDir/tweaks/extras/passbolt/docker-compose.yml /opt/passbolt/
	sed -i "s/CWMDOMAIN/${CWM_DOMAIN}/g" /opt/passbolt/conf/passbolt.conf
	sed -i "s/CWMDOMAIN/${CWM_DOMAIN}/g" /opt/passbolt/docker-compose.yml
	docker-compose up -d
	waitOrStop 0 "Failed docker-compose"
fi

cat << EOF > /etc/systemd/system/passbolt.service
[Unit]
Description=PassBolt service
After=network-online.target nss-lookup.target
[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=passbolt
ExecStart=/usr/bin/docker-compose -f /opt/passbolt/docker-compose.yml up -d
[Install]
WantedBy=multi-user.target
EOF

echo "Starting and enabling services" | log
systemctl daemon-reload
systemctl start passbolt.service
waitOrStop 0 "Failed to start PassBolt Service"
systemctl enable passbolt.service
systemctl enable docker
sleep 30

echo "Creating PassBolt login UI" | log
touch /opt/passbolt/loginurl.txt
docker exec ${containerName} su -m -c "bin/cake passbolt register_user -u ${ADMINEMAIL} -f admin -l admin -r admin" -s /bin/sh www-data >> /opt/passbolt/loginurl.txt
sleep 5

initialurl=$(cat /opt/passbolt/loginurl.txt | grep https)

echo "adding descriptions" | log
descriptionAppend "PassBolt initial configuration link: ${initialurl}"
descriptionAppend "PassBolt UI: https://${CWM_DOMAIN}"
descriptionAppend "PassBolt configuration files: /var/www/passbolt/"

tagScript success

exit 0

Youez - 2016 - github.com/yon3zu
LinuXploit