Nextcloud VPS - Getting Started Guide

Nextcloud VPS - Getting Started Guide

Your Nextcloud VPS based on Ubuntu 24.04 comes fully configured - Nextcloud is installed with the domain and admin password you specified during order. All you need to do is point your domain to the server's IP address, and your private cloud is ready to use.

Software Included

Component Version
Ubuntu24.04 LTS
Apache2.4
MariaDB10.11
PHP (FPM)8.3
Redis7.0
Nextcloud32
Certbotlatest
Fail2Banlatest

What's Pre-Configured

  • Caching: APCu (local) + Redis (distributed and file locking) via Unix socket
  • Background jobs: System cron every 5 minutes (recommended by Nextcloud)
  • File uploads: Up to 16 GB per file
  • PHP memory: 512 MB
  • Security: Fail2Ban protects against brute-force login attempts (5 failed attempts = 1 hour ban)
  • Apps: Calendar and Contacts are pre-installed

Step 1 - Your Credentials

After your VPS is created, log in to your client panel and open your VPS service details. Find the IP address and root password (for SSH).

Nextcloud admin login:

  • Username: admin
  • Password: the Admin Password you entered during the order

Your Nextcloud instance is already accessible by IP address right away - open http://your.server.ip in a browser to verify it works. But for your domain to work, you'll need to set up DNS in the next step.


Step 2 - Point Your Domain to the Server

Go to your domain registrar's DNS settings and create A records pointing to your server's IP address:

Type Name Value
A@your.server.ip
Awwwyour.server.ip

DNS changes usually take a few minutes, but can take up to 24 hours. You can check the status at dnschecker.org.


Step 3 - Access Nextcloud

Once DNS has propagated, your Nextcloud is live:

  • Nextcloud: http://yourdomain.com
  • Admin panel: http://yourdomain.com/settings/admin

Log in with username admin and the Admin Password from Step 1.


Step 4 - Enable SSL (Recommended)

Your site works over HTTP by default. To enable HTTPS with a free Let's Encrypt certificate, connect via SSH using the root password from your service details page:

ssh root@your.server.ip
/opt/setup/get-ssl.sh

The script will verify DNS, obtain a Let's Encrypt certificate and switch Nextcloud to HTTPS automatically. It will also update the trusted domain setting in Nextcloud. Automatic renewal is already configured.

After completion, your Nextcloud is available at https://yourdomain.com.


Step 5 - Connect Fiberax S3 Storage (Optional)

You can connect your Fiberax S3 storage to Nextcloud as an external folder. This lets you and your users store files directly in S3 - ideal for backups, media, or large datasets.

