Nextcloud All-in-One cloud platform on ThreeFold Grid.
Deploy a complete Nextcloud instance with:
- Nextcloud AIO - All-in-One deployment with automatic management
- Built-in SSL - Let's Encrypt certificates handled by AIO
- BorgBackup - Automatic encrypted backups
- Auto-updates - Managed through AIO interface
- Automatic DNS - Optional DNS A record creation (Name.com, Namecheap, Cloudflare)
- π File Sync & Share - Access files from anywhere
- π Calendar & Contacts - Integrated productivity apps
- π§ Email Integration - Connect your email accounts
- π₯ Talk - Video calls and chat (optional)
- π Office - Collaborative document editing (Collabora/OnlyOffice)
- π End-to-end Encryption - Optional E2EE for sensitive files
The easiest way to deploy - answers questions interactively:
tfgrid-compose up tfgrid-nextcloud -iThis will prompt you for:
- Domain name
- DNS provider (optional automatic setup)
- Nextcloud settings
- Optional features (Talk, Collabora, OnlyOffice)
- Resource allocation
- Node selection
Deploy with all settings on the command line:
tfgrid-compose up tfgrid-nextcloud \
--env DOMAIN=cloud.example.com \
--env NEXTCLOUD_ADMIN_USER=admin \
--env NEXTCLOUD_UPLOAD_LIMIT=10GComplete deployment with DNS automation and all options:
# With Name.com DNS (recommended - fully automated)
tfgrid-compose up tfgrid-nextcloud \
--env DOMAIN=cloud.example.com \
--env DNS_PROVIDER=name.com \
--env NAMECOM_USERNAME=myuser \
--env NAMECOM_API_TOKEN=your-token
# With Cloudflare DNS and optional features (recommended - fully automated)
tfgrid-compose up tfgrid-nextcloud \
--env DOMAIN=cloud.example.com \
--env DNS_PROVIDER=cloudflare \
--env CLOUDFLARE_API_TOKEN=your-cf-token \
--env NEXTCLOUD_ADMIN_USER=myadmin \
--env NEXTCLOUD_UPLOAD_LIMIT=20G \
--env NEXTCLOUD_MEMORY_LIMIT=1G \
--env COLLABORA_ENABLED=true \
--env TALK_ENABLED=true \
--cpu 4 \
--memory 8192 \
--disk 500
# With GoDaddy DNS (recommended - fully automated)
tfgrid-compose up tfgrid-nextcloud \
--env DOMAIN=cloud.example.com \
--env DNS_PROVIDER=godaddy \
--env GODADDY_API_KEY=your-api-key \
--env GODADDY_API_SECRET=your-api-secret| Variable | Required | Default | Description |
|---|---|---|---|
DOMAIN |
Yes | - | Public domain for Nextcloud |
DNS_PROVIDER |
No | manual |
DNS provider: manual, name.com, cloudflare, godaddy |
NAMECOM_USERNAME |
If name.com | - | Name.com username |
NAMECOM_API_TOKEN |
If name.com | - | Name.com API token |
CLOUDFLARE_API_TOKEN |
If cloudflare | - | Cloudflare API token |
GODADDY_API_KEY |
If godaddy | - | GoDaddy API key |
GODADDY_API_SECRET |
If godaddy | - | GoDaddy API secret |
| Variable | Required | Default | Description |
|---|---|---|---|
NEXTCLOUD_ADMIN_USER |
No | admin |
Admin username |
NEXTCLOUD_ADMIN_PASSWORD |
No | auto-generated | Admin password |
NEXTCLOUD_DATADIR |
No | /mnt/ncdata |
Data directory path |
NEXTCLOUD_UPLOAD_LIMIT |
No | 10G |
Maximum upload file size |
NEXTCLOUD_MEMORY_LIMIT |
No | 512M |
PHP memory limit |
| Variable | Required | Default | Description |
|---|---|---|---|
COLLABORA_ENABLED |
No | false |
Enable Collabora Online Office |
TALK_ENABLED |
No | false |
Enable Nextcloud Talk video calls |
ONLYOFFICE_ENABLED |
No | false |
Enable OnlyOffice (alternative to Collabora) |
| Variable | Required | Default | Description |
|---|---|---|---|
BACKUP_LOCATION |
No | /mnt/backup |
Backup storage location |
BACKUP_RETENTION |
No | 7 |
Number of backups to keep |
- Deploy - Run
tfgrid-compose up tfgrid-nextcloud -i - Access AIO - Open
https://<server-ip>:8443 - Configure - Enter your domain and set admin password
- Start - Click "Start containers" in AIO interface
- Access - Open
https://your-domain.com
| Command | Description |
|---|---|
tfgrid-compose backup |
Trigger AIO backup |
tfgrid-compose backup-status |
Check backup status |
tfgrid-compose restore |
Show restore instructions |
tfgrid-compose logs [service] |
View logs |
tfgrid-compose occ <cmd> |
Run Nextcloud occ commands |
tfgrid-compose update |
Check for updates |
tfgrid-compose restart |
Restart services |
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4 cores |
| Memory | 4 GB | 8 GB |
| Disk | 50 GB | 200 GB |
βββββββββββββββ βββββββββββββββββββββββββββββββββββββ
β Internet ββββββΆβ Nextcloud AIO β
β β β (Apache + Let's Encrypt) β
βββββββββββββββ βββββββββββββββββ¬ββββββββββββββββββββ
β
βββββββββββββββββΌββββββββββββββββ
β β β
βββββββΌββββββ βββββββΌββββββ βββββββΌββββββ
β Nextcloud β β PostgreSQLβ β Redis β
β App β β Database β β Cache β
βββββββββββββ βββββββββββββ βββββββββββββ
Nextcloud AIO uses BorgBackup with:
- Automatic daily backups
- Deduplication (saves space)
- Encryption
- Remote backup support
Configure backups via the AIO interface.
Restore is done through the AIO interface:
- Open
https://<server-ip>:8443 - Go to Backup section
- Select backup to restore
- Click Restore
| Port | Service |
|---|---|
| 80 | HTTP (redirects to HTTPS) |
| 443 | HTTPS (Nextcloud) |
| 8080 | AIO Interface (HTTP) |
| 8443 | AIO Interface (HTTPS) |
tfgrid-compose healthchecktfgrid-compose logs # All logs
tfgrid-compose logs mastercontainer # AIO logs
tfgrid-compose logs nextcloud # Nextcloud logsAIO interface not accessible
- Ensure port 8443 is open
- Check Docker is running:
systemctl status docker
SSL certificate not working
- Ensure domain DNS points to server IP
- Check AIO logs for Let's Encrypt errors
Slow performance
- Increase memory: set
NEXTCLOUD_MEMORY_LIMIT=1024M - Check disk I/O and available space
- π Documentation: docs.tfgrid.studio
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π§ Contact: tfgrid.studio/contact
Apache 2.0