75 lines
3.5 KiB
HCL
75 lines
3.5 KiB
HCL
locals {
|
|
script-wrap = <<-EOF
|
|
#!/bin/bash
|
|
cp /etc/local-ca/ca.crt /usr/local/share/ca-certificates/
|
|
/usr/sbin/update-ca-certificates
|
|
chown www-data ./config || :
|
|
exec /bin/sh /entrypoint.sh "$@"
|
|
EOF
|
|
script-head = <<-EOF
|
|
#!/bin/bash
|
|
export user=www-data
|
|
run_as() {
|
|
if [ "$(id -u)" = 0 ]; then
|
|
su -p "$user" -s /bin/sh -c "$*"
|
|
else
|
|
sh -c "$*"
|
|
fi
|
|
}
|
|
run_as ./occ --no-warnings config:system:set trusted_domains 0 --value=nextcloud
|
|
run_as ./occ --no-warnings config:system:set trusted_domains 1 --value="${local.dns_name}"
|
|
run_as ./occ app:install user_oidc ||:
|
|
run_as ./occ user_oidc:provider "$${OAUTH2_CONNECTOR_NAME}" --clientid="$${OAUTH2_CLIENT_ID}" \
|
|
--clientsecret="$${OAUTH2_CLIENT_SECRET}" \
|
|
--discoveryuri="$${OAUTH2_DISCOVER_URI}"
|
|
EOF
|
|
script-apps = concat(
|
|
var.apps.deck?["run_as ./occ app:install deck ||:"]:[],
|
|
var.apps.calendar?["run_as ./occ app:install calendar ||:"]:[],
|
|
var.apps.contacts?["run_as ./occ app:install contacts ||:"]:[],
|
|
var.apps.groupfolders?["run_as ./occ app:install groupfolders ||:"]:[],
|
|
var.apps.notes?["run_as ./occ app:install notes ||:"]:[],
|
|
var.apps.tasks?["run_as ./occ app:install tasks ||:"]:[],
|
|
var.apps.audioplayer?["run_as ./occ app:install audioplayer ||:"]:[],
|
|
var.apps.bpm?["run_as ./occ app:install files_bpm ||:"]:[],
|
|
var.apps.mindmap?["run_as ./occ app:install files_mindmap ||:"]:[],
|
|
var.apps.music?["run_as ./occ app:install music ||:"]:[],
|
|
var.apps.bookmarks?["run_as ./occ app:install bookmarks ||:"]:[],
|
|
var.apps.texteditor?["run_as ./occ app:install files_texteditor ||:"]:[],
|
|
var.apps.passman?["run_as ./occ app:install passman ||:"]:[],
|
|
var.apps.tables?["run_as ./occ app:install tables ||:"]:[],
|
|
var.apps.collabora?[
|
|
"run_as ./occ app:install richdocuments ||:",
|
|
"run_as ./occ app:enable richdocuments ||:",
|
|
"run_as ./occ config:app:set richdocuments wopi_url --value=\"https://collabora.${local.dns_name}/\"",
|
|
"run_as ./occ config:app:set richdocuments federation_use_trusted_domains --value=yes",
|
|
"run_as ./occ richdocuments:activate-config ||:",
|
|
]:["run_as ./occ app:disable richdocuments ||:"],
|
|
var.apps.onlyoffice?[
|
|
"run_as ./occ app:install onlyoffice ||:",
|
|
"run_as ./occ app:enable onlyoffice ||:",
|
|
"run_as ./occ --no-warnings config:app:set onlyoffice DocumentServerUrl --value=\"https://onlyoffice.${local.dns_name}/\"",
|
|
"run_as ./occ --no-warnings config:app:set onlyoffice DocumentServerInternalUrl --value=\"http://${var.instance}-onlyoffice/\"",
|
|
"run_as ./occ --no-warnings config:app:set onlyoffice StorageUrl --value=\"http://nextcloud/\"",
|
|
"run_as ./occ --no-warnings config:app:set onlyoffice jwt_secret --value=\"$${ONLYOFFICE_JWT_SECRET}\"",
|
|
]:["run_as ./occ app:disable onlyoffice ||:"],
|
|
var.apps.spreed?["run_as ./occ app:install spreed ||:"]:[],
|
|
["run_as ./occ upgrade ||:","run_as ./occ maintenance:mode --off ||:"])
|
|
data-config-init = {
|
|
"autostart.sh" = join("\n", concat([local.script-head],local.script-apps))
|
|
"wrapper" = local.script-wrap
|
|
}
|
|
}
|
|
|
|
resource "kubectl_manifest" "nextcloud-config" {
|
|
yaml_body = <<-EOF
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: "${var.component}-${var.instance}-init"
|
|
namespace: "${var.namespace}"
|
|
labels: ${jsonencode(local.common_labels)}
|
|
data: ${jsonencode(local.data-config-init)}
|
|
EOF
|
|
}
|