Skip to content

Instantly share code, notes, and snippets.

@yottu
Last active November 5, 2018 07:36
Show Gist options
  • Save yottu/fa5051355341616ffdfddf4b80986c3c to your computer and use it in GitHub Desktop.
Save yottu/fa5051355341616ffdfddf4b80986c3c to your computer and use it in GitHub Desktop.
Installing nextcloud 13.0 on Debian GNU/Linux 9.3 (stretch) [Apache2/postgresql/letsencrypt]
### Written: 2018-02-18
### Updated: -
### Get, verify and unpack, delete and move the distribution package (13.0)
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.0.tar.bz2
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.0.tar.bz2.sha256
sha256sum -c nextcloud-13.0.0.tar.bz2.sha256 < nextcloud-13.0.0.tar.bz2.sha256
tar xvf nextcloud-13.0.0.tar.bz2 && rm nextcloud-13.0.0.tar.bz2
sudo mv nextcloud /var/www/html/
### packages
sudo aptitude install postgresql apache2 libapache2-mod-fcgid php-apcu php-fpm php-cgi php-gd php-json php-curl php-imap php-intl php-mcrypt php-imagick
### optional packages
sudo aptitude install php-curl php-fileinfo php-bz2 php-intl php-mcrypt php-exif php-redis php-imagick
# Set up apache2
# sudo vim /etc/apache2/sites-enabled/default-ssl.conf
# <VirtualHost *:443>
# ServerName www.yourdomain.tld
# ServerAlias yourdomain.tld
# ServerAdmin contact@yourdomain.tld
# DocumentRoot /var/www/html/nextcloud
# SSLCertificateFile /etc/letsencrypt/live/www.yourdomain.tld/fullchain.pem
# SSLCertificateKeyFile /etc/letsencrypt/live/www.yourdomain.tld/privkey.pem
# Include /etc/letsencrypt/options-ssl-apache.conf
#</VirtualHost>
a2enmod headers env
### Add repository for keeping certbot up to date and install certbot
echo -e '\n# Backports\ndeb http://ftp.debian.org/debian stretch-backports main' | sudo tee --append /etc/apt/sources.list
sudo apt-get -t stretch-backports install certbot python-certbot-apache
# Set up letsencrypt
# CHANGE THESE DOMAINS: www.yourdomain.tld, yourdomain.tld
sudo certbot --apache -d www.yourdomain.tld -d yourdomain.tld
# Set up postgresql
sudo su -l postgres
createuser nextcloud
createdb nextcloud
# CHANGE THIS PASSWORD: verySecretDBPasswordHere (database password)
psql -c "ALTER USER nextcloud WITH ENCRYPTED PASSWORD 'verySecretPasswordHere';"
psql -c 'GRANT ALL PRIVILEGES ON DATABASE nextcloud TO nextcloud;'
echo -e "local\tall\t\tnextcloud\t\t\t\tmd5" | sudo tee --append /etc/postgresql/9.6/main/pg_hba.conf
sudo service postgresql restart
### Permissions
sudo chown -R www-data:www-data /var/www/html/nextcloud/
### Install nextcloud using the occ installer
# CHANGE THESE PASSWORDS: verySecretDBPasswordHere (database password), verySecretNextcloudAdminPassword (password to login to nc as admin)
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:install --database "pgsql" --database-name "nextcloud" --database-user "nextcloud" --database-pass "verySecretDBPasswordHere" --admin-user "admin" --admin-pass "verySecretNextcloudAdminPassword"
# CHANGE THIS DOMAIN: www.yourdomain.tld
sudo -u www-data php /var/www/html/nextcloud/occ config:system:set trusted_domains 2 --value=www.yourdomain.tld
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment