mirror of
				https://github.com/usmannasir/cyberpanel.git
				synced 2025-10-31 02:15:55 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import json
 | |
| import os.path
 | |
| import sys
 | |
| import argparse
 | |
| import requests
 | |
| 
 | |
| sys.path.append('/usr/local/CyberCP')
 | |
| os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
 | |
| 
 | |
| class UpgradeCyberPanel:
 | |
| 
 | |
|     LogURL = "https://platform.cyberpersons.com/settings/RecvData"
 | |
| 
 | |
|     def __init__(self, branch, mail, dns, ftp):
 | |
|         ipFile = "/etc/cyberpanel/machineIP"
 | |
|         f = open(ipFile)
 | |
|         ipData = f.read()
 | |
|         self.ipAddress = ipData.split('\n', 1)[0]
 | |
|         self.branch = branch
 | |
|         self.mail = mail
 | |
|         self.ftp = ftp
 | |
|         self.dns = dns
 | |
| 
 | |
|     def PostStatus(self, message):
 | |
|         finalData = json.dumps({'ipAddress': self.ipAddress, "UpgradeCyberPanelStatus": message})
 | |
| 
 | |
|         try:
 | |
|             resp = requests.post(UpgradeCyberPanel.LogURL, data=finalData, timeout=10)
 | |
|         except:
 | |
|             pass
 | |
| 
 | |
|     def RestoreOldCP(self):
 | |
| 
 | |
|         from plogical.upgrade import Upgrade
 | |
| 
 | |
|         command = 'rm -rf /usr/local/CyberCP'
 | |
|         Upgrade.executioner(command, command)
 | |
| 
 | |
|         command = 'mv /usr/local/CyberCPBak /usr/local/CyberCP'
 | |
|         Upgrade.executioner(command, command)
 | |
|         Upgrade.fixPermissions()
 | |
| 
 | |
|     def UpgardeNow(self):
 | |
| 
 | |
|         from plogical.upgrade import Upgrade
 | |
| 
 | |
|         ## If any update command fails this check make sure upgrade process does not quit
 | |
| 
 | |
|         Upgrade.FromCloud = 1
 | |
| 
 | |
|         ## Backup current CyberCP, incase of failure restore
 | |
| 
 | |
|         self.PostStatus('Backing up current installation..,5')
 | |
| 
 | |
|         command = 'cp -R /usr/local/CyberCP /usr/local/CyberCPBak'
 | |
|         Upgrade.executioner(command, command)
 | |
| 
 | |
|         if not Upgrade.executioner(command, command, 1):
 | |
|             self.PostStatus('Failed to execute %s. [404]' % (command))
 | |
| 
 | |
|         self.PostStatus('Upgrading/Downgrading to branch %s..,10' % (self.branch))
 | |
| 
 | |
|         status, message = Upgrade.downloadAndUpgrade(None, self.branch)
 | |
| 
 | |
|         if status == 0:
 | |
|             self.RestoreOldCP()
 | |
|             self.PostStatus('Failed to upgrade, error %s.[404]' % (message))
 | |
|             return 0
 | |
| 
 | |
|         self.PostStatus('CyberPanel is now on %s..,40' % (self.branch))
 | |
| 
 | |
|         ##
 | |
| 
 | |
|         self.PostStatus('Updating database..,45')
 | |
| 
 | |
|         Upgrade.mailServerMigrations()
 | |
|         Upgrade.emailMarketingMigrationsa()
 | |
|         Upgrade.dockerMigrations()
 | |
|         Upgrade.CLMigrations()
 | |
|         Upgrade.IncBackupMigrations()
 | |
|         Upgrade.applyLoginSystemMigrations()
 | |
|         Upgrade.s3BackupMigrations()
 | |
|         Upgrade.containerMigrations()
 | |
|         Upgrade.manageServiceMigrations()
 | |
| 
 | |
|         self.PostStatus('Database updated.,55')
 | |
| 
 | |
|         ## Put function here to update custom ACLs
 | |
| 
 | |
|         Upgrade.UpdateConfigOfCustomACL()
 | |
|         Upgrade.enableServices()
 | |
|         Upgrade.someDirectories()
 | |
|         Upgrade.GeneralMigrations()
 | |
| 
 | |
|         ## Upgrade version
 | |
| 
 | |
|         self.PostStatus('Fixing permissions,70')
 | |
| 
 | |
|         Upgrade.fixPermissions()
 | |
| 
 | |
|         ##
 | |
| 
 | |
|         Upgrade.upgradeVersion()
 | |
|         Upgrade.UpdateMaxSSLCons()
 | |
| 
 | |
|         command = 'systemctl restart lscpd'
 | |
|         if not Upgrade.executioner(command, command, 1):
 | |
|             self.PostStatus('Failed to execute %s. [404]' % (command))
 | |
| 
 | |
|         self.PostStatus('CyberPanel Upgraded/Downgraded to %s. [200]' % (self.branch))
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     parser = argparse.ArgumentParser(description='CyberPanel Installer')
 | |
|     parser.add_argument('--branch', help='Branch to install.')
 | |
|     parser.add_argument('--mail', help='Upgrade mail services.')
 | |
|     parser.add_argument('--dns', help='Upgrade dns services.')
 | |
|     parser.add_argument('--ftp', help='Upgrade ftp services.')
 | |
| 
 | |
|     args = parser.parse_args()
 | |
| 
 | |
|     uc = UpgradeCyberPanel(args.branch,int(args.mail),int(args.dns),int(args.ftp))
 | |
|     uc.UpgardeNow()
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main() |