mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-10-26 07:46:35 +01:00
203 lines
7.7 KiB
Python
203 lines
7.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
|
|
from django.db import models
|
|
from packages.models import Package
|
|
from loginSystem.models import Administrator
|
|
from datetime import datetime
|
|
|
|
# Create your models here.
|
|
|
|
class Websites(models.Model):
|
|
admin = models.ForeignKey(Administrator, on_delete=models.PROTECT)
|
|
package = models.ForeignKey(Package, on_delete=models.PROTECT)
|
|
domain = models.CharField(max_length=255,unique=True)
|
|
adminEmail = models.CharField(max_length=255)
|
|
phpSelection = models.CharField(max_length=10)
|
|
ssl = models.IntegerField()
|
|
state = models.IntegerField(default=1)
|
|
externalApp = models.CharField(max_length=30, default=None)
|
|
config = models.TextField(default='')
|
|
BackupLock = models.IntegerField(default=0)
|
|
|
|
|
|
class ChildDomains(models.Model):
|
|
master = models.ForeignKey(Websites,on_delete=models.CASCADE)
|
|
domain = models.CharField(max_length=50, unique=True)
|
|
path = models.CharField(max_length=200,default=None)
|
|
ssl = models.IntegerField()
|
|
phpSelection = models.CharField(max_length=10,default=None)
|
|
alais = models.IntegerField(default=0)
|
|
|
|
|
|
class Backups(models.Model):
|
|
website = models.ForeignKey(Websites,on_delete=models.CASCADE)
|
|
fileName = models.CharField(max_length=200)
|
|
date = models.CharField(max_length=50)
|
|
size = models.CharField(max_length=50)
|
|
status = models.IntegerField(default=0)
|
|
|
|
class dest(models.Model):
|
|
destLoc = models.CharField(unique=True,max_length=18)
|
|
|
|
class backupSchedules(models.Model):
|
|
dest = models.ForeignKey(dest, on_delete=models.CASCADE)
|
|
frequency = models.CharField(max_length=15)
|
|
|
|
class aliasDomains(models.Model):
|
|
master = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
|
aliasDomain = models.CharField(max_length=75)
|
|
|
|
class GitLogs(models.Model):
|
|
owner = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
|
date = models.DateTimeField(default=datetime.now, blank=True)
|
|
type = models.CharField(max_length=5)
|
|
message = models.TextField(max_length=65532)
|
|
|
|
class BackupJob(models.Model):
|
|
logFile = models.CharField(max_length=1000)
|
|
ipAddress = models.CharField(max_length=50)
|
|
port = models.CharField(max_length=15)
|
|
jobSuccessSites = models.IntegerField()
|
|
jobFailedSites = models.IntegerField()
|
|
location = models.IntegerField()
|
|
|
|
class BackupJobLogs(models.Model):
|
|
owner = models.ForeignKey(BackupJob, on_delete=models.CASCADE)
|
|
status = models.IntegerField()
|
|
message = models.TextField()
|
|
|
|
class GDrive(models.Model):
|
|
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
|
name = models.CharField(max_length=50, unique=True)
|
|
auth = models.TextField(max_length=65532, default='Inactive')
|
|
runTime = models.CharField(max_length=20, default='NEVER')
|
|
|
|
class GDriveSites(models.Model):
|
|
owner = models.ForeignKey(GDrive, on_delete=models.CASCADE)
|
|
domain = models.CharField(max_length=200)
|
|
|
|
class GDriveJobLogs(models.Model):
|
|
owner = models.ForeignKey(GDrive, on_delete=models.CASCADE)
|
|
status = models.IntegerField()
|
|
message = models.TextField()
|
|
|
|
|
|
### Normal backup models
|
|
|
|
class NormalBackupDests(models.Model):
|
|
name = models.CharField(max_length=25)
|
|
config = models.TextField()
|
|
|
|
class NormalBackupJobs(models.Model):
|
|
owner = models.ForeignKey(NormalBackupDests, on_delete=models.CASCADE)
|
|
name = models.CharField(max_length=25)
|
|
config = models.TextField()
|
|
|
|
class NormalBackupSites(models.Model):
|
|
owner = models.ForeignKey(NormalBackupJobs, on_delete=models.CASCADE)
|
|
domain = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
|
|
|
class NormalBackupJobLogs(models.Model):
|
|
owner = models.ForeignKey(NormalBackupJobs, on_delete=models.CASCADE)
|
|
status = models.IntegerField()
|
|
message = models.TextField()
|
|
|
|
class wpplugins(models.Model):
|
|
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
|
Name = models.CharField(max_length=255, default='')
|
|
config = models.TextField()
|
|
|
|
class WPSites(models.Model):
|
|
owner = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
|
title = models.CharField(max_length=255, default='')
|
|
path = models.CharField(max_length=255, default='')
|
|
FinalURL = models.CharField(max_length=255, default='')
|
|
AutoUpdates = models.CharField(max_length=100, default='Disabled')
|
|
PluginUpdates = models.CharField(max_length=15, default='Disabled')
|
|
ThemeUpdates = models.CharField(max_length=15, default='Disabled')
|
|
date = models.DateTimeField(default=datetime.now)
|
|
WPLockState = models.IntegerField(default=1)
|
|
|
|
class WPStaging(models.Model):
|
|
owner = models.ForeignKey(WPSites, on_delete=models.CASCADE)
|
|
wpsite = models.ForeignKey(WPSites, on_delete=models.CASCADE, related_name='actual_wpsite')
|
|
|
|
class WPSitesBackup(models.Model):
|
|
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
|
WPSiteID = models.IntegerField(default=-1)
|
|
WebsiteID = models.IntegerField(default=-1)
|
|
config = models.TextField()
|
|
|
|
class RemoteBackupConfig(models.Model):
|
|
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
|
configtype = models.CharField(max_length=255, default='')
|
|
config = models.TextField()
|
|
|
|
class RemoteBackupSchedule(models.Model):
|
|
RemoteBackupConfig = models.ForeignKey(RemoteBackupConfig, on_delete=models.CASCADE)
|
|
Name = models.CharField(max_length=255, default='')
|
|
timeintervel = models.CharField(max_length=200)
|
|
fileretention = models.CharField(max_length=200)
|
|
lastrun = models.CharField(max_length=200)
|
|
config = models.TextField()
|
|
|
|
class RemoteBackupsites(models.Model):
|
|
owner = models.ForeignKey(RemoteBackupSchedule, on_delete=models.CASCADE)
|
|
WPsites = models.IntegerField(null=True)
|
|
database = models.IntegerField(null=True)
|
|
|
|
import time
|
|
|
|
class Backupsv2(models.Model):
|
|
website = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
|
fileName = models.CharField(max_length=255)
|
|
status = models.IntegerField(default=0)
|
|
timeStamp = models.CharField(max_length=255, default=str(time.time()))
|
|
BasePath = models.TextField(default='')
|
|
|
|
class BackupsLogsv2(models.Model):
|
|
owner = models.ForeignKey(Backupsv2, on_delete=models.CASCADE)
|
|
timeStamp = models.CharField(max_length=255, default=str(time.time()))
|
|
message = models.TextField(default='')
|
|
|
|
|
|
# Takes
|
|
# ComposePath, MySQLPath, MySQLRootPass, MySQLDBName, MySQLDBNUser, MySQLPassword, CPUsMySQL, MemoryMySQL,
|
|
# port, SitePath, CPUsSite, MemorySite, SiteName
|
|
# finalURL, blogTitle, adminUser, adminPassword, adminEmail
|
|
|
|
### Site Type 0=wp, further tbd later
|
|
|
|
class DockerSites(models.Model):
|
|
admin = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
|
ComposePath = models.TextField()
|
|
SitePath = models.TextField()
|
|
MySQLPath = models.TextField()
|
|
state = models.IntegerField(default=1)
|
|
SiteType = models.IntegerField(default=0) ## WP, Joomla etc
|
|
MySQLDBName = models.CharField(max_length=100)
|
|
MySQLDBNUser = models.CharField(max_length=100)
|
|
CPUsMySQL = models.CharField(max_length=100)
|
|
MemoryMySQL = models.CharField(max_length=100)
|
|
port = models.CharField(max_length=100)
|
|
CPUsSite = models.CharField(max_length=100)
|
|
MemorySite = models.CharField(max_length=100)
|
|
SiteName = models.CharField(unique=True, max_length=255)
|
|
finalURL = models.TextField()
|
|
blogTitle = models.TextField()
|
|
adminUser = models.CharField(max_length=100)
|
|
adminEmail = models.CharField(max_length=100)
|
|
|
|
class DockerPackages(models.Model):
|
|
Name = models.CharField(max_length=100, default='')
|
|
CPUs = models.IntegerField()
|
|
Ram = models.IntegerField()
|
|
Bandwidth = models.TextField()
|
|
DiskSpace = models.TextField()
|
|
config = models.TextField()
|
|
|
|
|
|
class PackageAssignment(models.Model):
|
|
user = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
|
package = models.ForeignKey(DockerPackages, on_delete=models.CASCADE) |