Prerequisites:

  • An active Fiberax S3 Storage service (order from your client panel if you don't have one)
  • A bucket created in the S3 panel
  • Your S3 credentials (endpoint, Access Key, Secret Key) - find them under S3 Credentials in your S3 service

5.1 Enable the External Storage app

Log in to Nextcloud as admin. Go to the top-right user menu → Apps. Find "External storage support" and click Enable.

5.2 Add your S3 bucket

Go to Settings → Administration → External storages. Click "Add storage" and select "S3 Storage".

Fill in the following fields:

Field Value
Folder nameAny name (e.g. "S3Storage")
External storageS3 Storage
AuthenticationAccess key
BucketYour bucket name from the S3 panel
HostnameYour S3 endpoint (e.g. s3.w1.fiberax.com)
PortLeave empty (defaults to 443)
RegionLeave empty
Storage ClassLeave empty
Enable SSL✓ Checked
Enable Path Style✓ Checked
Enable multipart copy✓ Checked
Access KeyYour Access Key from S3 Credentials
Secret KeyYour Secret Key from S3 Credentials
Available forAll users, or select specific users/groups

Important: Enable Path Style must be checked for Fiberax S3. Without it, Nextcloud will fail to connect. Leave Port, Region and Storage Class empty.

5.3 Verify the connection

After saving, a green circle appears next to the mount if the connection is successful. Your users will see the S3 folder in their Files app.

Tip: You can also use S3 Service Accounts instead of your main Access Key. Create a service account in the S3 panel with read-only or read-write access to a specific bucket - this is more secure for shared environments.


Step 6 - Use an External Database (Optional)

By default, Nextcloud uses a local MariaDB database on the same server. This works well for most use cases. However, if you need to scale - for example, when the number of users or files grows significantly - you can move the database to a separate server.

Benefits of an external database:

  • Database gets dedicated CPU and RAM - Nextcloud stays responsive under heavy load
  • Independent scaling - upgrade the database server or Nextcloud server separately
  • Separate backups - easier to restore database and application independently

6.1 Prepare the external database

On your external database server (a separate VPS or Managed MySQL service), create a database and user for Nextcloud:

CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextcloud'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'%';
FLUSH PRIVILEGES;

6.2 Export data from local database

SSH into your Nextcloud server and export the current database:

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
source /root/.nc_credentials
mysqldump -u nextcloud -p"$nc_mysql_pass" nextcloud > /tmp/nextcloud-db.sql

6.3 Import data to external database

mysql -h db.server.ip -u nextcloud -p nextcloud < /tmp/nextcloud-db.sql

6.4 Update Nextcloud configuration

Edit /var/www/nextcloud/config/config.php and change the database settings:

'dbtype'     => 'mysql',
'dbhost'     => 'db.server.ip',
'dbname'     => 'nextcloud',
'dbuser'     => 'nextcloud',
'dbpassword' => 'your_strong_password',

Replace db.server.ip with the IP address of your database server. If both servers are in the same Cloud VDC, use the private IP for better performance and security.

6.5 Verify and disable local database

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
sudo -u www-data php /var/www/nextcloud/occ status

If Nextcloud shows installed: true and works in the browser, the migration is successful. You can then stop the local MariaDB to free up resources:

systemctl stop mariadb
systemctl disable mariadb

Important: Keep the /tmp/nextcloud-db.sql backup until you confirm everything works. Make sure the external database server allows connections from your Nextcloud server's IP address.


Post-Installation

SSL Certificate Renewal

Let's Encrypt certificates are valid for 90 days. Automatic renewal is configured. You can test it with:

certbot renew --dry-run

Updating Nextcloud

When a new version is available, you'll see a notification in the admin panel. You can update through the web interface (Settings → Administration → Overview) or via SSH:

sudo -u www-data php /var/www/nextcloud/updater/updater.phar
sudo -u www-data php /var/www/nextcloud/occ upgrade

We recommend keeping Nextcloud up to date for security and new features.

Desktop and Mobile Clients

Nextcloud offers sync clients for all platforms:

  • Desktop: Windows, macOS, Linux - download at nextcloud.com/install
  • Mobile: Android (Google Play / F-Droid), iOS (App Store)

When setting up the client, enter your Nextcloud URL (e.g. https://yourdomain.com) and log in with your credentials.

Adding Users

Go to Settings → Users to create accounts for your team. Each user gets their own storage space, calendar, contacts and can access shared folders including S3 storage.

Useful Apps

Extend Nextcloud from the built-in App Store (Apps in the top-right menu):

App What it does
Nextcloud OfficeEdit documents, spreadsheets and presentations in browser
TalkAudio/video calls and chat
Calendar (pre-installed)Shared calendars with CalDAV sync
Contacts (pre-installed)Address book with CardDAV sync
DeckKanban-style project boards
NotesMarkdown note-taking

Server Credentials

MariaDB credentials are stored in /root/.nc_credentials. Nextcloud is pre-configured to use them.


Troubleshooting

Problem Solution
Nextcloud doesn't open in browser Check that your domain's A record points to the server IP. Use dnschecker.org to verify
Certbot fails DNS probably hasn't propagated yet. Wait 10-15 minutes and try again
"Access through untrusted domain" Your domain is not in the trusted list. SSH in and run:
sudo -u www-data php /var/www/nextcloud/occ config:system:set trusted_domains 1 --value=yourdomain.com
S3 storage shows red/yellow indicator Check that Enable Path Style is checked. Verify endpoint, bucket name and credentials in your S3 panel
Forgot admin password SSH in and run:
sudo -u www-data php /var/www/nextcloud/occ user:resetpassword admin
Slow performance Redis caching is pre-configured. Check that it's running: systemctl status redis
Can't upload large files PHP limits are pre-configured to 16 GB. If you need to adjust them, edit /etc/php/8.3/fpm/conf.d/99-nextcloud.ini (upload_max_filesize, post_max_size) and restart PHP-FPM: systemctl restart php8.3-fpm
Can't connect via SSH Check that port 22 is not blocked. Try VNC console as a fallback


Was this article helpful?

mood_bad Dislike 0
mood Like 0
visibility Views: 33