Files
firefrost-operations-manual/docs/deployment/nextcloud-hardening.md

3.4 KiB

NextCloud Hardening & Optimization

Service: NextCloud Hub 25 (32.0.5) Location: Ghost VPS (64.50.188.14) Domain: downloads.firefrostgaming.com Date: February 11, 2026 Performed By: Michael + Claude


Pre-Existing State

NextCloud was previously installed on Ghost VPS with full nginx config and SSL certificate. Discovery occurred during planned deployment — the installation survived a documentation loss from a crash a few days prior. 15 security/performance warnings were present in the admin panel.


Changes Applied

Round 1: PHP & Nginx Fixes

Fix Before After
PHP memory_limit 128M 512M
OPcache interned_strings_buffer 8 (commented out) 16 (enabled)
.mjs MIME type Missing Added to /etc/nginx/mime.types
X-Robots-Tag header Missing noindex,nofollow
X-Permitted-Cross-Domain-Policies Missing none
Strict-Transport-Security (HSTS) Missing max-age=15552000; includeSubDomains
OCS provider location block Missing Added (cosmetic warning persists — Hub 25 known issue)
Database missing indices fs_storage_path_prefix, properties_name_path_user Added via occ db:add-missing-indices
Mimetype migrations Pending Completed via occ maintenance:repair --include-expensive
Maintenance window Not set 7 UTC (1 AM CST)
PHP clear_env Commented out (;clear_env = no) Enabled (clear_env = no)

Round 2: Redis & Memcache

Fix Before After
Redis server Not installed redis-server 5:7.0.15 installed
PHP Redis extension Not installed php8.3-redis 5.3.7 installed
memcache.local Not configured \OC\Memcache\Redis
memcache.locking Not configured (database locking) \OC\Memcache\Redis
Redis connection N/A localhost:6379

Round 3: Cleanup

Fix Before After
AppAPI app Enabled (warning about missing deploy daemon) Disabled via occ app:disable
Imagick SVG Missing libmagickcore-6.q16-7-extra installed
Log warnings 3 old warnings from Feb 4 Log truncated, level set to Warning (2)

Files Modified

  • /etc/php/8.3/fpm/php.ini — memory_limit, opcache.interned_strings_buffer
  • /etc/php/8.3/fpm/pool.d/www.conf — clear_env
  • /etc/nginx/mime.types — added .mjs
  • /etc/nginx/sites-enabled/downloads.firefrostgaming.com — headers, OCS provider block
  • /var/www/nextcloud/config/config.php — Redis memcache config

Packages Installed

  • redis-server (5:7.0.15)
  • php8.3-redis (5.3.7)
  • php8.3-igbinary (3.2.13)
  • libmagickcore-6.q16-7-extra (8:6.9.12.98)

Services Restarted

  • php8.3-fpm (multiple times during config changes)
  • nginx (reload after header/MIME changes)

Remaining Warnings (Intentional)

Warning Reason for Skipping
OCS provider resolving Known Hub 25 cosmetic bug — request reaches PHP correctly (verified via curl), NextCloud returns 404 internally
Email test Deferred — requires Plesk migration discussion for proper email infrastructure

Result

  • Before: 15 warnings (including "errors regarding your setup")
  • After: 2 warnings (both intentional skips, downgraded to "warnings regarding your setup")
  • NextCloud status: Healthy, cached with Redis, optimized for performance

Revision History

Version Date Changes
1.0 2026-02-11 Initial hardening documentation