Deploy Nextcloud AIO on Pluralsight

Deploy a trusted Nextcloud site with Docker, dynamic DNS, and tested backups.

Introduction

30 Second Summary

Temporary practice servers are useful for learning. Irreplaceable files need a permanent home.

In this project, you will deploy Nextcloud All-in-One on a Pluralsight Cloud Server with a trusted HTTPS address. A Windows file-sharing test plus an encrypted BorgBackup archive will prove the service is ready to operate.

What You'll Build

You will open your trusted Nextcloud site in Microsoft Edge to see an uploaded proof file load through its public link in a private window.

By the end of this project, you'll have:

  • A trusted Nextcloud site whose administrator overview shows the built-in configuration checker's findings.
  • A working public file-sharing workflow that opens your proof file in an Edge InPrivate window.
  • An encrypted recovery point that protects the deployment before a destructive recovery test.
  • Secret Mission: Delete nextcloud-proof.txt permanently. Recover it from the BorgBackup archive.

Are there any prerequisites?

You need an active Pluralsight subscription with Cloud Servers access. A Windows computer with a browser plus an email address for deSEC activation complete the setup.

Before We Start

Before the hands-on work begins, this checkpoint helps you commit to building a temporary Nextcloud All-in-One deployment with test data only. It keeps the focus on practising the operating pattern without risking irreplaceable personal files.

Prepare the Pluralsight Server and Docker

A Nextcloud All-in-One deployment coordinates several containers on one host. That host needs a supported Linux system with at least 4 GB RAM plus two CPU cores.

You’ll build that foundation with Pluralsight Cloud Servers. You’ll install Docker Engine plus Docker Compose from Docker’s official Ubuntu repository.

In this step, get ready to:
  • Provision an Ubuntu Cloud Server with the required compute capacity.
  • Install Docker Engine plus the Docker Compose plugin from Docker’s official repository.
  • Prove the container runtime works with the required versions.
Create the Pluralsight Cloud Server

The Cloud Server provides the compute that runs every part of your later Nextcloud deployment. This learning server must contain test data only because Pluralsight can permanently delete it after 14 days without a start.

  • Press Cmd+Space on macOS or the Windows key on Windows to open system search.
  • Type Microsoft Edge into system search.
  • Press Enter to open Microsoft Edge.
  • Use the address bar to open Pluralsight.
  • Sign in with the account that has Cloud Servers access.
  • Select Hands-on.
  • Select Cloud Servers.
  • Select Get Started.

Why use a Cloud Server?

A Cloud Server persists across starts during its active period. It also permits the public ports required by the AIO management interface plus the final HTTPS service.

Provisioning can take a few minutes while Pluralsight prepares the host. A short wait after creation is normal.

  • Select + Create New Server.
  • Choose Ubuntu 22.04 - Jammy Jellyfish.
  • Select a server size that displays at least 4 GB RAM plus two CPU cores.
  • Add the tag nextcloud-aio.
  • Create the server.
  • Wait until Pluralsight reports that the server is running.
  • Open the server’s web terminal.
  • Confirm the terminal session identifies you as cloud_user.

Web terminal not responding?

Retry the web terminal in another current browser before changing the server configuration. This separates a browser access problem from a server problem.

If the terminal still does not respond, help me troubleshoot access to my Pluralsight Cloud Server web terminal.

Install Docker from the official repository

A version check selects the correct setup path for your server. On a fresh host, a missing command is an expected result that points to the installation path.

  • Check the Docker Engine plus Docker Compose versions by running these commands:
docker --version
docker compose version --short

What do these checks tell you?

  • The first command reports the installed Docker Engine CLI version.
  • The second command reports the Docker Compose plugin version without extra output.
  • A missing command confirms that this new server still needs Docker installed.
  • Choose the tab that matches the output in your terminal.

✔️ I see version 29.9.3 and 5.7.0

Both tools already match the versions required for this project. The final runtime checks below confirm that Docker can start a container.

ⓧ I see an older version

Older packages can leave the AIO deployment on the wrong runtime base. Docker’s official Ubuntu repository provides the required packages for this server.

  • Complete the repository setup plus package installation by running this block:
  • Enter y if the package installer asks for confirmation.
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

What does this installation block do?

  • The first package commands refresh Ubuntu’s package information plus install the certificate tools needed to trust Docker’s repository.
  • The key setup stores Docker’s signing key at /etc/apt/keyrings/docker.asc.
  • The repository definition tells Ubuntu where to retrieve stable Docker packages for the server’s architecture.
  • The final package installation adds Docker Engine plus the Docker Compose plugin.
  • Wait for the terminal prompt to return.
  • Confirm the package installation finishes without a reported failure.

