Service - storage - Nextcloud

From Irregularpedia
Revision as of 04:21, 22 September 2024 by Admin (talk | contribs)
Jump to navigation Jump to search

Return to matrix-server-guide

Nextcloud AIO is inspired by projects like Portainer that directly manage the docker daemon by talking to it through the docker socket. This concept allows a user to install only one container with a single command that does the heavy lifting of creating and managing all containers needed to provide a Nextcloud installation with most features included. It also makes updating a breeze and is no longer bound to the host system (and its slow updates), as everything is in containers. Additionally, it is straightforward to handle from a user perspective because a simple interface for managing your Nextcloud AIO installation is provided.

Github Source

For Usage see Usage - Nextcloud

Server Set Up

Create an Instance

!Cloud Instance Setup#Azure

Allow additional inbound ports

3478, 8080,

SSH In to Server

Mount Storage persistently

!Linux Server Storage

Set up a Server for Docker

!Linux Server Initial Setup#With Docker

Set up Git Repo for Nextcloud All In One

<syntaxhighlight lang="bash">cd $HOME git clone https://github.com/nextcloud/all-in-one.git cd $HOME/all-in-one #This is the nextcloud AIO repo directory mv compose.yaml compose.yaml.bk touch compose.yaml</syntaxhighlight>

  1. Set up Nextcloud compose.yaml
version: "3.8"
volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer

services:
  nextcloud:
    image: nextcloud/all-in-one:latest
    restart: always
    container_name: nextcloud-aio-mastercontainer
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - 8080:8080
    networks:
      - nextcloud_network
    environment:
       # Reverse Proxy settings
      - APACHE_PORT=11000
      - APACHE_IP_BINDING=127.0.0.1
      - NEXTCLOUD_DATADIR="/home/user/ncdata"
      - NEXTCLOUD_UPLOAD_LIMIT=50G
      - NEXTCLOUD_MEMORY_LIMIT=512M
      - TALK_PORT=3478
      - SKIP_DOMAIN_VALIDATION=true
  1. Start up compose as a service from the git repository directory

<syntaxhighlight lang="shell">cd $HOME/all-in-one #This is the nextcloud AIO repo directory sudo docker-compose up -d</syntaxhighlight>

  1. Web Setup: Wait a few minutes (approx. 3-7 minutes) and go to the ip address port 8080 and prepare to wait several minutes as you set up the containers
    1. Login with provided password “Open Nextcloud AIO Login.”
    2. Define Domain
    3. Install the latest Nextcloud
    4. Install additional add-ons
  2. Setup Cloudflared
    1. !Reverse Proxy - Cloudflared
    2. On Cloudflareset up a tunnel using http://localhost:11000 and whatever domain or subdomain you need
    3. Go to the Cloudflare established domain on a browser. e.g., https://nextcloud.example.com
      1. Username and Password will be at the top of the Mastercontainer page

Ports Explained

Inbound Rules:

The following ports need to be open for incoming connections:

Port 8080/TCP: This is used to access the Mastercontainer Interface internally. Port 80/TCP: This is used for HTTP redirection to Nextcloud and ACME HTTP-challenge for certificate retrieval for the Mastercontainer. Port 8443/TCP: This is used for secure access to the Mastercontainer Interface when a valid certificate is in place. Port 443/TCP: This port is used by the Apache container for secure HTTP (HTTPS) traffic. Port 443/UDP: This port is used by the Apache container for HTTP/3 traffic, if you want to enable it. Port 3478/TCP and 3478/UDP: These ports are used by the Talk container’s TURN server.