Thursday, February 23, 2023

Automate DSpace backups with Cron Task

Database backup

Open a Terminal and log in as a Postgres user,

sudo su - postgres

Create a directory in the Postgres user’s home to store the backups. Apply the following command,

mkdir -p ~/backups

Enter into the crontab:

crontab -e

Add the following entry into the Cron,

#DSpace Postgres backup

10 20 * * * pg_dump -U postgres dbname > ~/postgres/backups/dbname-$(date +%d-%m-%Y-%H.%M).bak

Change the timing of the backup, here backup take at 8:10 PM

Apply  CTRL + O button to save the cron entry.
Then apply CTRL + X to exit from the cron. 

Type exit to exit from Postgres prompt.

Backup of asset store and log folders


Open a terminal and apply the following command to create a folder in Home to hold asset store and log folders.

sudo mkdir dspacebkup

Open crontab to add the entry to automate the folder backup,
sudo su
crontab -e

Add the following lines,

10 20 * * * zip -r /home/vimal/dspacebkup/assetstore-$(date +%d-%m-%Y-%H.%M).zip /dspace/assetstore
10 20 * * * zip -r /home/vimal/dspacebkup/log-$(date +%d-%m-%Y-%H.%M).zip /dspace/log

Change the path based on your local setup.

Saturday, February 4, 2023

Error 500-Service unavailable: how to solve

Many DSpace users got Error 500. To solve the error, check the following things one by one.

Solr

Apply the following commands to restart Solr.

su dspace
/opt/solr/bin/solr start
exit

Tomcat

Apply the following command restart Tomcat

sudo systemctl restart tomcat9.service

Start the user interface

Apply the following commands,

sudo su
pm2 start /home/dspace/dspace-angular-dspace-7.4/dspace-ui.json

Make available DSpace in a local network / web

DSpace version 7 and 8 default port for the front end is 4000. The port needs to open to make DSpace available in a local network. I applied this method on Ubuntu 24.04 and Debian 12. Here are the processes to make available DSpace version 8 in the network. 

Open the Port 4000

ufw is the default firewall configuration tool. Install ufw by applying the following command,
 
sudo apt install ufw
 
Apply the following command to open port 4000 and 8080.

sudo ufw allow 4000
sudo ufw allow 8080
sudo ufw enable 

Network configuration for DSpace

Find the IP address of the computer where DSpace is installed. Apply the following commands to install net-tools software in Ubuntu and know the network details.
 
sudo apt install net-tools 
ifconfig 

Debian users can apply the following command to know the network details,

nmcli -p device show

Note down the details and add the IP address. 
Open the DSpace configuration file, 

sudo mousepad /dspace/config/local.cfg 

Find the following lines and add the IP address/domain name instead of localhost.

dspace.ui.url = http://localhost:4000 
dspace.server.url = http://localhost:8080/server 


Save and close the file. 
Open the following configuration file (make sure the location of the file in your server) of the DSpace front end, 

sudo mousepad /home/dspace/dspace-angular-dspace-8.0/config/config.prod.yml

Find the following piece of lines, 

ssl: false 
host: localhost 
port: 4000 

Change the hostname. Change localhost to the IP address/domain name.

ssl: false 
host: your-ip-address
port: 4000 


Save and close the file.

Enter into the dspace-angular config folder,

sudo su

cd /home/dspace/dspace-angular-dspace-8.0/config

Apply the following command to build the front end,

yarn run build:prod

Start the application using PM2. Apply the following command to start the service,

sudo su
pm2 start /home/dspace/dspace-angular-dspace-8.0/dspace-ui.json

Restart the Tomcat,

sudo systemctl restart tomcat10.service

Change localhost to the IP address. Save and close the file.
 
Restart PC. Try to load DSpace 7 from other PC in the network. 
Example, http://192.168.1.20:4000

References