Package installation failing?

Check that the repository block copied every line through the closing EOF. A missing line can leave Ubuntu without a complete Docker package source.

If the download was interrupted, retry the same block after the terminal regains network access. You can also ask for help with the Docker repository installation.

ⓧ Command not found

The fresh server does not have the Docker CLI yet. The official repository supplies Docker Engine plus the Compose plugin.

  • Complete the repository setup plus package installation by running this block:
  • Enter y if the package installer asks for confirmation.
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

What does this installation block do?

  • The first package commands refresh Ubuntu’s package information plus install the certificate tools needed to trust Docker’s repository.
  • The key setup stores Docker’s signing key at /etc/apt/keyrings/docker.asc.
  • The repository definition tells Ubuntu where to retrieve stable Docker packages for the server’s architecture.
  • The final package installation adds Docker Engine plus the Docker Compose plugin.
  • Wait for the terminal prompt to return.
  • Confirm the package installation finishes without a reported failure.

Package installation failing?

Check that the repository block copied every line through the closing EOF. A missing line can leave Ubuntu without a complete Docker package source.

If the download was interrupted, retry the same block after the terminal regains network access. You can also ask for help with the Docker repository installation.

Verify Docker and Compose

The final checks prove that the Docker service can download plus run a container. They also confirm that both installed versions match the project’s expected environment.

Before you run these checks, which command do you think provides the strongest proof that the container runtime works?

  • Test the runtime plus display both installed versions by running these commands:
sudo docker run hello-world
docker --version
docker compose version --short

What should you see?

  • The first command downloads a test image before printing Docker’s confirmation message.
  • The Docker Engine check reports version 29.9.3.
  • The Docker Compose check reports version 5.7.0.

Docker test not completing?

If the test cannot reach the Docker service, confirm that the package installation returned to the prompt without a failure. Retry the verification commands after the installation finishes.

If either version differs, return to the setup tab that matches your result. You can also ask for help with the Docker verification output.

Your Cloud Server now has a verified Docker runtime. Next, you’ll use it to launch the AIO management layer.

Launch the AIO Management Layer

Your Docker host passed its checks in the previous step. It is ready to run the management layer for your cloud.

Nextcloud All-in-One uses a mastercontainer to orchestrate the rest of the stack. In this step, you'll define that layer with Docker Compose before opening its management interface.

In this step, get ready to:
  • Define the AIO mastercontainer in compose.yaml.
  • Confirm the mastercontainer reaches a running state.
  • Sign in to the AIO management interface.
Create the Compose file

The compose.yaml file describes the mastercontainer's image. It also defines the storage mounts and network ports that AIO needs.

  • Return to the Pluralsight web terminal from the previous step.
  • Create compose.yaml in the cloud_user home directory by running this command:
nano compose.yaml

What does this command do?

The command opens compose.yaml in the terminal's text editor. Nano creates the file when you save it.

  • Paste this configuration into compose.yaml.
name: nextcloud-aio
services:
  nextcloud-aio-mastercontainer:
    image: ghcr.io/nextcloud-releases/all-in-one:latest
    init: true
    restart: always
    container_name: nextcloud-aio-mastercontainer
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
      - /var/run/docker.sock:/var/run/docker.sock:ro
    network_mode: bridge
    ports:
      - "80:80"
      - "8080:8080"
      - "8443:8443"

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer

Why This Compose File?

  • The nextcloud-aio-mastercontainer service runs the AIO management layer from its documented image channel.
  • The nextcloud_aio_mastercontainer volume preserves the management configuration outside the container.
  • The read-only /var/run/docker.sock mount lets the mastercontainer orchestrate the other AIO containers.
  • The three port mappings expose the web services required by this deployment.

A YAML Compose file keeps this configuration in one repeatable definition. That makes future changes easier to review.

  • Press Ctrl+O to save the file.
  • Press Enter to confirm the filename.
  • Press Ctrl+X to exit Nano.

Use the tabs below to compare your saved file with the complete configuration.

✔️ Awesome, I've got everything!

Great. Your compose.yaml file is ready to launch the management layer.

ⓧ I'd like to double check the full code

name: nextcloud-aio
services:
  nextcloud-aio-mastercontainer:
    image: ghcr.io/nextcloud-releases/all-in-one:latest
    init: true
    restart: always
    container_name: nextcloud-aio-mastercontainer
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
      - /var/run/docker.sock:/var/run/docker.sock:ro
    network_mode: bridge
    ports:
      - "80:80"
      - "8080:8080"
      - "8443:8443"

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer

