2024-09-24 15:28:19 +02:00
|
|
|
resource "random_string" "bucket_suffix" {
|
|
|
|
|
length = 8
|
|
|
|
|
lower = true
|
|
|
|
|
upper = false
|
|
|
|
|
special = false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "scaleway_object_bucket" "backup" {
|
|
|
|
|
name = "a13labs-backup-${random_string.bucket_suffix.result}"
|
|
|
|
|
project_id = var.scaleway_project_id
|
|
|
|
|
region = "fr-par"
|
|
|
|
|
|
|
|
|
|
lifecycle_rule {
|
2025-03-15 23:31:36 +01:00
|
|
|
id = "gitea-clean"
|
2024-09-24 15:28:19 +02:00
|
|
|
prefix = "gitea-backup/"
|
|
|
|
|
enabled = true
|
|
|
|
|
|
|
|
|
|
expiration {
|
|
|
|
|
days = local.cloud_backup_retention_days
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lifecycle_rule {
|
2025-03-15 23:31:36 +01:00
|
|
|
id = "wordpress-clean"
|
2024-09-24 15:28:19 +02:00
|
|
|
prefix = "wordpress-backup/"
|
|
|
|
|
enabled = true
|
|
|
|
|
|
|
|
|
|
expiration {
|
|
|
|
|
days = local.cloud_backup_retention_days
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lifecycle_rule {
|
2025-03-15 23:31:36 +01:00
|
|
|
id = "nextcloud-clean"
|
2024-09-24 15:28:19 +02:00
|
|
|
prefix = "nextcloud-backup/"
|
|
|
|
|
enabled = true
|
|
|
|
|
|
|
|
|
|
expiration {
|
|
|
|
|
days = local.cloud_backup_retention_days
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-03-15 23:31:36 +01:00
|
|
|
|
|
|
|
|
lifecycle_rule {
|
|
|
|
|
id = "mail-clean"
|
|
|
|
|
prefix = "mail-backup/"
|
|
|
|
|
enabled = true
|
|
|
|
|
|
|
|
|
|
expiration {
|
|
|
|
|
days = local.cloud_backup_retention_days
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-10-20 22:19:36 +02:00
|
|
|
}
|
2024-09-24 15:28:19 +02:00
|
|
|
|
2024-10-20 22:19:36 +02:00
|
|
|
resource "scaleway_object_bucket_policy" "backup" {
|
|
|
|
|
bucket = scaleway_object_bucket.backup.name
|
|
|
|
|
policy = jsonencode({
|
|
|
|
|
Version = "2023-04-17",
|
|
|
|
|
Id = "AllowAccess",
|
|
|
|
|
Statement = [
|
|
|
|
|
{
|
|
|
|
|
Effect = "Allow"
|
|
|
|
|
Action = [
|
|
|
|
|
"s3:*",
|
|
|
|
|
]
|
|
|
|
|
Principal = {
|
|
|
|
|
SCW = "user_id:${var.scaleway_user_id}"
|
|
|
|
|
}
|
|
|
|
|
Resource = [
|
|
|
|
|
scaleway_object_bucket.backup.name,
|
|
|
|
|
"${scaleway_object_bucket.backup.name}/*",
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Effect = "Allow"
|
|
|
|
|
Action = [
|
|
|
|
|
"s3:*",
|
|
|
|
|
]
|
|
|
|
|
Principal = {
|
|
|
|
|
SCW = "application_id:${scaleway_iam_application.backup_app.id}"
|
|
|
|
|
}
|
|
|
|
|
Resource = [
|
|
|
|
|
scaleway_object_bucket.backup.name,
|
|
|
|
|
"${scaleway_object_bucket.backup.name}/*",
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
})
|
2024-09-24 15:28:19 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "scaleway_object_bucket" "nextcloud" {
|
|
|
|
|
name = "a13labs-nextcloud-${random_string.bucket_suffix.result}"
|
|
|
|
|
project_id = var.scaleway_project_id
|
|
|
|
|
region = "fr-par"
|
|
|
|
|
}
|
2024-10-20 22:19:36 +02:00
|
|
|
|
|
|
|
|
resource "scaleway_object_bucket_policy" "nextcloud" {
|
|
|
|
|
bucket = scaleway_object_bucket.nextcloud.name
|
|
|
|
|
policy = jsonencode({
|
|
|
|
|
Version = "2023-04-17",
|
|
|
|
|
Id = "AllowAccess",
|
|
|
|
|
Statement = [
|
|
|
|
|
{
|
|
|
|
|
Effect = "Allow"
|
|
|
|
|
Action = [
|
|
|
|
|
"s3:*",
|
|
|
|
|
]
|
|
|
|
|
Principal = {
|
|
|
|
|
SCW = "user_id:${var.scaleway_user_id}"
|
|
|
|
|
}
|
|
|
|
|
Resource = [
|
|
|
|
|
scaleway_object_bucket.nextcloud.name,
|
|
|
|
|
"${scaleway_object_bucket.nextcloud.name}/*",
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Effect = "Allow"
|
|
|
|
|
Action = [
|
|
|
|
|
"s3:*",
|
|
|
|
|
]
|
|
|
|
|
Principal = {
|
|
|
|
|
SCW = "application_id:${scaleway_iam_application.nextcloud_app.id}"
|
|
|
|
|
}
|
|
|
|
|
Resource = [
|
|
|
|
|
scaleway_object_bucket.nextcloud.name,
|
|
|
|
|
"${scaleway_object_bucket.nextcloud.name}/*",
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
})
|
|
|
|
|
}
|
2025-03-15 23:01:46 +01:00
|
|
|
|
|
|
|
|
resource "scaleway_object_bucket" "dovecot" {
|
|
|
|
|
name = "a13labs-dovecot-${random_string.bucket_suffix.result}"
|
|
|
|
|
project_id = var.scaleway_project_id
|
|
|
|
|
region = "fr-par"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "scaleway_object_bucket_policy" "dovecot" {
|
|
|
|
|
bucket = scaleway_object_bucket.dovecot.name
|
|
|
|
|
policy = jsonencode({
|
|
|
|
|
Version = "2023-04-17",
|
|
|
|
|
Id = "AllowAccess",
|
|
|
|
|
Statement = [
|
|
|
|
|
{
|
|
|
|
|
Effect = "Allow"
|
|
|
|
|
Action = [
|
|
|
|
|
"s3:*",
|
|
|
|
|
]
|
|
|
|
|
Principal = {
|
|
|
|
|
SCW = "user_id:${var.scaleway_user_id}"
|
|
|
|
|
}
|
|
|
|
|
Resource = [
|
|
|
|
|
scaleway_object_bucket.dovecot.name,
|
|
|
|
|
"${scaleway_object_bucket.dovecot.name}/*",
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Effect = "Allow"
|
|
|
|
|
Action = [
|
|
|
|
|
"s3:*",
|
|
|
|
|
]
|
|
|
|
|
Principal = {
|
|
|
|
|
SCW = "application_id:${scaleway_iam_application.dovecot_app.id}"
|
|
|
|
|
}
|
|
|
|
|
Resource = [
|
|
|
|
|
scaleway_object_bucket.dovecot.name,
|
|
|
|
|
"${scaleway_object_bucket.dovecot.name}/*",
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
})
|
|
|
|
|
}
|
2025-05-05 00:47:36 +02:00
|
|
|
|
|
|
|
|
resource "scaleway_object_bucket" "sftpgo" {
|
|
|
|
|
name = "a13labs-sftpgo-${random_string.bucket_suffix.result}"
|
|
|
|
|
project_id = var.scaleway_project_id
|
|
|
|
|
region = "fr-par"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "scaleway_object_bucket_policy" "sftpgo" {
|
|
|
|
|
bucket = scaleway_object_bucket.sftpgo.name
|
|
|
|
|
policy = jsonencode({
|
|
|
|
|
Version = "2023-04-17",
|
|
|
|
|
Id = "AllowAccess",
|
|
|
|
|
Statement = [
|
|
|
|
|
{
|
|
|
|
|
Effect = "Allow"
|
|
|
|
|
Action = [
|
|
|
|
|
"s3:*",
|
|
|
|
|
]
|
|
|
|
|
Principal = {
|
|
|
|
|
SCW = "user_id:${var.scaleway_user_id}"
|
|
|
|
|
}
|
|
|
|
|
Resource = [
|
|
|
|
|
scaleway_object_bucket.sftpgo.name,
|
|
|
|
|
"${scaleway_object_bucket.sftpgo.name}/*",
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Effect = "Allow"
|
|
|
|
|
Action = [
|
|
|
|
|
"s3:*",
|
|
|
|
|
]
|
|
|
|
|
Principal = {
|
|
|
|
|
SCW = "application_id:${scaleway_iam_application.sftpgo_app.id}"
|
|
|
|
|
}
|
|
|
|
|
Resource = [
|
|
|
|
|
scaleway_object_bucket.sftpgo.name,
|
|
|
|
|
"${scaleway_object_bucket.sftpgo.name}/*",
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
})
|
|
|
|
|
}
|