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.

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.

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:
- Pastikan Apache, MariaDB, pustaka Perl, TeX, dan ImageMagick terinstal penuh.
- Buat user eprints dan integrasikan dengan www-data demi keamanan.
- Instalasi harus dari kloning Git tag v3.4.7, hindari paket usang.
- Sinkronkan konfigurasi MariaDB, Apache, dan proses epadmin create.
- Jalankan indexer di antarmuka admin agar konten dapat ditemukan.
Dengan menyelesaikan seluruh langkah ini, fondasi repositori siap diisi, dikustomisasi, dan diakses.
