371 lines
11 KiB
Plaintext
371 lines
11 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "sqlite"
|
|
url = env("COOLIFY_DATABASE_URL")
|
|
}
|
|
|
|
model Setting {
|
|
id String @id @default(cuid())
|
|
fqdn String? @unique
|
|
isRegistrationEnabled Boolean @default(false)
|
|
dualCerts Boolean @default(false)
|
|
minPort Int @default(9000)
|
|
maxPort Int @default(9100)
|
|
proxyPassword String
|
|
proxyUser String
|
|
proxyHash String?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model User {
|
|
id String @id @unique @default(cuid())
|
|
email String @unique
|
|
type String
|
|
password String?
|
|
teams Team[]
|
|
permission Permission[]
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Permission {
|
|
id String @id @default(cuid())
|
|
user User @relation(fields: [userId], references: [id])
|
|
userId String
|
|
team Team @relation(fields: [teamId], references: [id])
|
|
teamId String
|
|
permission String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Team {
|
|
id String @id @default(cuid())
|
|
users User[]
|
|
name String?
|
|
applications Application[]
|
|
gitSources GitSource[]
|
|
gitHubApps GithubApp[]
|
|
gitLabApps GitlabApp[]
|
|
destinationDocker DestinationDocker[]
|
|
permissions Permission[]
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
database Database[] @relation(references: [id])
|
|
databaseId String?
|
|
service Service[] @relation(references: [id])
|
|
serviceId String?
|
|
}
|
|
|
|
model TeamInvitation {
|
|
id String @id @default(cuid())
|
|
uid String
|
|
email String
|
|
teamId String
|
|
teamName String
|
|
permission String
|
|
createdAt DateTime @default(now())
|
|
}
|
|
|
|
model Application {
|
|
id String @id @default(cuid())
|
|
name String
|
|
fqdn String? @unique
|
|
repository String?
|
|
configHash String?
|
|
branch String?
|
|
buildPack String?
|
|
projectId Int?
|
|
port Int?
|
|
installCommand String?
|
|
buildCommand String?
|
|
startCommand String?
|
|
baseDirectory String?
|
|
publishDirectory String?
|
|
phpModules String?
|
|
pythonWSGI String?
|
|
pythonModule String?
|
|
pythonVariable String?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
settings ApplicationSettings?
|
|
teams Team[]
|
|
destinationDockerId String?
|
|
destinationDocker DestinationDocker? @relation(fields: [destinationDockerId], references: [id])
|
|
gitSourceId String?
|
|
gitSource GitSource? @relation(fields: [gitSourceId], references: [id])
|
|
secrets Secret[]
|
|
persistentStorage ApplicationPersistentStorage[]
|
|
}
|
|
|
|
model ApplicationSettings {
|
|
id String @id @default(cuid())
|
|
application Application @relation(fields: [applicationId], references: [id])
|
|
applicationId String @unique
|
|
dualCerts Boolean @default(false)
|
|
debug Boolean @default(false)
|
|
previews Boolean @default(false)
|
|
autodeploy Boolean @default(true)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model ApplicationPersistentStorage {
|
|
id String @id @default(cuid())
|
|
application Application @relation(fields: [applicationId], references: [id])
|
|
applicationId String @unique
|
|
path String @unique
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@unique([applicationId, path])
|
|
}
|
|
|
|
model Secret {
|
|
id String @id @default(cuid())
|
|
name String
|
|
value String
|
|
isPRMRSecret Boolean @default(false)
|
|
isBuildSecret Boolean @default(false)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
application Application @relation(fields: [applicationId], references: [id])
|
|
applicationId String
|
|
|
|
@@unique([name, applicationId, isPRMRSecret])
|
|
}
|
|
|
|
model ServiceSecret {
|
|
id String @id @default(cuid())
|
|
name String
|
|
value String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
service Service @relation(fields: [serviceId], references: [id])
|
|
serviceId String
|
|
|
|
@@unique([name, serviceId])
|
|
}
|
|
|
|
model BuildLog {
|
|
id String @id @default(cuid())
|
|
applicationId String?
|
|
buildId String
|
|
line String
|
|
time Int
|
|
}
|
|
|
|
model Build {
|
|
id String @id @default(cuid())
|
|
type String
|
|
applicationId String?
|
|
destinationDockerId String?
|
|
gitSourceId String?
|
|
githubAppId String?
|
|
gitlabAppId String?
|
|
commit String?
|
|
status String? @default("queued")
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model DestinationDocker {
|
|
id String @id @default(cuid())
|
|
network String @unique
|
|
name String
|
|
engine String
|
|
remoteEngine Boolean @default(false)
|
|
isCoolifyProxyUsed Boolean? @default(false)
|
|
teams Team[]
|
|
application Application[]
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
database Database[]
|
|
service Service[]
|
|
}
|
|
|
|
model GitSource {
|
|
id String @id @default(cuid())
|
|
name String
|
|
teams Team[]
|
|
type String?
|
|
apiUrl String?
|
|
htmlUrl String?
|
|
organization String?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
githubAppId String? @unique
|
|
githubApp GithubApp? @relation(fields: [githubAppId], references: [id])
|
|
application Application[]
|
|
gitlabAppId String? @unique
|
|
gitlabApp GitlabApp? @relation(fields: [gitlabAppId], references: [id])
|
|
}
|
|
|
|
model GithubApp {
|
|
id String @id @default(cuid())
|
|
name String? @unique
|
|
teams Team[]
|
|
appId Int?
|
|
installationId Int?
|
|
clientId String?
|
|
clientSecret String?
|
|
webhookSecret String?
|
|
privateKey String?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
gitSource GitSource?
|
|
}
|
|
|
|
model GitlabApp {
|
|
id String @id @default(cuid())
|
|
oauthId Int @unique
|
|
groupName String? @unique
|
|
teams Team[]
|
|
deployKeyId Int?
|
|
privateSshKey String?
|
|
publicSshKey String?
|
|
webhookToken String?
|
|
appId String?
|
|
appSecret String?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
gitSource GitSource?
|
|
}
|
|
|
|
model Database {
|
|
id String @id @default(cuid())
|
|
name String
|
|
publicPort Int?
|
|
defaultDatabase String?
|
|
type String?
|
|
version String?
|
|
dbUser String?
|
|
dbUserPassword String?
|
|
rootUser String?
|
|
rootUserPassword String?
|
|
settings DatabaseSettings?
|
|
destinationDocker DestinationDocker? @relation(fields: [destinationDockerId], references: [id])
|
|
destinationDockerId String?
|
|
teams Team[]
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model DatabaseSettings {
|
|
id String @id @default(cuid())
|
|
database Database @relation(fields: [databaseId], references: [id])
|
|
databaseId String @unique
|
|
isPublic Boolean @default(false)
|
|
appendOnly Boolean @default(true)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Service {
|
|
id String @id @default(cuid())
|
|
name String
|
|
fqdn String?
|
|
dualCerts Boolean @default(false)
|
|
type String?
|
|
version String?
|
|
teams Team[]
|
|
destinationDockerId String?
|
|
destinationDocker DestinationDocker? @relation(fields: [destinationDockerId], references: [id])
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
plausibleAnalytics PlausibleAnalytics?
|
|
minio Minio?
|
|
vscodeserver Vscodeserver?
|
|
wordpress Wordpress?
|
|
ghost Ghost?
|
|
serviceSecret ServiceSecret[]
|
|
meiliSearch MeiliSearch?
|
|
}
|
|
|
|
model PlausibleAnalytics {
|
|
id String @id @default(cuid())
|
|
email String?
|
|
username String?
|
|
password String
|
|
postgresqlUser String
|
|
postgresqlPassword String
|
|
postgresqlDatabase String
|
|
postgresqlPublicPort Int?
|
|
secretKeyBase String?
|
|
serviceId String @unique
|
|
service Service @relation(fields: [serviceId], references: [id])
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Minio {
|
|
id String @id @default(cuid())
|
|
rootUser String
|
|
rootUserPassword String
|
|
publicPort Int?
|
|
serviceId String @unique
|
|
service Service @relation(fields: [serviceId], references: [id])
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Vscodeserver {
|
|
id String @id @default(cuid())
|
|
password String
|
|
serviceId String @unique
|
|
service Service @relation(fields: [serviceId], references: [id])
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Wordpress {
|
|
id String @id @default(cuid())
|
|
extraConfig String?
|
|
tablePrefix String?
|
|
mysqlUser String
|
|
mysqlPassword String
|
|
mysqlRootUser String
|
|
mysqlRootUserPassword String
|
|
mysqlDatabase String?
|
|
mysqlPublicPort Int?
|
|
ftpEnabled Boolean @default(false)
|
|
ftpUser String?
|
|
ftpPassword String?
|
|
ftpPublicPort Int?
|
|
ftpHostKey String?
|
|
ftpHostKeyPrivate String?
|
|
serviceId String @unique
|
|
service Service @relation(fields: [serviceId], references: [id])
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Ghost {
|
|
id String @id @default(cuid())
|
|
defaultEmail String
|
|
defaultPassword String
|
|
mariadbUser String
|
|
mariadbPassword String
|
|
mariadbRootUser String
|
|
mariadbRootUserPassword String
|
|
mariadbDatabase String?
|
|
mariadbPublicPort Int?
|
|
serviceId String @unique
|
|
service Service @relation(fields: [serviceId], references: [id])
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model MeiliSearch {
|
|
id String @id @default(cuid())
|
|
masterKey String
|
|
serviceId String @unique
|
|
service Service @relation(fields: [serviceId], references: [id])
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|