File manager - Edit - /home/newsbmcs.com/public_html/static/img/logo/dockerManager.tar
Back
entrypoint.sh 0000644 00000002532 15027532464 0007325 0 ustar 00 #!/bin/bash # Environment variables for WordPress installation DB_NAME=${DB_NAME:-"wordpress"} DB_USER=${DB_USER:-"wpuser"} DB_PASSWORD=${DB_PASSWORD:-"wppassword"} WP_ADMIN_EMAIL=${WP_ADMIN_EMAIL:-"admin@example.com"} WP_ADMIN_USER=${WP_ADMIN_USER:-"admin"} WP_ADMIN_PASSWORD=${WP_ADMIN_PASSWORD:-"adminpass"} WP_URL=${WP_URL:-"docker.cyberpanel.net"} DB_Host=${DB_Host:-"mariadb:3306"} SITE_NAME=${SITE_NAME:-"CyberPanel Site"} # Install WordPress using WP CLI /usr/local/lsws/lsphp82/bin/php /usr/bin/wp core download --path=/usr/local/lsws/Example/html --allow-root # Set up WP config /usr/local/lsws/lsphp82/bin/php /usr/bin/wp core config --dbname="$DB_NAME" --dbuser="$DB_USER" --dbpass="$DB_PASSWORD" --path="/usr/local/lsws/Example/html" --dbhost="$DB_Host" --skip-check --allow-root # Install WordPress /usr/local/lsws/lsphp82/bin/php /usr/bin/wp core install --title="$SITE_NAME" --url="$WP_URL" --title="My WordPress Site" --admin_user="$WP_ADMIN_USER" --admin_password="$WP_ADMIN_PASSWORD" --admin_email="$WP_ADMIN_EMAIL" --path="/usr/local/lsws/Example/html" --skip-email --allow-root ### Install LSCache plugin /usr/local/lsws/lsphp82/bin/php /usr/bin/wp plugin install litespeed-cache --allow-root --path="/usr/local/lsws/Example/html" --activate # Start OpenLiteSpeed /usr/local/lsws/bin/lswsctrl start # Keep container running tail -f /dev/null dockerInstall.py 0000644 00000012312 15027532464 0007723 0 ustar 00 #!/usr/local/CyberCP/bin/python import os import sys import time sys.path.append('/usr/local/CyberCP') import plogical.CyberCPLogFileWriter as logging from serverStatus.serverStatusUtil import ServerStatusUtil from plogical.processUtilities import ProcessUtilities class DockerInstall: @staticmethod def submitInstallDocker(CommandCP=0): try: statusFile = open(ServerStatusUtil.lswsInstallStatusPath, 'w') logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Starting Docker Installation..\n", 1) # Check if Podman is installed if os.system("which podman > /dev/null 2>&1") == 0: # logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Podman detected. Removing Podman before installing Docker...\n", 1) # # Stop and remove all Podman containers (NEW LINES) ServerStatusUtil.executioner("podman stop -a", statusFile) # ServerStatusUtil.executioner("podman rm -a", statusFile) # # Remove Podman completely if ProcessUtilities.decideDistro() in [ProcessUtilities.cent8, ProcessUtilities.centos]: # ServerStatusUtil.executioner("dnf remove -y podman", statusFile) # else: # Debian-based ServerStatusUtil.executioner("DEBIAN_FRONTEND=noninteractive apt-get remove -y podman", statusFile) # # Remove leftover Podman directories (NEW LINES) ServerStatusUtil.executioner("rm -rf /var/lib/containers", statusFile) # # Remove Podman socket if it exists (NEW LINES) if os.path.exists("/run/podman/podman.sock"): # os.remove("/run/podman/podman.sock") # logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Removed Podman socket.\n", 1) # logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Podman completely removed.\n", 1) # # Check and unset DOCKER_HOST if set (NEW LINES) if "DOCKER_HOST" in os.environ: # ServerStatusUtil.executioner("unset DOCKER_HOST", statusFile) # logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Unset DOCKER_HOST to avoid conflicts.\n", 1) # # Remove systemd override if it forces Podman for Docker (NEW LINES) if os.path.exists("/etc/systemd/system/docker.service.d/override.conf"): # os.remove("/etc/systemd/system/docker.service.d/override.conf") # logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Removed systemd override forcing Podman.\n", 1) # # Install Docker based on OS version if ProcessUtilities.decideDistro() == ProcessUtilities.cent8: if os.path.exists(ProcessUtilities.debugPath): logging.CyberCPLogFileWriter.writeToFile(f'Docker installation started for cent8/9') commands = [ 'sudo yum install -y yum-utils', 'yum install yum-utils -y', 'yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo', 'sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing -y' ] elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: commands = ['sudo yum install -y docker'] else: commands = ['DEBIAN_FRONTEND=noninteractive apt-get install -y docker.io docker-compose'] for command in commands: if CommandCP: ProcessUtilities.executioner(command, 'root', True) else: if not ServerStatusUtil.executioner(command, statusFile): logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Failed to install Docker. [404]\n", 1) return 0 # Enable and start Docker service ProcessUtilities.executioner('sudo systemctl enable docker', 'root', True) ProcessUtilities.executioner('sudo systemctl start docker', 'root', True) logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Docker successfully installed. [200]\n", 1) time.sleep(2) except BaseException as msg: logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, str(msg) + ' [404].', 1) def main(): DockerInstall.submitInstallDocker() if __name__ == "__main__": main() views.py 0000644 00000032223 15027532464 0006265 0 ustar 00 # -*- coding: utf-8 -*- from django.shortcuts import redirect, HttpResponse from loginSystem.models import Administrator from loginSystem.views import loadLoginPage from plogical.DockerSites import Docker_Sites from plogical.httpProc import httpProc from .container import ContainerManager from .decorators import preDockerRun from plogical.acl import ACLManager import json # Create your views here. # This function checks if user has admin permissions def dockerPermission(request, userID, context): currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] != 1: if request.method == "POST": return ACLManager.loadErrorJson() else: return ACLManager.loadError() else: return 0 @preDockerRun def loadDockerHome(request): userID = request.session['userID'] admin = Administrator.objects.get(pk=userID) template = 'dockerManager/index.html' proc = httpProc(request, template, {"type": admin.type}, 'admin') return proc.render() def installDocker(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager(userID, 'submitInstallDocker') cm.start() data_ret = {'status': 1, 'error_message': 'None'} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException as msg: data_ret = {'status': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data) @preDockerRun def installImage(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.submitInstallImage(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def viewContainer(request, name): try: if not request.GET._mutable: request.GET._mutable = True request.GET['name'] = name userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager(name) coreResult = cm.loadContainerHome(request, userID) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def getTags(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.getTags(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def delContainer(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.submitContainerDeletion(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def recreateContainer(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.recreateContainer(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def runContainer(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() return cm.createContainer(request, userID) except KeyError: return redirect(loadLoginPage) @preDockerRun def listContainers(request): try: userID = request.session['userID'] cm = ContainerManager() return cm.listContainers(request, userID) except KeyError: return redirect(loadLoginPage) @preDockerRun def getContainerLogs(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.getContainerLogs(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def submitContainerCreation(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.submitContainerCreation(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def getContainerList(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() return cm.getContainerList(userID, json.loads(request.body)) except KeyError: return redirect(loadLoginPage) @preDockerRun def doContainerAction(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.doContainerAction(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def getContainerStatus(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.getContainerStatus(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def exportContainer(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.exportContainer(request, userID) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def saveContainerSettings(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.saveContainerSettings(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def getContainerTop(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.getContainerTop(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def assignContainer(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.assignContainer(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def searchImage(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.searchImage(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def images(request): try: userID = request.session['userID'] cm = ContainerManager() coreResult = cm.images(request, userID) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def manageImages(request): try: userID = request.session['userID'] cm = ContainerManager() coreResult = cm.manageImages(request, userID) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def getImageHistory(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.getImageHistory(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def removeImage(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.removeImage(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def getDockersiteList(request): import json try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.getDockersiteList(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def getContainerAppinfo(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.getContainerAppinfo(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def getContainerApplog(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.getContainerApplog(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def recreateappcontainer(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.recreateappcontainer(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def RestartContainerAPP(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.RestartContainerAPP(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) @preDockerRun def StopContainerAPP(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() cm = ContainerManager() coreResult = cm.StopContainerAPP(userID, json.loads(request.body)) return coreResult except KeyError: return redirect(loadLoginPage) decorators.py 0000644 00000004426 15027532464 0007301 0 ustar 00 from django.shortcuts import render,redirect from loginSystem.models import Administrator import os import docker import json from django.http import HttpResponse from loginSystem.views import loadLoginPage from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging from plogical.acl import ACLManager def preDockerRun(function): def wrap(request, *args, **kwargs): try: userID = request.session['userID'] except KeyError: return redirect(loadLoginPage) currentACL = ACLManager.loadedACL(userID) if request.method == "POST": isPost = True else: isPost = False # check if docker is installed dockerInstallPath = '/usr/bin/docker' if not os.path.exists(dockerInstallPath): if isPost: data_ret = {'status': 0, 'error_message': 'Docker not installed'} json_data = json.dumps(data_ret) return HttpResponse(json_data) else: from plogical.httpProc import httpProc proc = httpProc(request, 'dockerManager/install.html', {'status':currentACL['admin'], 'conErr':0}, 'admin') return proc.render() #return render(request, 'dockerManager/install.html', {'status':currentACL['admin'], 'conErr':0}) # Check if docker is running and we are able to connect try: client = docker.from_env() result = client.ping() except BaseException as msg: logging.writeToFile(str(msg)) if isPost: data_ret = {'status': 0, 'error_message': 'Docker daemon not running or not responsive'} json_data = json.dumps(data_ret) return HttpResponse(json_data) else: from plogical.httpProc import httpProc proc = httpProc(request, 'dockerManager/install.html', {'status': currentACL['admin'], 'conErr': 0}, 'admin') return proc.render() #return render(request, 'dockerManager/install.html', {'status':currentACL['admin'], 'conErr':1}) return function(request, *args, **kwargs) return wrap __pycache__/__init__.cpython-310.pyc 0000644 00000000211 15027532464 0013216 0 ustar 00 o �h � @ s d S )N� r r r �,/usr/local/CyberCP/dockerManager/__init__.py�<module> s __pycache__/dockerInstall.cpython-310.pyc 0000644 00000005544 15027532464 0014273 0 ustar 00 o �h� � @ st d dl Z d dlZd dlZej�d� d dlmZ d dlm Z d dl mZ G dd� d�Zdd� Z ed kr8e � dS dS ) � Nz/usr/local/CyberCP)�ServerStatusUtil)�ProcessUtilitiesc @ s e Zd Zeddd��ZdS )� DockerInstallr c C s. z�t tjd�}tj�tjdd� t�d�dkrftj�tjdd� t�d|� t�d|� t � � t jt jfv r=t�d |� nt�d |� t�d|� tj �d�r]t�d� tj�tjd d� tj�tjdd� dtjv rzt�d|� tj�tjdd� tj �d�r�t�d� tj�tjdd� t � � t jkr�tj �t j�r�tj�d� g d�}nt � � t jkr�dg}ndg}|D ]}| r�t �|dd� q�t�||�s�tj�tjdd� W dS q�t �ddd� t �ddd� tj�tjdd� t�d� W d S t�y } ztj�tjt|�d d� W Y d }~d S d }~ww ) N�wzStarting Docker Installation.. � zwhich podman > /dev/null 2>&1r z=Podman detected. Removing Podman before installing Docker... zpodman stop -azpodman rm -azdnf remove -y podmanz7DEBIAN_FRONTEND=noninteractive apt-get remove -y podmanzrm -rf /var/lib/containersz/run/podman/podman.sockzRemoved Podman socket. zPodman completely removed. �DOCKER_HOSTzunset DOCKER_HOSTz&Unset DOCKER_HOST to avoid conflicts. z2/etc/systemd/system/docker.service.d/override.confz)Removed systemd override forcing Podman. z'Docker installation started for cent8/9)zsudo yum install -y yum-utilszyum install yum-utils -yzUyum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoz^sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing -yzsudo yum install -y dockerzJDEBIAN_FRONTEND=noninteractive apt-get install -y docker.io docker-compose�rootTz Failed to install Docker. [404] zsudo systemctl enable dockerzsudo systemctl start dockerz%Docker successfully installed. [200] � z [404].)�openr �lswsInstallStatusPath�logging�CyberCPLogFileWriter�statusWriter�os�system�executionerr �decideDistro�cent8�centos�path�exists�remove�environ� debugPath�writeToFile�time�sleep� BaseException�str)� CommandCP� statusFile�commands�command�msg� r$ �1/usr/local/CyberCP/dockerManager/dockerInstall.py�submitInstallDocker sv � � � � � � �� �(��z!DockerInstall.submitInstallDockerN)r )�__name__� __module__�__qualname__�staticmethodr&