Files
CyberPanel/websiteFunctions/models.py

201 lines
7.7 KiB
Python
Raw Normal View History

2017-10-24 19:16:36 +05:00
# -*- coding: utf-8 -*-
2019-12-10 15:09:10 +05:00
2017-10-24 19:16:36 +05:00
from django.db import models
from packages.models import Package
from loginSystem.models import Administrator
from datetime import datetime
2017-10-24 19:16:36 +05:00
# Create your models here.
class Websites(models.Model):
2019-01-28 15:19:59 +05:00
admin = models.ForeignKey(Administrator, on_delete=models.PROTECT)
package = models.ForeignKey(Package, on_delete=models.PROTECT)
2021-06-10 11:19:48 +05:00
domain = models.CharField(max_length=255,unique=True)
adminEmail = models.CharField(max_length=255)
2017-10-24 19:16:36 +05:00
phpSelection = models.CharField(max_length=10)
ssl = models.IntegerField()
state = models.IntegerField(default=1)
2020-03-06 09:25:49 +05:00
externalApp = models.CharField(max_length=30, default=None)
2021-01-18 12:09:15 +05:00
config = models.TextField(default='')
BackupLock = models.IntegerField(default=0)
2017-10-24 19:16:36 +05:00
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)
2017-10-24 19:16:36 +05:00
class Backups(models.Model):
website = models.ForeignKey(Websites,on_delete=models.CASCADE)
2020-04-28 17:51:31 +05:00
fileName = models.CharField(max_length=200)
2017-10-24 19:16:36 +05:00
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):
2019-12-21 14:11:17 +05:00
dest = models.ForeignKey(dest, on_delete=models.CASCADE)
2017-10-24 19:16:36 +05:00
frequency = models.CharField(max_length=15)
2018-08-18 00:39:10 +05:00
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)
2020-05-20 22:13:06 +05:00
class BackupJob(models.Model):
logFile = models.CharField(max_length=1000)
ipAddress = models.CharField(max_length=50)
port = models.CharField(max_length=15)
2020-05-20 22:23:21 +05:00
jobSuccessSites = models.IntegerField()
jobFailedSites = models.IntegerField()
2020-05-20 22:35:54 +05:00
location = models.IntegerField()
2020-05-20 22:13:06 +05:00
class BackupJobLogs(models.Model):
owner = models.ForeignKey(BackupJob, on_delete=models.CASCADE)
2020-05-20 22:23:21 +05:00
status = models.IntegerField()
2020-06-13 14:25:29 +05:00
message = models.TextField()
class GDrive(models.Model):
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
name = models.CharField(max_length=50, unique=True)
2020-06-13 14:25:29 +05:00
auth = models.TextField(max_length=65532, default='Inactive')
runTime = models.CharField(max_length=20, default='NEVER')
2020-06-13 14:25:29 +05:00
class GDriveSites(models.Model):
owner = models.ForeignKey(GDrive, on_delete=models.CASCADE)
2020-06-13 21:56:37 +05:00
domain = models.CharField(max_length=200)
2020-06-13 14:25:29 +05:00
class GDriveJobLogs(models.Model):
owner = models.ForeignKey(GDrive, on_delete=models.CASCADE)
status = models.IntegerField()
2020-09-20 19:52:02 +05:00
message = models.TextField()
### Normal backup models
class NormalBackupDests(models.Model):
name = models.CharField(max_length=25)
config = models.TextField()
2020-09-21 22:19:52 +05:00
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()
2022-05-13 14:09:36 +05:00
class wpplugins(models.Model):
2022-05-14 13:11:13 +05:00
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
2022-05-13 14:09:36 +05:00
Name = models.CharField(max_length=255, default='')
config = models.TextField()
2022-05-13 14:23:02 +05:00
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)
2022-05-24 11:25:42 +05:00
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')
2022-06-07 13:59:06 +05:00
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()
2022-06-24 17:01:40 +05:00
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()))
2023-12-18 15:32:39 +05:00
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)
2023-12-22 07:41:48 +05:00
SiteName = models.TextField(unique=True)
2023-12-18 15:32:39 +05:00
finalURL = models.TextField()
blogTitle = models.TextField()
adminUser = models.CharField(max_length=100)
adminEmail = models.CharField(max_length=100)
class DockerPackages(models.Model):
2023-12-20 16:01:01 +05:00
Name = models.CharField(max_length=100, default='')
2023-12-18 15:32:39 +05:00
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)