Install EPrints 3.4.7 Debian 11
Install EPrints 3.4.7 Debian 11

Install EPrints 3.4.7 Digital Repository di Debian 11

EPrints salah satu perangkat lunak open-source paling populer untuk membangun repositori digital atau institutional repository, terutama di lingkungan akademik.

Dengan rilisnya EPrints versi 3.4.7 pada September 2025, terdapat berbagai peningkatan fitur dan perbaikan keamanan yang membuatnya semakin stabil .

Panduan ini akan memandu menginstal EPrints 3.4.7 di Debian 11 (Bullseye). Perlu dicatat bahwa tim pengembang EPrints merekomendasikan untuk menginstal dari sumber (source) menggunakan Git.

Update Sistem dan Instal Dependensi

Pertama, masuk sebagai root atau gunakan sudo, lalu perbarui daftar paket.

sudo apt update && apt upgrade -y

Selanjutnya, instal semua dependensi yang diperlukan EPrints. Di Debian 11, database yang digunakan MariaDB.

sudo 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-binaries psutils imagemagick adduser tar gzip unzip libsearch-xapian-perl \
libtex-encode-perl libio-string-perl python3-html2text make libexpat1-dev libxslt1-dev

Tunggu hingga semua paket selesai diinstal. Ini akan mencakup Apache2, Perl libraries, TeX, ImageMagick, dan berbagai tools pendukung.

Instal dan Konfigurasi MariaDB

sudo apt install mariadb-server mariadb-client libmariadb-dev

Setelah terinstal, amankan instalasi MariaDB dan buat database untuk EPrints.

sudo mysql_secure_installation

Login ke database MariaDB

sudo mariadb -u root -p

Buat database dan user untuk EPrints.

CREATE USER 'eprints'@'localhost' IDENTIFIED by 'ePr1Nt5)#^';
GRANT ALL PRIVILEGES ON *.* TO 'eprints'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

Buat User baru

Jalankan perintah dibawah untuk membuat user baru digunakan EPrints.

sudo adduser eprints

Masukan user www-data ke group www-data dan user www-data masukan ke group eprints.

sudo usermod -a -G eprints www-data
sudo usermod -a -G www-data eprints

atau

Buka file envvars apache2.

sudo nano /etc/apache2/envvars

Ganti Apache user dan group menjadi eprints.

export APACHE_RUN_USER=eprints
export APACHE_RUN_GROUP=eprints

Download Source dan Deploy Eprints

Install package git

sudo apt install git

Buatkan direktori baru untuk source code eprints.

sudo mkdir /opt/eprints3

Ubah user dan group pada direktori eprints3 menjadi eprints, tambahkan permission 2775 pada direktori.

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

Login user eprints dan git clone source eprints latest dari github

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

Masuk direktori eprints dan git chekout.

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

Membuat Repository EPrints

Sekarang saatnya membuat arsip repository eprints. Jalankan sebagai user eprints:

bin/epadmin create pub

Masukkan Archive ID:

Create a pub Repository

Please select an ID for the repository, which will be used to create a directory
and identify the repository. Lower case letters, numbers and underscores, may not start with
a number or underscore. examples: "lemurprints", "test3" or "research_archive"

Archive ID? repo

Configure Vital settings. ENTER

Ok. I've created the initial config files and directory structure.
I've also created a "disk0" directory under documents/ if you want
your full texts to be stored on a different partition then remove
the disk0, and create a symbolic link to the directory you wish to
store the full texts in. Additional links may be placed here to be
used when the first is full.

Configure vital settings? [yes] ? [TEKAN ENTER]

Masukan Hostname untuk repository, misalnya repo.DOMAIN .

Core configuration for repo


Please enter the fully qualified hostname of the repository.

For a production system we recommend against using the real hostname of the
machine.

Example: repo.footle.ac.uk

Hostname? repo.DOMAIN

Web Server Port.

Please enter the port of the webserver. This is probably 80, but you may wish
to run apache on a different port if you are experimenting.

Webserver Port [80] ? [Tekan ENTER]

Alias untuk Hostname.

Please enter all the aliases which could reach the repository, and indicate if
you would like EPrints to write a Redirect Rule to redirect requests to this
alias to the correct URL.
Some suggestions:
VM-10-247-debian.example.org
VM-10-247-debian.example
VM-10-247-debian
repo.geekslabs
repo