Having trouble saving the file?

  • Confirm that Nano still shows compose.yaml as the filename before saving.
  • Compare every indentation level with the full-file reference above.

Help me check my Compose file for formatting problems.

Start the mastercontainer

Detached mode keeps the container running after the command finishes. This returns control of the web terminal so you can inspect the service.

  • Start the AIO mastercontainer in the background by running this command:
sudo docker compose up -d

What does this command do?

Docker Compose reads compose.yaml from the current directory. The -d flag starts the service in the background.

Docker also creates the named configuration volume from your file. The mastercontainer can now keep its configuration across container restarts.

Before you check, predict the state that the mastercontainer has reached.

  • Inspect the Compose project by running this command:
sudo docker compose ps

What does this command show?

The command lists the containers associated with the Compose project. It includes each container's current state and exposed ports.

You'll see nextcloud-aio-mastercontainer in a running state. Its listed ports include 80, 8080, and 8443.

Mastercontainer not running?

  • Confirm that the terminal is in the cloud_user home directory containing compose.yaml.
  • Compare the service name and indentation with the full-file reference above.
  • Check that the previous start command finished before running the status command again.

Help me troubleshoot my AIO mastercontainer.

Open the AIO management interface

Port 8080 exposes the AIO management page. This initial page uses a self-signed HTTPS certificate.

  • Return to the Pluralsight Cloud Server details page.
  • Copy the server's public IPv4 address.
  • Record the address here: your server public IPv4 address.

Before opening the address, predict what the browser will show first.

  • Open a new browser tab.
  • Reach the AIO management page by entering this address:
https://[[SERVER_PUBLIC_IPV4="your server public IPv4 address"]]:8080

Why does the browser show a warning?

The browser does not trust the self-signed certificate used by the management page on port 8080. This warning is the intended limitation of the management-only state you launched.

Keep using the server's public IPv4 address for this port. A domain should not be used for the port 8080 management page.

  • Use the browser's option for viewing advanced details.
  • Continue to the self-signed management page.

You'll see the AIO passphrase page. This proves that the mastercontainer is reachable from your Windows browser.

The AIO passphrase controls access to the management interface. Keep it private because anyone with this value can manage the deployment.

  • Save the displayed AIO passphrase in a temporary private location.
  • Select Open Nextcloud AIO login.
  • Enter the saved AIO passphrase in the login form.
  • Submit the login form.

You'll see the signed-in AIO management interface. The mastercontainer is now running and accepting management requests.

Can't reach the AIO page?

  • Confirm that the address uses the server's current public IPv4 address.
  • Confirm that the address starts with https:// and ends with :8080.
  • Run the Compose status command again to confirm the mastercontainer remains active.

Help me troubleshoot access to the AIO management page.

That's the management layer live. Next, you'll turn this dashboard into a trusted Nextcloud site.

Configure Trusted HTTPS

Your Nextcloud All-in-One management layer is now running through its IP-only page. Its self-signed certificate makes that page suitable for management access.

This step pairs dynamic DNS from deSEC with trusted HTTPS before any files enter the service. You finish with a stable Nextcloud sign-in address that Microsoft Edge trusts.

In this step, get ready to:
  • Register a free dynamic-DNS domain through deSEC.
  • Configure the focused AIO container set.
  • Open the Nextcloud sign-in page over trusted HTTPS.
Register a dynamic DNS domain

Pluralsight assigns a new public IPv4 address whenever the Cloud Server starts. Dynamic DNS keeps a domain pointed at that changing address.

The built-in deSEC flow creates a free *.dedyn.io domain for this purpose. AIO maintains the DNS record when the server address changes.

  • In the AIO interface from earlier, expand Don't have a domain? Get a free one from deSEC.
  • Enter your email address.
  • Enter an optional subdomain slug if you want to influence the assigned name.
  • Select Register free domain via deSEC.
  • Open the activation message sent to your email address.
  • Complete the account activation from that message.
  • Return to the AIO management interface from earlier.
  • Confirm that AIO has selected the new *.dedyn.io domain.

The selected domain gives your changing Cloud Server address a stable name. AIO can now use that name for the user-facing service.

  • Record the assigned address here: https://<subdomain>.dedyn.io.
Configure the focused deployment

