EPrints merupakan platform perangkat lunak open source yang dikhususkan untuk membangun repositori institusional di lingkungan akademis. Pertama kali dikembangkan oleh University of Southampton pada tahun 2000, EPrints kini telah menjadi salah satu solusi repositori digital paling populer yang digunakan oleh berbagai institusi pendidikan di seluruh dunia.

Platform ini dirancang untuk membantu institusi akademik, perpustakaan, dan lembaga penelitian dalam mengelola, menyimpan, serta mendistribusikan karya ilmiah dan koleksi digital mereka. EPrints mendukung gerakan open access, memastikan bahwa hasil penelitian dan publikasi ilmiah dapat diakses secara bebas oleh masyarakat luas.

Spesifikasi Sistem

Tutorial ini menggunakan konfigurasi server sebagai berikut:

Spesifikasi Server:
  • Cloud Provider: Vultr Cloud Server
  • CPU: 1 Core
  • RAM: 1 GB
  • Storage: 32 GB
  • Sistem Operasi: Ubuntu 22.04 LTS
  • Domain: repo.aminlabs.my.id
  • SSL Certificate: Let's Encrypt
  • Database: MySQL versi 8.0
  • EPrints: versi 3.4.5
  • Metode Instalasi: Source code dari GitHub

Langkah 1: Instalasi Paket Dasar

Hubungkan ke server melalui SSH dan lakukan pembaruan sistem:

apt update
apt upgrade -y
Catatan: Tutorial ini menggunakan user root. Jika menggunakan user biasa, tambahkan sudo di depan setiap perintah.

Install semua dependensi yang diperlukan oleh EPrints:

apt install perl libncurses5 libselinux1 apache2 libapache2-mod-perl2 libxml-libxml-perl \
libunicode-string-perl libterm-readkey-perl libmime-lite-perl libmime-types-perl libdigest-sha-perl \
libdbd-mysql-perl libxml-parser-perl libxml2-dev libxml-twig-perl libarchive-any-perl libjson-perl \
liblwp-protocol-https-perl libtext-unidecode-perl lynx wget ghostscript poppler-utils antiword elinks \
texlive-base texlive-base-bin psutils imagemagick adduser tar gzip unzip libsearch-xapian-perl \
libtex-encode-perl libio-string-perl libdbd-mysql-perl git xpdf python3-html2text make -y

Langkah 2: Instalasi dan Konfigurasi MySQL

Install MySQL server beserta client-nya:

apt install mysql-server mysql-client -y

Masuk ke konsol MySQL:

mysql

Buat user database untuk EPrints dengan hak akses penuh:

CREATE USER 'eprints'@'localhost' IDENTIFIED by 'changeme';
GRANT ALL PRIVILEGES ON *.* TO 'eprints'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
Penting: Ganti 'changeme' dengan password yang lebih kuat untuk keamanan produksi.

Langkah 3: Pembuatan User Sistem EPrints

Buat user khusus untuk menjalankan EPrints:

adduser eprints

Edit file environment variables Apache:

nano /etc/apache2/envvars

Modifikasi konfigurasi agar Apache berjalan menggunakan user dan group eprints:

export APACHE_RUN_USER=eprints
export APACHE_RUN_GROUP=eprints

Restart layanan Apache untuk menerapkan perubahan:

systemctl restart apache2

Langkah 4: Download Source Code EPrints

Buat direktori untuk menyimpan source code EPrints:

mkdir /opt/eprints3
chown eprints:eprints /opt/eprints3
chmod 2775 /opt/eprints3

Beralih ke user eprints dan clone repository dari GitHub:

su -l eprints
git clone https://github.com/eprints/eprints3.4.git /opt/eprints3

Checkout ke versi EPrints 3.4.5:

cd /opt/eprints3
git checkout tags/v3.4.5

Langkah 5: Membuat Repositori

Inisialisasi pembuatan repository dengan flavour publication:

bin/epadmin create pub

Konfigurasi Repository

Masukkan ID untuk repository (gunakan huruf kecil, angka, dan underscore):

Archive ID? repo

Konfirmasi untuk melanjutkan konfigurasi (tekan ENTER):

Configure vital settings? [yes] ? ENTER

Masukkan hostname lengkap untuk repository:

Hostname? repo.aminlabs.my.id
Catatan: Pastikan hostname atau subdomain sudah dikonfigurasi dan mengarah ke IP server Anda.

Port webserver (gunakan default 80, tekan ENTER):

Webserver Port [80] ? ENTER

Alias hostname (tekan ENTER untuk skip):

