From 678f92ffb4efa2159cffe182fa7e74079b9c9376 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Sun, 1 Mar 2026 18:02:38 +0000 Subject: [PATCH] [ci skip] onlyoffice: cache fonts/themes on NFS for fast restarts Persist font cache (159MB) and theme images (10MB) to NFS volume. Set GENERATE_FONTS=false to skip regeneration on startup since cache is warm. Startup time: ~3 min -> 5 seconds. --- secrets/nfs_directories.txt | Bin 1802 -> 1819 bytes stacks/onlyoffice/main.tf | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/secrets/nfs_directories.txt b/secrets/nfs_directories.txt index f964400111da8155bb71101aba287e22be2d8941..d6ea24b1733d36cc3fd6f015cf7fb1997fd99054 100644 GIT binary patch literal 1819 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 diff --git a/stacks/onlyoffice/main.tf b/stacks/onlyoffice/main.tf index d2885d9d..cf31776e 100644 --- a/stacks/onlyoffice/main.tf +++ b/stacks/onlyoffice/main.tf @@ -142,11 +142,24 @@ resource "kubernetes_deployment" "onlyoffice-document-server" { name = "JWT_SECRET" value = var.onlyoffice_jwt_token } + env { + name = "GENERATE_FONTS" + value = "false" + } volume_mount { name = "data" mount_path = "/var/www/onlyoffice/Data" } + volume_mount { + name = "font-cache" + mount_path = "/var/www/onlyoffice/documentserver/fonts" + } + volume_mount { + name = "font-cache" + mount_path = "/var/www/onlyoffice/documentserver/sdkjs/common/Images" + sub_path = "images" + } } volume { name = "data" @@ -155,6 +168,13 @@ resource "kubernetes_deployment" "onlyoffice-document-server" { server = var.nfs_server } } + volume { + name = "font-cache" + nfs { + path = "/mnt/main/onlyoffice-cache" + server = var.nfs_server + } + } } } }