🗂️

Nextcloud Server

Nextcloud Hub · Ubuntu 24.04 LTS · PHP-FPM 8.3 · PostgreSQL 16

Self-hosted, secure file collaboration platform ready to deploy on Microsoft Azure. Full Nextcloud Hub instance pre-configured with Nginx, Let's Encrypt TLS, PostgreSQL 16 and Redis — operational from first boot, designed for universities and research centres.

🏗 Deployment Environment

ComponentValue
Operating SystemUbuntu Server 24.04 LTS
ApplicationNextcloud Hub 33
Web ServerNginx — reverse proxy + TLS termination
PHP RuntimePHP-FPM 8.3
DatabasePostgreSQL 16 (127.0.0.1:5432)
Cache & LockingRedis (127.0.0.1:6379) — session cache & file locking
TLS CertificatesLet's Encrypt via Certbot — auto-renewing
Provisioningcloud-init — automatic configuration on first boot
Recommended VMsB2s, D2s_v3, D4s_v3, D8s_v3 (Azure)

✨ Key Features

🗂️ Full File Collaboration

Upload, share, version and co-edit documents — with desktop sync clients and mobile apps included.

🔐 Security by Default

PostgreSQL and Redis bound to localhost only. SSH access restricted by NSG rule. HTTPS enforced from first boot.

🔑 Entra ID / SSO

Native integration with Microsoft Entra ID (formerly Azure AD) via SAML or OIDC for single sign-on.

📊 Monitoring Ready

Compatible with Azure Monitor — host-level VM metrics collected automatically. Configure alerts and custom dashboards from the Azure Portal.

💾 Managed Data Disk

User files stored on a separate Azure managed data disk (/var/nextcloud-data) — independent of the OS disk for easy backup and resizing.

☁️ Azure Optimized

Ready in under 5 minutes from the Marketplace. Pre-configured for common Azure SKUs — B2s through D8s_v3.

🔄 Easy Updates

Nextcloud upgrade path fully documented — step-by-step wiki guide for safe, in-place upgrades.

🛡 Privacy & Compliance

Your data stays on your Azure subscription. Suitable for sensitive research data and institutional compliance requirements.

🚀 Quick Start

After deployment from Azure Marketplace, your Nextcloud instance is immediately accessible.

1. Configure the VM in the Azure Portal

In the Basics tab, set your VM name, region, size, SSH username and public key. In the Networking tab, create a static public IP and allow ports 22, 80 and 443.

⚠️ Advanced tab — Custom data (required): paste the following cloud-init block and replace the placeholder values. Without this, the first-boot service will fail and Nextcloud will not be installed.

#cloud-config
write_files:
  - path: /etc/nextcloud/config.env
    owner: root:root
    permissions: "0600"
    content: |
      NC_ADMIN_USER=ncadmin
      NC_ADMIN_PASSWORD=YourStrongPassword123!
      NC_DB_PASSWORD=AnotherStrongPassword456!
      REDIS_PASSWORD=RedisPassword789!

NC_ADMIN_USER / NC_ADMIN_PASSWORD — Nextcloud web admin credentials  |  NC_DB_PASSWORD — PostgreSQL password  |  REDIS_PASSWORD — Redis authentication.
The trusted domain is auto-detected at first boot via Azure IMDS — no domain parameter needed. config.env is securely shredded after first boot.

2. Connect via SSH and verify services

# Connect to the VM
ssh -i ~/.ssh/<your-key> azureuser@<vm-public-ip>

# Check all services are running
systemctl status nginx php8.3-fpm postgresql redis-server

3. Open Nextcloud in your browser

https://<vm-public-ip>
# or, once DNS is configured:
https://<your-domain>

Full step-by-step instructions in the documentation wiki.

📐 VM Sizing Guide

VM SKUvCPURAMEst. Monthly CostRecommended for
Standard_B2s24 GB~$35 USD1–10 users, dev/test, pilots
Standard_B4ms416 GB~$130 USD10–50 users, small teams
Standard_D2s_v328 GB~$70 USD10–30 users, consistent load
Standard_D4s_v3416 GB~$140 USD30–100 users, departments
Standard_D8s_v3832 GB~$280 USD100–300 users, research groups

Costs are estimates based on pay-as-you-go pricing in East US. See Azure Pricing Calculator for your region. Full guide: vm-sizing-guide.md.

📚 Documentation

TopicENFR
Overview & Navigation Home Accueil
Deploying from Marketplace Deploying-from-Marketplace Déploiement
SSH Connection SSH-Connection Connexion SSH
Post-Deployment Verification Post-Deployment-Verification Vérification
HTTPS / TLS Certificate HTTPS-TLS-Certificate Certificat HTTPS
Configuring Nextcloud Configuring-Nextcloud Configuration
Managing Users Managing-Users Utilisateurs
Managing Apps Managing-Apps Applications
Updating Nextcloud Updating-Nextcloud Mise à jour
Backup & Restore backup-restore.md sauvegarde-restauration
Entra ID SSO entra-id-sso.md SSO Entra ID
Monitoring monitoring.md Supervision
Network Security network-security.md Sécurité réseau
Troubleshooting Troubleshooting Dépannage