From 25945b8fead989cca09a23983623b63ce36dcc0c Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Mon, 8 Jan 2024 20:11:17 -0600 Subject: feat: total re-write from Emacs org-mode to Zola markdown --- blog/2022-03-23-nextcloud-on-ubuntu.org | 181 -------------------------------- 1 file changed, 181 deletions(-) delete mode 100644 blog/2022-03-23-nextcloud-on-ubuntu.org (limited to 'blog/2022-03-23-nextcloud-on-ubuntu.org') diff --git a/blog/2022-03-23-nextcloud-on-ubuntu.org b/blog/2022-03-23-nextcloud-on-ubuntu.org deleted file mode 100644 index c28da25..0000000 --- a/blog/2022-03-23-nextcloud-on-ubuntu.org +++ /dev/null @@ -1,181 +0,0 @@ -#+title: Installing Nextcloud on Ubuntu -#+date: 2022-03-23 - -** What is Nextcloud? -:PROPERTIES: -:CUSTOM_ID: what-is-nextcloud -:END: -[[https://nextcloud.com/][Nextcloud]] is a self-hosted solution for -storage, communications, editing, calendar, contacts, and more. - -This tutorial assumes that you have an Ubuntu server and a domain name -configured to point toward the server. - -** Install Dependencies -:PROPERTIES: -:CUSTOM_ID: install-dependencies -:END: -To start, you will need to install the packages that Nextcloud requires: - -#+begin_src sh -sudo apt install apache2 mariadb-server libapache2-mod-php7.4 -sudo apt install php7.4-gd php7.4-mysql php7.4-curl php7.4-mbstring php7.4-intl -sudo apt install php7.4-gmp php7.4-bcmath php-imagick php7.4-xml php7.4-zip -#+end_src - -** Set Up MySQL -:PROPERTIES: -:CUSTOM_ID: set-up-mysql -:END: -Next, you will need to log in to MySQL as the =root= user of the -machine. - -#+begin_src sh -sudo mysql -uroot -p -#+end_src - -Once you've logged in, you must create a new user so that Nextcloud can -manage the database. You will also create a =nextcloud= database and -assign privileges: - -#+begin_src sql -CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; -CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -GRANT ALL PRIVILEGES ON nextcloud.* TO 'username'@'localhost'; -FLUSH PRIVILEGES; -quit; -#+end_src - -** Download & Install Nextcloud -:PROPERTIES: -:CUSTOM_ID: download-install-nextcloud -:END: -To download Nextcloud, go the -[[https://nextcloud.com/install/#instructions-server][Nextcloud -downloads page]], click on =Archive File= and right-click the big blue -button to copy the link. - -Then, go to your server and enter the following commands to download, -unzip, and move the files to your destination directory. This example -uses =example.com= as the destination, but you can put it wherever you -want to server your files from. - -#+begin_src sh -wget https://download.nextcloud.com/server/releases/nextcloud-23.0.3.zip -sudo apt install unzip -unzip nextcloud-23.0.3.zip -sudo cp -r nextcloud /var/www/example.com -#+end_src - -** Configure the Apache Web Server -:PROPERTIES: -:CUSTOM_ID: configure-the-apache-web-server -:END: -Now that the database is set up and Nextcloud is installed, you need to -set up the Apache configuration files to tell the server how to handle -requests for =example.com/nextcloud=. - -First, open the following file in the editor: - -#+begin_src sh -sudo nano /etc/apache2/sites-available/nextcloud.conf -#+end_src - -Once the editor is open, paste the following information in. Then, save -and close the file. - -#+begin_src config - - DocumentRoot /var/www/example.com - ServerName example.com - ServerAlias www.example.com - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined - - - Require all granted - AllowOverride All - Options FollowSymLinks MultiViews - Satisfy Any - - - Dav off - - - -#+end_src - -Once the file is saved, enable it with Apache: - -#+begin_src sh -sudo a2ensite nextcloud.conf -#+end_src - -Next, enable the Apache mods required by Nextcloud: - -#+begin_src sh -sudo a2enmod rewrite headers env dir mime -#+end_src - -Finally, restart Apache. If any errors arise, you must solve those -before continuing. - -#+begin_src sh -sudo systemctl restart apache2 -#+end_src - -For the app to work, you must have the correct file permissions on your -=nextcloud= directory. Set the owner to be =www-data=: - -#+begin_src sh -sudo chown -R www-data:www-data /var/www/example.com/nextcloud/ -#+end_src - -** DNS -:PROPERTIES: -:CUSTOM_ID: dns -:END: -If you do not have a static IP address, you will need to update your DNS -settings (at your DNS provider) whenever your dynamic IP address -changes. - -For an example on how I do that with Cloudflare, see my other post: -[[/blog/updating-dynamic-dns-with-cloudflare-api/][Updating Dynamic DNS -with Cloudflare API]] - -** Certbot -:PROPERTIES: -:CUSTOM_ID: certbot -:END: -If you want to serve Nextcloud from HTTPS rather than plain HTTP, use -the following commands to issue Let's Encrypt SSL certificates: - -#+begin_src sh -sudo apt install snapd -sudo snap install core -sudo snap refresh core -sudo snap install --classic certbot -sudo ln -s /snap/bin/certbot /usr/bin/certbot -sudo certbot --apache -#+end_src - -** Results -:PROPERTIES: -:CUSTOM_ID: results -:END: -VoilĂ ! You're all done and should be able to access Nextcloud from your -domain or IP address. - -See the screenshots below for the dashboard and a settings page on my -instance of Nextcloud, using the =Breeze Dark= theme I installed from -the Apps page. - -#+caption: Nextcloud Dashboard -[[https://img.cleberg.net/blog/20220323-installing-nextcloud-on-ubuntu/nextcloud_dashboard.png]] - -/Figure 01: Nextcloud Dashboard/ - -#+caption: Nextcloud Settings -[[https://img.cleberg.net/blog/20220323-installing-nextcloud-on-ubuntu/nextcloud_settings.png]] - -/Figure 02: Nextcloud Security Settings/ -- cgit v1.2.3-70-g09d2