7.9 KiB
Alias | Tag | Date | DocType | Hierarchy | location | Performance | Characteristics | Disk | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
2021-09-03 | Server | NonRoot |
|
|
|
|
Parent:: mfxm Website Scope, Storage and Syncing
name Edit Server parameters
type command
action MetaEdit: Run MetaEdit
id EditMetaData
^button-CloudServerEdit
name Save
type command
action Save current file
id Save
^button-CloudServerSave
Cloud Server
title: Summary
collapse: open
Server for Cloud storage and device syncing.
style: number
Server parameters
title: Dashboard access
[https://alphavps.com/clients/](https://alphavps.com/clients/)
title: Address
The service will be located under **[cloud.mfxm.fr](https://cloud.mfxm.fr)** .
Service
title: Nextcloud
[[Nextcloud]] is a cloud storage management service offering a variety of Apps to manage data online.
Installation guide
title: Installation
[Tutorial](https://www.techrepublic.com/article/how-to-install-nextcloud-22-on-ubuntu-server-20-04/)
Installed dependencies
Apache2
Webserver for Nextcloud. Apache2 has notorious issues with over-clogging memory usage (topping 100% of memory usage). In order to minimise memory usage, #APCu has been installed as a cache manager. In addition, Appache has been paired with:
- php-fpm for php7.4, enabling faster interaction between apache and backend.
- the 'event' multi-processing module (MPM) enabling decluttering of processing between ports & Apache
All relevant dependencies have been installed and the set-up tested. A comprehensive tutorial on the MPM switch can be found here or here.
php.ini files can be found at:
~~~
/etc/php/7.4/fpm/php.ini
/etc/php/7.4/apache2/php.ini
/etc/php/7.4/cli/php.ini
~~~
Certbot
Provides SSL certification from Let's Encrypt. Installation dependencies are different from Nginx and explained here
MySQL
Nothing particular to note on MySQL apart from initial set-up and user management.
Configuration file is under:
~~~
/etc/mysql/mysql.conf.d/mysqld.cnf
~~~
title: Optimise memory usage of mysql
~~~
[mysqld]
% Disable performance schema to hugely reduce RAM usage
performance_schema = OFF
~~~
In order to restart mysql, the command is:
~~~bash
sudo service mysql restart
~~~
Security
Program name | Type | Description |
---|---|---|
fail2ban | Daemon | Blocks suspicious attempts to login |
unattended-upgrades | Program | Enables automatic updates of installed programs and OS |
logwatch | Daemon | Monitors activity on server and sends activity logs |
Postfix
Mail Transfer Agent. Configuration is standard to allow for emails to be sent by programs / deamons / Nextcloud or others. Such a Configuring Postfix is required for every server to work correctly.
APCu
Memory caching addon for Nextcloud. Memory caching management is provided by Nextcloud and needs to be set up as a system cron job. After installing APCu, the webserver needs to be restarted and the cron job defined:
- Define the cronjob
~~~bash
sudo crontab -u www-data -e
~~~
- Add cronjob
~~~
\*/5 * * * * php -f /var/www/html/nextcloud/cron.php --define apc.enable_cli=1
~~~
- Verify that the cron job is added
~~~bash
sudo crontab -u www-data -l
~~~
SVG support
SVG support is installed in the form of a package.
~~~bash
sudo apt-get update -y
sudo apt-get install -y libmagickcore-6.q16-6-extra
~~~
UFW
Firewall management, see Configuring UFW for more details.
Server-side monitoring
Monit is a process and daemon monitoring tool. More information on operating the software can be found Configuring Monit.
List of monitored services:
- System
- SSH
- Fail2ban
- cron
- Postfix
- MySQL
- Apache
Service management
Nextcloud offers two alternatives for manaing the service:
- An admin webpanel
- A command line tool
Admin webpanel
Accessed through login into the service with admin credentials. Sertings offer an admin section.
Nextcloud command line tool
From the server's command line, Nextcloud offers the ability to perform some tasks like user management.
Introduction to the command
Nextcloud offers a command-line tool which permission needs to be set to "executable". It is located here:
~~~
/var/www/html/nextcloud/occ
~~~
The tool needs to be invoked by the "www-data" user and compiled with PHP:
~~~bash
sudo -u www-data php /var/www/html/nextcloud/occ
~~~
Generic commands
Nextcloud offers a simple description of all commands here
Data transfer
After each data transfer, run the following command to refresh Nextcloud's webapp:
~~~bash
sudo -u www-data php /var/www/html/nextcloud/occ files:scan --all
~~~
More info can be found here
Cloud2Cloud
title: Data transfer tool
[rclone](https://autoize.com/moving-data-from-cloud-to-cloud-with-rclone/)
rClone uses a simple config interface to configure remote hosts (including Nextcloud):
~~~bash
rclone config
~~~
The config data can be password-protected for security.
- Copy data
~~~bash
rclone copy source:'datapath' dest:'datapath'
~~~
- Sync data
~~~bash
rclone sync source:'datapath' dest:'datapath'
~~~
Upload from local
[Curl](https://cylab.be/blog/33/how-to-upload-your-files-to-nextcloud-file-drop-using-curl)
[Nextcloud help](https://help.nextcloud.com/t/how-to-upload-and-share-file-automatically/19202)
Directories
- Local file structure
~~~
/var/www/html/nextcloud/data/USERNAME/files
~~~
- Webdav file structure
~~~
/remote.php/dav/files/USERNAME
~~~
Nextcloud server hardening
title: Nextcloud tutorial
[Here](https://docs.nextcloud.com/server/latest/admin_manual/installation/harden_server.html)
Pricing
Cloud Server | One-off cost | Recurring subscription p.a. |
---|
**Server hosting**
| | *€15* ^CloudServerCost
Tasks & Further steps
- Server Cloud: Backup server 🔁 every 6 months on the 1st Tuesday 📅 2021-09-15
- Server Cloud: Backup server 🔁 every 6 months on the 1st Tuesday ✅ 2021-09-14
- Set-up landing page