Enter a single hash (#) when you're done.

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

Repository base url.

Please enter the path part of the repository's base URL. This should probably
be '/'.

Path [/] ? [Tekan ENTER]

Masukan hostname untuk https.

If you will use https for your user pages (including login) enter the https hostname
here, or leave blank when using http only.

HTTPS Hostname [] ? repo.DOMAIN [Tekan ENTER]

Secure webserver port.

Please enter the port of your secure (https) server. This is probably 443.

Secure Webserver Port [443] ? [Tekan ENTER]

Masukkan custome email atau gmail untuk akun administrator:

Administrator Email? MASUKAN_EMAIL

Masukan nama repository

Enter the name of the repository in the default language. If you wish to enter
other titles for other languages or enter non ascii characters then you may
enter something as a placeholder and edit the XML config file which this
script generates.

Archive Name [Test Repository] ? Geekslabs Repository

Masukan nama organisasi.

Enter the name of the organisation in the default language. Again, if you wish to enter
other titles for other languages or enter non ascii characters then you may
enter something as a placeholder and edit the XML config file which this
script generates.

Organisation Name [Organisation of Test] ? Geekslabs [Tekan ENTER]

Write core settings.

Write these core settings? [yes] ? [Tekan ENTER]

Configure Database

Write these core settings? [yes] ?
Wrote /opt/eprints3/archives/repo/cfg/cfg.d/adminemail.pl
Wrote /opt/eprints3/archives/repo/cfg/cfg.d/10_core.pl
Wrote /opt/eprints3/archives/repo/cfg/lang/en/phrases/archive_name.xml

Configure database? [yes] ? [Tekan ENTER]

Database Confguration

Database Name [repo] ? [Tekan ENTER]
MySQL Host [localhost] ? [Tekan ENTER]

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

Write these database settings? [yes] ? [Tekan ENTER]

Masukan user root dan password MariaDB

EPrints can create the database, and grant the correct permissions.

Create database "repo" [yes] ? [Tekan Enter]
Database Superuser Username [root] ? [Tekan Enter]
Database Superuser Password? MASUKAN_PASSWORD [Tekan Enter]
Create database tables? [yes] ? [Tekan Enter]

Membuat akun administrator EPrints

Create an initial user? [yes] ? [Tekan Enter]
Creating a new user in repo

Enter a username [admin] ? [Tekan Enter]
Select a user type (user|editor|admin) [admin] ? [Tekan Enter]
Enter Password? MASUKAN_PASSWORD [Tekan Enter]
Email? MASUKAN_EMAIL

Build the static web pages

Successfully created new user:
ID: 1
Do you want to build the static web pages? [yes] ? [Tekan Enter]

Import the LOC subjects and sampe.

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

Update apache config files.

Do you want to update the apache config files? (you still need to add the 'Include' line) [yes] ? [Tekan ENTER]

Pembuatan repository telah selesai, selanjutnya menambahkan konfigurasi hasil generate EPrints ke web server apache.

Wrote /opt/eprints3/cfg/apache.conf
Wrote /opt/eprints3/cfg/apache_ssl.conf
Wrote /opt/eprints3/cfg/perl_module_isolation.conf
Wrote /opt/eprints3/cfg/perl_module_isolation_vhost.conf
Wrote /opt/eprints3/cfg/apache/repo.conf
Wrote /opt/eprints3/cfg/apache_ssl/repo.conf

Add the following line to your apache configuration:
        Include /opt/eprints3/cfg/apache.conf

You must restart apache for any changes to take effect!

--------------------------------------------------------------------------
That seemed to more or less work ...
--------------------------------------------------------------------------

Now make any required changes to the cfg files.

Note that changing the metadata configuration may require the database
tables to be regenerated. epadmin erase_eprints will regenerate the
eprints and documents tables only. erase_data will regenerate everything.
(nb. these also do erase the contents of the tables, and any uploaded
files).

Make sure that your main apache config file contains the line:

 Include /opt/eprints3/cfg/apache.conf

Then stop and start your webserver:
Often:
 /etc/rc.d/init.d/httpd stop
 /etc/rc.d/init.d/httpd start
(or maybe /usr/local/apache/bin/apachectl graceful)

And then try connecting to your repository.

Konfigurasi Web Server Apache2

Pindah ke user root debian 11.

exit

Tambahkan server name dengan ip public server pada file 000-default.conf .

sudo nano /etc/apache2/sites-available/000-default.conf

Tambahkan script dibawah, didalam <VirtualHost *:80> dan ganti dengan ip public server.

ServerName IP_Public_Server

Menambahkan konfigurasi eprints ke file apache.conf

sudo nano /etc/apache2/apache2.conf

Masukan script di paling bawah.

Include /opt/eprints3/cfg/apache.conf

Restart service web server apache.

sudo systemctl restart apache2

Cek apakah firewall UFW sudah aktif.

ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Ubah owner group dari eprints menjadi www-data.

chown -R eprints:www-data /opt/eprints3/archives/repo/html/

Pengujian akses repo.DOMAIN pada browser.

Halaman Selamat Datang Eprints
Halaman Selamat Datang Eprints

Mengaktifkan HTTPS

Install certbot di debian 11, tunggu sampai proses selesai.

sudo apt install certbot python3-certbot-apache -y

Request sertifikasl SSL

certbot --non-interactive -m MASUKAN-EMAIL --agree-tos --no-eff-email --apache certonly -d repo.DOMAIN

Pesan berhasil membuat sertifikat SSL.

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/repo.DOMAIN/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/repo.DOMAIN.net/privkey.pem
   Your certificate will expire on 2026-08-15. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Konfigurasi SSL pada EPrints

Pindah ke user eprints

su -l eprints

Membuat direktori ssl eprints di dalam archive.

mkdir /opt/eprints3/archives/repo/ssl

Membuat file securevhost.conf di dalam direktori ssl.

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

Masukkan konfigurasi virtual host eprints untuk protokol HTTPS.

<VirtualHost *:443>

 ServerName repo.DOMAIN:443

 ErrorLog /var/log/apache2/repo.DOMAIN_error.log
 TransferLog /var/log/apache2/repo.DOMAIN_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.DOMAIN/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/repo.DOMAIN/privkey.pem
 SSLCertificateChainFile /etc/letsencrypt/live/repo.DOMAIN/chain.pem

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

 CustomLog /var/log/apache2/repo.DOMAIN_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 web server Apache untuk EPrints.

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

Pesan yang ditampilkan jika generate ulang konfigurasi Apache berhasil.

Wrote /opt/eprints3/cfg/apache.conf
Wrote /opt/eprints3/cfg/apache_ssl.conf
Wrote /opt/eprints3/cfg/perl_module_isolation.conf
Wrote /opt/eprints3/cfg/perl_module_isolation_vhost.conf
Wrote /opt/eprints3/cfg/apache/repo.conf
Wrote /opt/eprints3/cfg/apache_ssl/repo.conf

You must restart apache for any changes to take effect!

Pindah ke user root.

exit

Menambahkan konfigurasi virtual host HTTPS securevhost.conf ke dalam file apache.conf.

sudo nano /etc/apache2/apache2.conf

Masukan script dibawah bagian paling bawah.

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

Mengaktifkan modul SSL dan restart service apache.

a2enmod ssl
systemctl restart apache2

Pengujian SSL, akses https://repo.DOMAIN pada browser.

Protocol HTTPS EPrints Aktif
Protocol HTTPS EPrints Aktif

Kesimpulan

Sekarang telah berhasil menginstal EPrints 3.4.7 di Debian 11. Instalasi via Git ini memastikan mendapatkan kode terbaru dan memudahkan proses update di masa depan .

Instalasi EPrints 3.4.7 di Debian 11 memerlukan lima langkah agar menghasilkan repositori digital yang stabil:

  1. Pastikan Apache, MariaDB, pustaka Perl, TeX, dan ImageMagick terinstal penuh.
  2. Buat user eprints dan integrasikan dengan www-data demi keamanan.
  3. Instalasi harus dari kloning Git tag v3.4.7, hindari paket usang.
  4. Sinkronkan konfigurasi MariaDB, Apache, dan proses epadmin create.
  5. Jalankan indexer di antarmuka admin agar konten dapat ditemukan.

Dengan menyelesaikan seluruh langkah ini, fondasi repositori siap diisi, dikustomisasi, dan diakses.