Dalam rangka mengatasi storage g-drive yang di limit hanya 15Gb(Yang Free), maka ada ide buat storage server kecil”an di minipc bekas dapet dari facebook marketplace. OS yang dipilih untuk servernya adalah Rocky Linux 9, semoga artikel dibawah bisa membantu pengunjung blog ini untuk install Nextcloud di servernya.
Refrensi : https://linux.how2shout.com/how-to-install-nextcloud-on-almalinux-9-rocky-linux-9/
Environment Server
- ThinkCentre m910q (4 core, 4 thread)
Installasi
Exec using root
Update & install req
dnf update
dnf install bash-completion wget nano unzip
Disable SELinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
Install & Setup Httpd
dnf install httpd
# enable httpd
systemctl enable --now httpd
# allow for firewalld
firewall-cmd --permanent --add-service={http,https} --zone=public
firewall-cmd --reload
Pastikan web apache bisa diakses
Setup PHP 8.1
Setup repository
dnf install epel-release
dnf -y install http://rpms.remirepo.net/enterprise/remi-release-9.rpm
dnf update
Install php
dnf module reset php
dnf module enable php:remi-8.1
dnf install php php-{cli,mysqlnd,zip,devel,gd,mcrypt,mbstring,curl,xml,pear,bcmath,json,pdo,pecl-apcu,pecl-apcu-devel,ldap}
systemctl enable --now php-fpm.service
sed -i "s/memory_limit = .*/memory_limit = 2GB /" /etc/php.ini
Setup Nextcloud
Download nextcloud
wget https://download.nextcloud.com/server/releases/latest.zip
Setup nextcloud
unzip latest.zip
# move to /var/www/html
mv nextcloud/ /var/www/html/
# Create data for nextcloud
mkdir /data # bisa di luar nextcloud. (Recomendded)
# Permission
chown apache:apache -R /var/www/html/nextcloud
chown apache:apache -R /data
Setup Virtual Host apache
Request Cert https using cloudflare dns01
Buat token bisa di https://dash.cloudflare.com/profile/api-tokens
# Install certbot
dnf install certbot python3-certbot python3-certbot-dns-cloudflare
# Create credentials
vi .cloudflare.ini
---
dns_cloudflare_api_token = <random token>
# Request dns
certbot certonly --preferred-challenges=dns --dns-cloudflare \
--server https://acme-v02.api.letsencrypt.org/directory \
--dns-cloudflare-credentials ~/.cloudflare.ini \
--agree-tos -d example.com
Langsung gunakan https
<VirtualHost *:80>
ServerName example.txt
ServerAdmin admin@example.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/html/nextcloud
<directory /var/www/html/nextcloud>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
<IfModule mod_dav.c>
Dav off
</IfModule>
</directory>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
</VirtualHost>
</IfModule>
Pastikan https bisa diakses
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html(/.*)?"
restorecon -Rv /var/www/html
# Restart apache
systemctl restart httpd
Setup Mysql
Install mysql
dnf install mysql mysql-server
systemctl enable --now mysqld
Setup mysql database
mysql_secure_installastion
mysql -u root -p
-> create user 'user'@'localhost' identified by 'Passwor0d';
-> create database nextcloud;
-> grant all privileges on nextcloud.* to 'user'@'localhost';
-> flush privileges;
-> exit
Next setup nextcloud dengan akses webnya. :)
Read more
Provisioning AWS Lambda dengan Terraform
Lanjutan belajar AWS: mengenal Lambda dan provisioning Lambda function di AWS menggunakan Terraform.
Provisioning EC2 dan RDS di AWS dengan Terraform
Catatan provisioning infrastruktur AWS pakai Terraform untuk EC2 dan RDS, mulai dari konfigurasi sampai hasil apply-nya.
AWS IAM Role, EC2 Instance Profile, dan Multi-Tier VPC
Bikin IAM role dan attach ke EC2 lewat instance profile, uji akses ke S3 dan SSM Parameter Store, lalu provisioning multi-tier VPC pakai OpenTofu.
AWS IAM Least-Privilege Policy dan VPC Networking Deep Dive
Menyusun IAM policy least-privilege dan IAM role di AWS, lalu lanjut ke networking VPC: subnet publik-privat sampai NAT Gateway.