Optional services add image downloads and consume more server resources. This deployment keeps the focus on the core Nextcloud service.

  • Keep Nextcloud Office disabled.
  • Keep Talk disabled.
  • Keep ClamAV disabled.
  • Keep Imaginary disabled.
  • Keep Fulltextsearch disabled.
  • Keep Whiteboard disabled.
  • Set your time zone.

Expect the first initialization to take around 10 minutes or more.

  • Select Start containers.
  • Wait for the required images to download.
  • Wait for the initial installation to finish.

You'll see the required Nextcloud containers finish initialization. AIO then displays the Nextcloud administrator credentials.

Saving a second credential set can feel fiddly. Keeping it separate from the AIO passphrase makes each login unambiguous.

  • Save the displayed Nextcloud administrator credentials in a private location separate from the AIO passphrase.

That is the slow part complete. Your required Nextcloud containers are now initialized.

Still waiting for initialization?

  • Keep the Cloud Server session running while AIO downloads the required images.
  • Return to the domain section in AIO.
  • Confirm that the assigned domain remains selected.

Ask for help with an installation that remains incomplete: Help me troubleshoot my Nextcloud AIO initialization.

Verify the trusted Nextcloud address

The browser check verifies the user-facing service independently of the AIO management port. It also confirms that the domain reaches the initialized Nextcloud stack.

Before you open the address, what do you expect the browser to show? Your prediction is ready for the browser check.

  • Open a new tab in Microsoft Edge from earlier.
  • Paste https://<subdomain>.dedyn.io into the address bar.
  • Press Enter.

You'll see the Nextcloud sign-in page at your assigned address. Microsoft Edge shows trusted HTTPS without the port 8080 certificate warning.

Trusted sign-in page not loading?

  • Use the assigned deSEC address without adding port 8080.
  • Return to the AIO interface from earlier.
  • Confirm that the initial installation has finished.

Ask for help with the browser check: Help me troubleshoot my trusted Nextcloud address.

You have moved Nextcloud from a self-signed management page to a trusted user-facing address. Next, you'll prove the service with a file workflow that ends in a public share.

Test Files, Sharing, and Administration

Your trusted HTTPS Nextcloud site is live. However, the green container dashboard only proves that the services started.

Now you will test the path a Windows user actually follows in Microsoft Edge. A local proof file will show that uploads work.

An InPrivate preview will show that the public link works outside your administrator session. The configuration checker will expose findings that a green dashboard cannot show.

In this step, get ready to:
  • Create a plain-text proof file on Windows.
  • Prove public sharing from an Edge InPrivate window.
  • Review the administrator configuration checker's findings.
Create a proof file on Windows

A plain-text file gives every check one recognisable object. Windows Notepad keeps its contents free from document formatting.

  • Press the Windows key to open the Windows search bar.
  • Type Notepad into the search bar.
  • Select Notepad from the results.
  • Use another plain-text editor already present on Windows if Notepad does not appear.

You should see a blank document where you can type the proof message.

  • Type My Nextcloud deployment works. into the blank document.
  • Select the File menu.
  • Select Save As.
  • Choose Desktop as the save location.
  • Enter nextcloud-proof.txt in the File name box.
  • Select OK.

Your Notepad title bar should show nextcloud-proof.txt. You now have a clean proof file for every browser check ahead.

Proof File Missing or Misnamed?

  • Use Save As again if the Notepad title bar shows a different filename.
  • Enter nextcloud-proof.txt exactly in the File name box.
  • Use another plain-text editor already installed on Windows if Notepad is unavailable.

Help me create the proof file with the correct filename and plain-text content.

Upload and share the proof file

Uploading proves that Nextcloud can store a file from your Windows device. Opening a public link in a separate browser session proves that another visitor can retrieve it.

  • Return to the trusted Nextcloud sign-in page from earlier.
  • Sign in with your saved Nextcloud administrator credentials.
  • Select Files.
  • Select the + button.
  • Select Upload file.
  • Choose Desktop in the Windows file picker.
  • Select nextcloud-proof.txt to upload it.

You should now see nextcloud-proof.txt in your Files list. Your trusted site can now receive files from Windows.

What Does a Public Link Prove?

A public link lets a visitor open the shared file without using your administrator session. Testing it in an InPrivate window gives you a separate browser session for that proof.

  • Select the Share icon for nextcloud-proof.txt.
  • Create a public link from the sharing panel.
  • Copy the generated public link here: your Nextcloud public link.

Before you test the link, do you think the file will open without your administrator session?

  • Press Ctrl+Shift+N to open a new InPrivate window in Microsoft Edge.
  • Paste your Nextcloud public link into the address bar.
  • Press Enter.

