Files
a13labs.infra/terraform/apps/prod-01/apps.tf
T
alexandre.pires aee57a8b89 Refactor Gitea and SSH configurations, update backup scripts, and enhance Nginx settings
- Updated SSH configuration for Gitea to disable banner and TTY, and modified the AuthorizedKeysCommand.
- Simplified gitea-shell script to directly call the k8s_gitea_shell command with required parameters.
- Removed unused gitea-auth script from playbook_gitea.yml.
- Updated systools_version in playbook_systools.yml to 0.4.5.
- Enhanced ssh_locker_helper to copy redirect URL to clipboard based on OS.
- Added a new script test_imaps for IMAP testing.
- Updated Terraform configurations for various applications, including:
  - Added a backup script for MariaDB with retention policy.
  - Changed Gitea version to 1.24-rootless and adjusted SSH settings.
  - Updated Nginx configurations to log errors and access to stderr/stdout.
  - Refactored services to use ClusterIP type and adjusted security contexts for deployments.
  - Added temporary storage for applications using empty_dir.
  - Enhanced backup.sh scripts for better error handling and logging.
2025-09-20 21:34:33 +02:00

127 lines
3.9 KiB
Terraform

module "websites" {
source = "../../modules/apps/nginx"
persistent_folder = local.persistent_folder
websites = local.websites
}
module "rustdesk" {
source = "../../modules/apps/rustdesk"
persistent_folder = local.persistent_folder
fqdn = local.rustdesk_fqdn
public_key = var.rustdesk_public_key
private_key = var.rustdesk_private_key
}
module "m3uproxy" {
source = "../../modules/apps/m3uproxy"
persistent_folder = local.persistent_folder
tag = local.m3uproxy_version
fqdn = local.m3uproxy_fqdn
# Secret and password for M3UProxy
secret = var.m3uproxy_secret
admin_password = var.m3uproxy_admin_password
# GeoIP settings
maxmind_account_id = var.maxmind_account_id
maxmind_license_key = var.maxmind_license_key
geoip_cron_schedule = local.geoip_cron_schedule
geoip_editions = local.geoip_editions
# Wireguard settings (VPN)
wireguard_private_key = var.wireguard_private_key
wireguard_public_key = var.wireguard_public_key
}
module "mail" {
source = "../../modules/apps/mail"
persistent_folder = local.persistent_folder
primary_domain = local.primary_domain
email_accounts = local.email_accounts
relay_smtp_host = local.scaleway_smtp_host
relay_smtp_port = 465
relay_smtp_username = var.scaleway_project_id
relay_smtp_password = local.mail_app_api_secret_key
fetch_emails_schedule = local.fetch_emails_schedule
mail_crypt_private_key = var.mail_crypt_private_key
mail_crypt_public_key = var.mail_crypt_public_key
ca_pem = var.root_ca_pem
}
module "gitea" {
source = "../../modules/apps/gitea"
persistent_folder = local.persistent_folder
database_folder = local.database_folder
backup_folder = local.gitea_backup_path
backup_retention_days = local.local_backup_retention_days
backup_cron_schedule = local.gitea_sql_backup_cron_schedule
db_root_password = var.mysql_root_password
tag = local.gitea_version
fqdn = local.gitea_fqdn
app_config = {
app_name = "A13Labs git repository"
domain = local.gitea_fqdn
lfs_jwt_secret = var.gitea_lfs_jwt_secret
db_passwd = var.gitea_mysql_password
jwt_secret = var.gitea_jwt_secret
mail_from = "gitea@${local.primary_domain}"
no_reply_address = "no-reply@${local.primary_domain}"
smtp_user = var.scaleway_project_id
db_password = var.gitea_mysql_password
smtp_host = local.scaleway_smtp_host
smtp_port = local.scaleway_smtp_port
smtp_user = var.scaleway_project_id
smtp_passwd = local.mail_app_api_secret_key
secret_key = var.gitea_secret_key
internal_token = var.gitea_internal_token
disable_registration = true
}
}
module "trivy" {
source = "../../modules/utils/trivy"
persistent_folder = local.persistent_folder
cron_schedule = local.trivy_cronjob_schedule
smtp_host = local.scaleway_smtp_host
smtp_port = local.scaleway_smtp_port
smtp_username = var.scaleway_project_id
smtp_password = local.mail_app_api_secret_key
from_email = "trivy@${local.primary_domain}"
to_email = "c.alexandre.pires@${local.primary_domain}"
}
module "ssh_locker_web" {
source = "../../modules/apps/ssh_locker_web"
duo_client_id = var.server_api_duo_client_id
duo_client_secret = var.server_api_duo_client_secret
access_token = var.server_api_access_token
duo_api_host = "api-7cda1654.duosecurity.com"
redirect_uri = "https://alexpires.me/api/ssh_locker/duo-callback"
socket_path = "/var/run/ssh_locker/provision.sock"
}
module "reverse_proxy" {
source = "../../modules/apps/nginx-reverse-proxy"
services = local.reverse_proxy_services
wireguard_config = local.reverse_proxy_wireguard_config
auth_token = var.nginx_token_bearer
streams = local.streams
}