How To Deploy Nextcloud AIO with Object Storage

Why Self-Host Nextcloud?

I get excited when I hear or read the phrase, de-google-fi. Maybe even de-icloud-ify. Either way NextCloud is an open-source and often self-hosted Collaboration Platform. It’s got a wide range of features but the most noteable is the File Sync feature. You install an app on your Mobile Phone, tell it what Albums to back up, and tada! You can auto-upload all of your Images, Videos, and Contacts to a server of your choosing. For my friends and family, that is my storage server.

Data sovereignty and flexibility are my primary reasons for…

Designing for Availability

In October 2024 I setup Nextcloud to run in my home lab but…

Deployment Rational

Provision a VPS behind a Cloud Firewall. Only open ports 80, 443, 8080, and 8443. Ensure VPS has dedicated IPv4 and IPv6 addresses.

sudo apt update && sudo apt upgrade -y
sudo apt install s3fs -y
sudo mkdir /mnt/MyBucket
sudo timedatectl set-timezone America/Denver
sudo hostnamectl set-hostname YOUR_HOSTNAME

Create a Linode Object Storage Bucket then Create an Access Key & Secret Key with Read/Write permissions for that specific bucket.

Run the following to append the Access Key and Secret Key into /var/.passwd-s3fs. This password file will be used by fstab to auto-magically mount the Object Storage on system startup.

echo "ACCESS_KEY:SECRET_KEY" | sudo tee /var/.passwd-s3fs > /dev/null
sudo chmod 600 /var/.passwd-s3fs

Append the following to /etc/fstab/ to allow the Object Storage to mount on system startup.

<bucket_name> /mnt/MyBucket fuse.s3fs _netdev,allow_other,use_path_request_style,url=https://your-region.linodeobjects.com,passwd_file=/var/.passwd-s3fs 0 0

Make a note of your deployment parameters. Here are mine, they work perfect for my setup.

sudo docker run --init --sig-proxy=false --name nextcloud-aio-mastercontainer --restart always --publish 80:80 --publish 8080:8080 --publish 8443:8443 --env SKIP_DOMAIN_VALIDATION=false --env NEXTCLOUD_MAX_TIME=3600 --env NEXTCLOUD_MEMORY_LIMIT=4096M --env NEXTCLOUD_UPLOAD_LIMIT=10G --env NEXTCLOUD_ADDITIONAL_APKS="imagemagick nano" --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config --volume /var/run/docker.sock:/var/run/docker.sock:ro nextcloud/all-in-one:latest

2025

Back to top ↑

2024

Javascript Cat!

how-to add oneko.js to the minimal-mistakes jekyll template.

Back to top ↑

2023

Ditching WordPress

Method of Procedure for migrating from WordPress to plain HTML.

Mom Said Redefine Success

In High School I had one dream that stands out. Own a Porsche by the time I was 26. Looking back, I have no idea where this dream came from; because I was ra...

Back to top ↑

2022

Back to top ↑

2021

Back to top ↑