What is Nextcloud?
Nextcloud is a suite of client-server software for creating and using file hosting services. It is enterprise-ready with comprehensive support options. Being free and open-source software, anyone is allowed to install and operate it on their own private server devices. -https://en.wikipedia.org/wiki/Nextcloud
What is ONLYOFFICE Document Server?
ONLYOFFICE Document Server is an online office suite comprising viewers and editors for texts, spreadsheets and presentations, fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time. -https://github.com/ONLYOFFICE/DocumentServer
Installing Docker
Log into the Linux based device
Run the following commands in the terminal
# install prerequisites sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg-agent -y # add docker gpg key curl -fsSL https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release)/gpg | sudo apt-key add - # add docker software repository sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release) $(lsb_release -cs) stable" # install docker sudo apt install docker-ce docker-compose containerd.io -y # enable and start docker service sudo systemctl enable docker && sudo systemctl start docker # add the current user to the docker group sudo usermod -aG docker $USER # reauthenticate for the new group membership to take effect su - $USER
Running Nextcloud and ONLYOFFICE
Now that Docker is installed, run the following commands to setup the Nextcloud Docker container and run it
# create working directories mkdir ~/docker/mariadb -p && mkdir ~/docker/nextcloud -p && mkdir ~/docker/onlyoffice/{logs,data,lib,db} -p # set owner of working directories sudo chown "$USER":"$USER" /home/"$USER"/docker -R # create nextcloud network docker network create nextcloud # run the mariadb docker container docker run -d --name mariadb --network nextcloud --network-alias db -e MYSQL_ROOT_PASSWORD=r00tp@ss -e MYSQL_USER=nextcloud_rw -e MYSQL_PASSWORD=N3xtCl0ud! -e MYSQL_DATABASE=nextcloud -v /home/$USER/docker/mariadb:/var/lib/mysql --restart=unless-stopped mariadb:latest # run the nextcloud docker container docker run -d --name nextcloud --network nextcloud -p 8080:80 -e MYSQL_HOST=db -e MYSQL_USER=nextcloud_rw -e MYSQL_PASSWORD=N3xtCl0ud! -e MYSQL_DATABASE=nextcloud -v /home/$USER/docker/nextcloud:/var/www/html --restart=unless-stopped nextcloud:latest # generate a 32 character random string echo $(head /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9' | head -c 32) # copy the output string to the clipboard # run the onlyoffice document server container docker run -d --name onlyoffice --network nextcloud -p 8081:80 -v ~/docker/onlyoffice/logs:/var/log/onlyoffice -v ~/docker/onlyoffice/data:/var/www/onlyoffice/Data -v ~/docker/onlyoffice/lib:/var/lib/onlyoffice -v ~/docker/onlyoffice/db:/var/lib/postgresql -e JWT_ENABLED=true -e JWT_SECRET='<% random string from clipboard %>' --restart=unless-stopped onlyoffice/documentserver
Open a web browser and navigate to http://DNSorIP:8080
The Nextcloud setup screen should be displayed
Enter a username and password to create an admin account
Click the Install button
Choose to Install recommended apps or select Cancel to skip them
Welcome to Nextcloud
Setting Up ONLYOFFICE
Click the user avatar > Apps
Select Office & text from the left navigation
Scroll down to find the OnlyOffice app > Click Download and enable
After the download completes, click the user avatar > Settings
Click ONLYOFFICE in the left navigation
Enter the document server URL (http://DNSorIP:8081) in the Document Editing Service address field and paste the JWT_SECRET generated earlier into the Secret Key field > Click Save
Once Nextcloud has connected to the document server successfully, click on Files in the top navigation
Click the + icon > Select New Document
Give the document a name and press Enter
The new document should load in a word processor inside the web browser and be ready for editing
Documentation: https://hub.docker.com/_/nextcloud , https://hub.docker.com/r/onlyoffice/documentserver