Alias (enter # when done) [#] ? ENTER

Base URL path (gunakan default '/', tekan ENTER):

Path [/] ? ENTER

Hostname untuk HTTPS (masukkan subdomain yang sama):

HTTPS Hostname [] ? repo.aminlabs.my.id

Port HTTPS (gunakan default 443, tekan ENTER):

Secure Webserver Port [443] ? ENTER

Email administrator:

Administrator Email? repo@aminlabs.my.id

Nama repository:

Archive Name [Test Repository] ? AminLabs Repository

Nama organisasi:

Organisation Name [Organisation of Test] ? AminLabs

Simpan konfigurasi core settings (tekan ENTER):

Write these core settings? [yes] ? ENTER

Konfigurasi Database

Konfirmasi untuk mengkonfigurasi database (tekan ENTER):

Configure database? [yes] ? ENTER

Gunakan konfigurasi default untuk semua parameter database (tekan ENTER untuk setiap prompt):

Database Name [repo] ? ENTER
MySQL Host [localhost] ? ENTER
MySQL Port (# for no setting) [#] ? ENTER
MySQL Socket (# for no setting) [#] ? ENTER
Database User [repo] ? ENTER
Database Password [pqpVxhhgg7zdZznR] ? ENTER
Database Engine [InnoDB] ? ENTER
Write these database settings? [yes] ? ENTER

Buat database menggunakan kredensial MySQL yang sudah dibuat sebelumnya:

Create database "repo" [yes] ? ENTER
Database Superuser Username [root] ? eprints
Database Superuser Password? PASSWORD_ANDA
Create database tables? [yes] ? ENTER

Pembuatan Akun Administrator

Buat user administrator untuk EPrints:

Create an initial user? [yes] ? ENTER
Enter a username [admin] ? ENTER
Select a user type (user|editor|admin) [admin] ? ENTER
Enter Password? PASSWORD_ANDA
Email? repo@aminlabs.my.id

Finalisasi Setup

Build halaman web statis (tekan ENTER):

Do you want to build the static web pages? [yes] ? ENTER

Import LOC subjects dan sample divisions (tekan ENTER):

Do you want to import the LOC subjects and sample divisions? [yes] ? ENTER

Update konfigurasi Apache (tekan ENTER):

Do you want to update the apache config files? [yes] ? ENTER

Langkah 6: Konfigurasi Apache Web Server

Keluar dari user eprints dan kembali ke user root:

exit

Tambahkan ServerName ke file konfigurasi virtual host default:

ip=$(dig +short myip.opendns.com @resolver1.opendns.com -4)
sed -i "s/#ServerName www.example.com/ServerName ${ip}/g" /etc/apache2/sites-available/000-default.conf

Include konfigurasi EPrints ke dalam file utama Apache:

echo "Include /opt/eprints3/cfg/apache.conf" >> /etc/apache2/apache2.conf

Restart layanan Apache:

systemctl restart apache2

Konfigurasi Firewall

Cek status firewall UFW:

ufw status

Jika UFW aktif, izinkan traffic HTTP dan HTTPS:

ufw allow http
ufw allow https

Sekarang EPrints dapat diakses melalui browser dengan URL: http://repo.aminlabs.my.id atau http://IP-Server

Langkah 7: Implementasi HTTPS dengan Let's Encrypt

Instalasi Certbot

Install Certbot dan plugin Apache:

apt install certbot python3-certbot-apache -y

Request SSL Certificate

Dapatkan sertifikat SSL untuk subdomain:

certbot --non-interactive -m admin@aminlabs.my.id --agree-tos --no-eff-email --apache certonly -d repo.aminlabs.my.id
Catatan: Jika berhasil, Anda akan melihat pesan konfirmasi yang menampilkan lokasi file certificate dan private key.

Konfigurasi HTTPS Virtual Host

Beralih ke user eprints:

su -l eprints

Buat direktori SSL di dalam direktori archive:

mkdir /opt/eprints3/archives/repo/ssl

Buat file konfigurasi virtual host HTTPS:

nano /opt/eprints3/archives/repo/ssl/securevhost.conf

Masukkan konfigurasi berikut:

<VirtualHost *:443>

 ServerName repo.aminlabs.my.id:443

 ErrorLog /var/log/apache2/repo.aminlabs.my.id_error.log
 TransferLog /var/log/apache2/repo.aminlabs.my.id_access.log
 LogLevel warn

 SSLEngine on
 SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
 SSLHonorCipherOrder on
 SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256

 SSLCertificateFile /etc/letsencrypt/live/repo.aminlabs.my.id/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/repo.aminlabs.my.id/privkey.pem
 SSLCertificateChainFile /etc/letsencrypt/live/repo.aminlabs.my.id/chain.pem

 SetEnvIf User-Agent ".*MSIE.*" \
 nokeepalive ssl-unclean-shutdown \
 downgrade-1.0 force-response-1.0

 CustomLog /var/log/apache2/repo.aminlabs.my.id_access.log \
 "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

 Include /opt/eprints3/cfg/apache_ssl/repo.conf

 PerlTransHandler +EPrints::Apache::Rewrite

</VirtualHost>

Generate ulang konfigurasi Apache untuk EPrints:

/opt/eprints3/bin/generate_apacheconf --system --replace

Keluar dari user eprints:

exit

Tambahkan konfigurasi virtual host HTTPS ke Apache:

echo "Include /opt/eprints3/archives/repo/ssl/securevhost.conf" >> /etc/apache2/apache2.conf

Aktifkan modul SSL dan restart Apache:

a2enmod ssl
systemctl restart apache2

Testing dan Verifikasi

Buka browser dan akses repository melalui HTTPS:

  • URL: https://repo.aminlabs.my.id
  • Login menggunakan kredensial administrator yang telah dibuat
  • Verifikasi SSL certificate dengan melihat ikon gembok di browser

Kesimpulan

Selamat! Anda telah berhasil menginstal EPrints 3.4 di Ubuntu 22.04 LTS dengan konfigurasi lengkap. Instalasi ini mencakup:

  • Setup server EPrints dari source GitHub
  • Konfigurasi database MySQL
  • Implementasi Apache web server
  • Pengamanan dengan SSL/TLS dari Let's Encrypt
  • Konfigurasi subdomain dan virtual host

Repository digital Anda sekarang siap digunakan untuk mengelola dan mendistribusikan koleksi digital institusi. Anda dapat mulai mengunggah publikasi, thesis, jurnal, dan dokumen akademik lainnya ke dalam repositori EPrints.

Tips: Jangan lupa untuk melakukan backup database secara berkala dan monitor penggunaan resource server untuk memastikan performa optimal repositori Anda.
 
sumber : https://musaamin.web.id/cara-install-eprints34-ubuntu2204/