You should see a preview of nextcloud-proof.txt containing My Nextcloud deployment works. That preview proves the upload and public-sharing path works end to end.

Public Preview Not Opening?

  • Check that the InPrivate address bar contains the generated public link.
  • Return to your administrator session if the preview reports that the file is unavailable.
  • Confirm that nextcloud-proof.txt still appears in Files.

Help me troubleshoot my Nextcloud public file preview.

Review the administrator overview

The administrator overview reports configuration findings from the running service. Recording those findings preserves the evidence without introducing an unverified change.

Before you open the Overview page, which findings do you think this new deployment might surface?

  • Return to your signed-in administrator session.
  • Open the profile menu.
  • Select Administration settings.
  • Select Overview.

You should see the built-in configuration checker's findings at the top of the administrator page.

Why Record Warnings First?

Configuration warnings identify items that may need investigation. A written record lets you verify the recommended fix before changing a working deployment.

  • Read each finding shown by the configuration checker.
  • Record every warning in a private note.
  • Leave the reported settings unchanged during this project.

The configuration checker should remain visible in Overview. If it reports warnings, your private note should contain each one.

Your upload, public link, and administrator review now prove that the service works beyond its container dashboard. Next, you will protect this working state with an encrypted recovery point.

Create an Encrypted Recovery Point

Your trusted Nextcloud site now stores your proof file. Its public link confirms that other people can retrieve it.

A self-hosted service is incomplete when you cannot recover it after deletion or an update. In this step, you'll use Nextcloud All-in-One to create an encrypted BorgBackup archive in a dedicated Docker volume.

In this step, get ready to:
  • Prepare a dedicated Docker volume for backup storage.
  • Create an encrypted BorgBackup archive through AIO.
  • Store the backup encryption key away from the Cloud Server.
Prepare dedicated backup storage

A Docker volume stores data outside the lifecycle of an individual container. The dedicated volume gives AIO a stable location for its backup archive.

  • Switch back to the cloud_user terminal from earlier.
  • Create the dedicated backup volume by running this command:
sudo docker volume create nextcloud_aio_backupdir

What does this command do?

This command creates a named Docker volume called nextcloud_aio_backupdir. AIO can use that stable name as its backup destination.

Before you check, do you expect the new volume to appear alongside the volumes that already hold your Nextcloud data?

  • List the Docker volumes by running this command:
sudo docker volume ls

What does this command show?

This command lists every volume known to Docker on the Cloud Server. The output confirms that the backup destination exists before AIO tries to use it.

Good progress. You'll see nextcloud_aio_backupdir in the volume list.

Backup volume missing?

  • Rerun the volume creation command above if the name does not appear.
  • Check that the volume name uses underscores in every position.

Need another pair of eyes? Help me troubleshoot why my Docker backup volume is missing.

Create the encrypted archive

The AIO management interface coordinates the backup across the running Nextcloud stack. It places the resulting archive in the volume you just created.

  • Return to the Nextcloud administrator session from earlier.
  • Return to Overview under Administration settings.
  • Select the button at the top of Overview to return to the AIO login.
  • Sign in using your saved AIO passphrase.
  • Enter nextcloud_aio_backupdir as the backup location.
  • Select Create Backup.

You'll see the backup enter progress. The interface also displays the encryption key required for restoration.

What does the backup contain?

AIO builds an encrypted BorgBackup archive from the service state it manages.

  • The Nextcloud database.
  • The files stored in Nextcloud.
  • The mastercontainer configuration.

Backup not starting?

  • Confirm that nextcloud_aio_backupdir still appears in the Docker volume list.
  • Check that the backup location matches the volume name exactly.

Need help with the backup workflow? Help me troubleshoot why my AIO backup is not starting.

Complete the recovery point

The encryption key is the recovery detail you cannot recreate later. Give it extra care because restoration is impossible without it.

  • Copy the displayed backup encryption key.
  • Save the key in a secure location on your Windows device away from the Cloud Server.

Backup duration depends on the amount of stored data. A quiet progress screen is expected while this test archive completes.

  • Wait for the backup operation to finish.
  • Confirm that the new archive appears as completed in the AIO backup list.
  • Return to the cloud_user terminal from earlier.

Before the final check, what two pieces of evidence should prove that the storage location and encrypted archive both exist?

  • Confirm that the dedicated backup volume still exists by running this command:
sudo docker volume ls

What does this final check prove?

