Skip to content
Snippets Groups Projects
Commit 557b0a01 authored by Marco Lorini's avatar Marco Lorini
Browse files

add nextcloud tutorial

parent 2c36941f
No related branches found
No related tags found
No related merge requests found
Deploy Nextcloud on a VM
========================
This guide describe the steps to deploy and configure a Nextcloud instance on a Ubuntu 20.04.
Create VM with Ubuntu 20.04
---------------------------
To create a VM on OpenStack, you can follow this guide: https://cloud.garr.it/compute/quick-vm/
.. note::
When you are in the "Select Boot Source" step, choice Ubuntu 20.04 image.
Create Security Group to open SSH, HTTP and HTTPS ports.
Attach a Nextcloud data volume to VM
------------------------------------
Now we want to create and attach a secondary volume to VM for Nextcloud data.
To create and attach a new volume you can follow this steps:
- login to the OpenStack dashboard: https://dashboard.cloud.garr.it
- create a secondary volume: from the left menù "Volumes -> Volumes -> Create Volume"
.. note::
When you create a volume you must select the "Capacity" type.
- attach the new volume to VM: from volume menù, click on "Manage Attachments" and select the VM
- mount volume on VM::
- SSH access to the VM:
$ ssh -i .ssh/<ssh-key> ubuntu@<ip-vm>
- root user::
$ sudo su -
- check the /dev/vdb exist::
$ fdisk -l
- create partition, after command follow this step -> "gpt - new (enter) - write (yes) - quit"::
$ cfdisk /dev/vdb
- check partition::
$ fdisk -l
- format partition::
$ mkfs.ext4 /dev/vdb1
- create Nextcloud diectory::
$ mkdir /media/nextcloud
- mount partition on Nextcloud directory::
$ mount /dev/vdb1 /media/nextcloud
- check mount::
$ df -h
- save the informations needed to mount partiotion -> add this row "/dev/vdb1 /media/nextcloud ext4 defaults 0 0"::
$ vi /etc/fstab
- reboot VM::
$ reboot
Nextcloud installation
----------------------
- SSH access to the VM:
$ ssh -i .ssh/<ssh-key> ubuntu@<ip-vm>
- root user::
$ sudo su -
- installation::
$ snap install nextcloud
- check installation::
$ snap get nextcloud php
$ snap services nextcloud
$ snap connect nextcloud:removable-media
.. note::
It is possible to maintain the 'php.memory-limit' value to 512M.
- additional useful commands to Nextcloud installation info::
$ snap changes nextcloud
$ snap info nextcloud
$ snap connections nextcloud
Create admin user
-----------------
You can create the administrator user from the Nextcloud web interface. By entering the public IP of the VM, the web interface is accessed and the admin credentials can be configured.
In this case you are not using a secure connection, it is better to configure the admin user via CLI as follows:
- configure admin user::
$ nextcloud.manual-install admin <password>
- check trusted domain::
$ nextcloud.occ config:system:get trusted_domains
- add trusted domain::
$ nextcloud.occ config:system:set trusted_domains 1 --value=<domain>
Change Nextcloud data directory
-------------------------------
- Stop Nextcloud service::
$ snap stop nextcloud
- edit Nextcloud config and change the 'datadirectory' value with '/media/nextcloud/data'::
$ vim /var/snap/nextcloud/current/nextcloud/config/config.php
- copy data in the new directory::
$ mv /var/snap/nextcloud/common/nextcloud/data /media/nextcloud
- start Nextcloud service::
$ snap start nextcloud
Create DNS record
-----------------
Now it is necessary to create a DNS record 'A' to reach the service using a DNS name and to configure the certificate.
The DNS name must be the same as previously added in the trusted domain.
Create certificate with Let's Encrypt
-------------------------------------
- Create certificate by Nextcloud::
$ ufw allow 80,443/tcp
$ nextcloud.enable-https lets-encrypt
Now you can access to Nextcloud from your browser.
Install and configure server mail
---------------------------------
- Change VM hostname with your domain::
$ vi /etc/hostname
- in "/etc/hosts" add a row with VM private IP and hostname (<private-ip> <hostname>)::
$ vi /etc/hosts
- update::
$ apt update
- install mailutils, when requerid select 'internet-site' and configure complite domain::
$ apt install mailutils
- edit postfix configuration, edit 'inet_interfaces' from 'all' to 'loopback-only' and 'myhostname' with your domain::
$ vi /etc/postfix/main.cf
- restart postfix::
$ service postfix restart
Now you can run a test to verify the correct functioning of the mail server::
$ echo "This email confirms that Postfix is working" | mail -s "Testing Posfix" <your-email>
Configure mail server in Nextcloud
----------------------------------
Access to Nextcloud from web interface and from the upper right menù go to "Personal settings -> Basic settings".
Configures the server settings as follows::
Send mode: SMTP
Encryption: None
From address: noreply @ <domain>
Authentication method: None
Server address: localhost
Port: 25
To test the email send function, go to 'Personal info' (left menù) and add your email.
Now return to the email settings and click on "Send email".
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment