EPrints

EPrints

EPrints adalah perangkat lunak open-source yang digunakan untuk membangun repositori digital, seperti repositori institusi, arsip penelitian, atau koleksi dokumen akademik. Dikembangkan oleh University of Southampton pada tahun 2000, EPrints dirancang untuk mengelola, menyimpan, dan mempublikasikan karya ilmiah seperti artikel jurnal, tesis, laporan penelitian, dan data akademik.

1. Persyaratan Sistem

System requirements untuk EPrints 3.4:

  • Apache dengan mod_perl
  • MySQL

Sebelum memulai deploy, siapkan:

  • VPS atau server dengan OS Ubuntu 24.04 LTS
  • Akses SSH ke server
  • Domain yang sudah diarahkan ke server

2. Persiapan Server

Update sistem

sudo apt update
sudo apt upgrade -y

Install paket yang dibutuhkan

sudo apt install perl libncurses6 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

Install MySQL

sudo apt install mysql-server -y	

3. Buat Database

Login ke MySQL

sudo mysql

Buat database dan user

CREATE USER 'eprints'@'localhost' IDENTIFIED by 'rahasia';
GRANT ALL PRIVILEGES ON *.* TO 'eprints'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

4. Buat User

Buat user eprints

sudo useradd -d /opt/eprints3 -s /bin/bash eprints

Buat direktori eprints3

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

Buka konfigurasi envvars

sudo nano /etc/apache2/envvars

Ubah APACHE_RUN_USER dan APACHE_RUN_GROUP

export APACHE_RUN_USER=eprints 
export APACHE_RUN_GROUP=eprints

Restart apache2

sudo systemctl restart apache2

5. Download EPrints

Beralih ke user eprints

sudo su - eprints

Download source code melalui git clone

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

6. Buat Repository

Gunakan tags/v3.4.6

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

Buat repository baru

bin/epadmin create pub

Masukkan Archive ID, misal repository

Archive ID? repository

Tekan ENTER (memilih default [yes]) pada Configure vital settings?

Configure vital settings? [yes] ? ENTER

Masukkan domain/subdomain, misal repository.universitas.ac.id

Hostname? repository.universitas.ac.id

Konfigurasi selanjutnya, tekan ENTER

Webserver Port [80] ? ENTER
Alias (enter # when done) [#] ? ENTER
Path [/] ? ENTER

Masukkan lagi domainnya untuk HTTPS

HTTPS Hostname [] ? repository.universitas.ac.id

Port HTTPS, tekan ENTER

Secure Webserver Port [443] ? ENTER

Masukkan alamat email administrator repository

Administrator Email? [email protected]

Masukkan nama archive, nama organisasi

Archive Name [Test Repository] ? Contoh Repository
Organisation Name [Organisation of Test] ? Contoh Organisasi

Simpan core settings, tekan ENTER

Write these core settings? [yes] ? ENTER

Configure database, tekan ENTER

Configure database? [yes] ? ENTER

Konfigurasi database, tekan ENTER

Database Name [repository] ? ENTER
MySQL Host [localhost] ? ENTER

You probably don't need to set socket and port (unless you do!?).
MySQL Port (# for no setting) [#] ? ENTER
MySQL Socket (# for no setting) [#] ? ENTER
Database User [repository] ? ENTER
Database Password [jzYV9w9HdzSjhEH5] ? ENTER
Database Engine [InnoDB] ? ENTER

Write these database settings? [yes] ? ENTER
Create database "repository" [yes] ? ENTER

Masukkan username dan password eprints MySQL

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

Buat akun administrator

Create an initial user? [yes] ? 
Enter a username [admin] ? 
Select a user type (user|editor|admin) [admin] ? 
Enter Password? 
Email? [email protected]

Selanjutnya tekan ENTER

Do you want to build the static web pages? [yes] ? ENTER
Do you want to import the LOC subjects and sample divisions? [yes] ? ENTER
Do you want to update the apache config files? (you still need to add the 'Include' line) [yes] ? ENTER

Keluar dari user eprints, beralih ke user sudo

exit

7. Konfigurasi Apache

Tambahkan konfigurasi eprints ke dalam apache.conf

echo "Include /opt/eprints3/cfg/apache.conf" | sudo tee -a /etc/apache2/apache2.conf

Restart apache2

sudo systemctl restart apache2

Akses http://repository.universitas.ac.id sudah terinstal.

8. Install SSL

Install certbot

sudo apt install certbot python3-certbot-apache -y

Request sertifikat SSL

sudo certbot --non-interactive \
    -m [email protected] \
    --agree-tos \
    --no-eff-email \
    --apache certonly \
    -d repository.universitas.ac.id	

Beralih ke user eprints

sudo su - eprints

Buat direktori ssl di dalam direktori archive

mkdir /opt/eprints3/archives/repository/ssl

Buat file securevhost.conf di dalam direktori ssl

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

Masukkan konfigurasinya

<VirtualHost *:443>

 ServerName repository.universitas.ac.id:443

 ErrorLog /var/log/apache2/repository.universitas.ac.id_error.log
 TransferLog /var/log/apache2/repository.universitas.ac.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/repository.universitas.ac.id/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/repository.universitas.ac.id/privkey.pem
 SSLCertificateChainFile /etc/letsencrypt/live/repository.universitas.ac.id/chain.pem

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

 CustomLog /var/log/apache2/repository.universitas.ac.id_access.log \
 "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


 Include /opt/eprints3/cfg/apache_ssl/repository.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 securevhost.conf ke dalam file apache.conf

echo "Include /opt/eprints3/archives/repository/ssl/securevhost.conf" | sudo tee -a /etc/apache2/apache2.conf

Aktifkan modul ssl dan restart apache2

sudo a2enmod ssl
sudo systemctl restart apache2

Akses https://repository.universitas.ac.id, SSL sudah terpasang.