This final volume check proves that Docker still holds the storage location used by AIO. It verifies the host-side half of your recovery point.

You'll see nextcloud_aio_backupdir in the terminal output.

  • Return to the AIO backup list from earlier.
  • Confirm that the completed archive remains visible in the list.

That's the recovery point secured. Docker holds the backup volume while AIO shows the completed encrypted archive.

Archive still in progress?

  • Allow the current backup operation to finish before starting another one.
  • Refresh the AIO backup list after the operation completes.

Need help interpreting the backup state? Help me troubleshoot an AIO backup that has not completed.

What this recovery point proves

This is a same-host recovery drill. It proves that you can create an encrypted archive for the AIO restoration workflow.

The service and archive still share one Cloud Server. Durable disaster recovery stores another backup on a separate device or in a remote Borg repository.

Secret mission

Prove the Backup by Restoring a Deleted File

Your encrypted archive is complete. Delete the proof file from both file locations. Recover it through the AIO restore workflow.

Clean Up Your Resources

Clean Up Your Resources

Choose whether to keep the deployment available, pause its running services, or delete it completely. This project costs $0 additional with your existing Pluralsight access.

Resources you used:

  • One Pluralsight Cloud Server running Ubuntu 22.04 LTS with the tag nextcloud-aio.
  • The Nextcloud All-in-One containers and persistent Docker volumes on the Cloud Server.
  • The nextcloud_aio_backupdir volume containing the encrypted BorgBackup archive.
  • The compose.yaml deployment file in the cloud_user home directory.
  • The recovered nextcloud-proof.txt test file stored in Nextcloud.
  • One activated deSEC account.
  • One assigned dynamic DNS domain at <subdomain>.dedyn.io.

Keep everything running

No teardown is needed. Choose this if you are continuing to practise with the Nextcloud deployment.

  • Keep only disposable test data in Nextcloud.
  • Start the Cloud Server at least once every 14 days to prevent inactivity deletion.
  • Keep the backup encryption key stored away from the Cloud Server.

Each running session ends after four hours. The Cloud Server can be started again for another session.

Pause - I'll come back to this later

Pausing stops the active Nextcloud services while preserving the Cloud Server and its stored data. Choose this when you plan to return later.

Pause the deployment:

  • Switch back to the AIO management interface.
  • Sign in with your saved AIO passphrase if prompted.
  • Select Stop containers.
  • Wait until AIO shows the required containers as stopped.
  • Return to Cloud Servers in Pluralsight.
  • Select the server with the nextcloud-aio tag.
  • Use Stop Server to end the running session.

Resume the deployment later:

  • Start the server from Cloud Servers in Pluralsight.
  • Return to the AIO management interface.
  • Sign in with your saved AIO passphrase if prompted.
  • Select Start containers.

Delete - I don't want to use this again

Remove every project resource when you have finished the recovery practice. This option is permanent, so the checks below protect anything you meant to keep.

Delete the Cloud Server:

  • Confirm that the Cloud Server holds no personal file or only copy of data you need.
  • Confirm that you are ready to discard the local BorgBackup archive.
  • Return to Cloud Servers in Pluralsight.
  • Select the server with the nextcloud-aio tag.
  • Select Delete Server.
  • Confirm the deletion in the prompt.

Pluralsight permanently removes all data on the deleted server. This includes the AIO containers, Docker volumes, compose.yaml, nextcloud-proof.txt, and the local backup archive.

Delete the deSEC account:

  • Sign in to deSEC.
  • Open the More menu.
  • Select Delete Account.

Deleting the deSEC account removes its domains, DNS records, and tokens. The <subdomain>.dedyn.io address stops belonging to the deleted account.

Nice Work!

Nice Work!

Outstanding work! You deployed a trusted HTTPS Nextcloud All-in-One service on a Pluralsight Cloud Server. You also proved that its encrypted backup can recover a deleted file.

You've learned how to:

  • Deploy a production-style Nextcloud AIO stack with Docker Compose. Publish the service through deSEC dynamic DNS. Confirm that its HTTPS connection is trusted.
  • Prove file sharing by uploading nextcloud-proof.txt. Open its public link in a private browser window. Review the configuration checker from the administrator overview.
  • Create an encrypted BorgBackup archive in a dedicated Docker volume. Store the backup encryption key away from the Cloud Server.
  • Complete the optional Secret Mission by deleting nextcloud-proof.txt. Restore it from the BorgBackup archive. Confirm that it contains My Nextcloud deployment works.

Ready to quiz yourself?