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:
- 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
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
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
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
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.
sumber : https://musaamin.web.id/cara-install-eprints34-ubuntu2204/