School management systems are tools or software that are designed to help institutions with daily administrative and academic operations seamlessly in a remote location or inside the school compound. Schools use Student Management systems to manage student data like grades, schedules, health information, and personal data. There are many School management systems which include, openSIS, RosarioSIS, Fenda, Gibbon, GradelinkSIS, and PowerSchool SIS.

There are a lot of benefits that come with using a school management system. They include;

  • Save time while working on tasks as they can be accessed in one place
  • Keeping things in an orderly and simple manner.
  • Improved student-staff communication by relaying information quickly.
  • Manage other departments like Library and transport departments.
  • Multi-school management in a case where a school has different branches.

RosarioSIS Student and School Management System

RosarioSIS is a free web-based Student and School management system that works on Mobile and Tablets to provide a full Moodle integration, advanced reporting tools, accounting, and billing system. It can be logged into from anywhere and on any internet connection as it is web-based.

Some of the features include

  • Multi-Language Support including RTL languages like Arabic and Persian languages.
  • Multi-device support.
  • Highly customizable.
  • Accounting, grades, and scheduling management.
  • Data import/export of different formats.
  • A calendar is included that details events, activities, and student assignments.
  • Report generation.

It has some added features that make it more appealing than the other student management systems.

  • Attendance can be taken electronically and can also be modified and sent to the office instantly.
  • It has a grade book to establish grade ranges and track assignments then issue progress reports.
  • The student screen includes the critical information to be used in reporting and can be customized to allow you to gather important data.
  • It offers different ways to search for the student including gender, age, grade level, GPA, activities, and absences.
  • The school setup screen has the school demographic information like the name and address.
  • Easily add course weights, instructional assignments, and periods.

This guide will show you to install RosarioSIS Student and School management System on Ubuntu 20.04.

You can also install RosarioSIS via docker which is also shown in this guide.

Software Requirements

RosarioSIS relies on other software platforms which are Web server, PHP-server, and PostgreSQL database server.
Minimum requirements: PHP 5.4.45 & PostgreSQL 8.4

Install RosarioSIS on Ubuntu 20.04

Update your system packages using the following command.

sudo apt update && sudo apt upgrade -y

We will first install the Web server. I will use Apache.

Step 1. Install Apache

To install apache, run the following command

sudo apt install apache2

You can start and enable the server with the following command.

sudo systemctl start apache2
sudo systemctl enable apache2

Check its stsus using teh follwing command.

$ systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
     Active: active (running) since Mon 2022-05-02 13:57:25 EAT; 1min 58s ago
   Main PID: 49598 (apache2)
      Tasks: 55 (limit: 4628)
     Memory: 4.8M
     CGroup: /system.slice/apache2.service
             ├─49598 /usr/sbin/apache2 -k start
             ├─49599 /usr/sbin/apache2 -k start
             └─49600 /usr/sbin/apache2 -k start

Cam 02 13:57:25 ubuntu20 systemd[1]: Starting The Apache HTTP Server...
Cam 02 13:57:25 ubuntu20 systemd[1]: Started The Apache HTTP Server.

Step 2. Install PHP

To install PHP and its extensions, use the following command.

sudo apt install -y php libapache2-mod-php php-pgsql php-intl php-mbstring php-gd php-curl php-xmlrpc php-xml php-zip

Confirm by checking the version

$ php -v
PHP 7.4.3 (cli) (built: Mar  2 2022 15:36:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Access the php.ini file using the following command.

sudo nano /etc/php/7.4/apache2/php.ini

Edit the following details.

max_execution_time = 240
max_input_vars = 4000
memory_limit = 768M

Save and exit the file. Then restart PHP to make it compatible with Apache.

sudo /etc/init.d/apache2 restart

Step 3. Install PostgreSQL

Add the repository and import the official GPG key.

sudo sh -c 'echo "deb $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - | sudo apt-key add -

Update the system then install PostgreSQL using the following command.

sudo apt update
sudo apt install postgresql postgresql-contrib

To check the version, log in to PostgreSQL.

sudo -u postgres psql

Then type SELECT version(); to get the version running. Press ‘q‘ to exit then ‘\q‘ to log out of PostgreSQL.

 PostgreSQL 14.2 (Ubuntu 14.2-1.pgdg20.04+1+b1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, 64-bit
(1 row)

Then confirm it is running with the following command.

$ systemctl status postgresql.service
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2022-05-02 21:17:04 EAT; 1min 44s ago
   Main PID: 113905 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 4572)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

May 02 21:17:04 ubuntu systemd[1]: Starting PostgreSQL RDBMS...
May 02 21:17:04 ubuntu systemd[1]: Finished PostgreSQL RDBMS.

Step 4. Setup RosarioSIS database

Login to PostgreSQL as the postgres user.

sudo -u postgres psql

Create a Rosario user with a password and a database.

postgres=# CREATE USER rosariosis WITH PASSWORD 'StrongDBPassword';
postgres=# CREATE DATABASE rosariosis WITH ENCODING 'UTF8' OWNER rosariosis;

Logout of the PostgreSQL.

postgres=# \q

Edit the pg_hba.conf file to enable password md5 peer authentication.

sudo nano /etc/postgresql/*/main/pg_hba.conf

Edit the line as shown below.

# "local" is for Unix domain socket connections only
local   all             all                                     md5

Save and exit the file.

Step 5. Install RosarioSIS

Once the server and the database are running, we can now install RosarioSIS.

First, we will install missing dependencies.

sudo apt install -y git gettext xfonts-75dpi

To install RosarioSIS, We can download the extract or clone its repository from GitHub to a directory accessible by the webserver. I will clone the repository from GitHub.

$ git clone
Cloning into 'rosariosis'...
remote: Enumerating objects: 48510, done.
remote: Counting objects: 100% (3890/3890), done.
remote: Compressing objects: 100% (1266/1266), done.
remote: Total 48510 (delta 2774), reused 3706 (delta 2610), pack-reused 44620
Receiving objects: 100% (48510/48510), 50.52 MiB | 29.05 MiB/s, done.
Resolving deltas: 100% (36732/36732), done.

Install wkhtmltopdf

wkhtmltopdf is a command-line tool that renders HTML to PDF. To install it, use the following command.

sudo dpkg -i wkhtmltox_0.12.6-1.bionic_amd64.deb

Step 6: Configure RosarioSIS

To configure, rename the config file to

cd rosariosis

Access the configuration file to set the configuration variables. A lot of variables can be configured as per the Installation Manual.


Edit the following variables as follows. You can replace the content to meet your preferred details.

$DatabaseUsername = 'rosariosis';
$DatabasePassword = 'StrongDBPassword';
$DatabaseName = 'rosariosis';
$wkhtmltopdfPath = '/usr/local/bin/wkhtmltopdf';

Save and exit the file.

Move the rosariosis folder to /var/www/html

sudo mv rosariosis /var/www/html

To install the database, Go to In my case, I will use http://localhost/rosariosis/InstallDatabase.php

To get started go to In my case, I would use http://localhost/rosariosis/index.php

Running RosarioSIS in Docker Container

You can as well deploy RosarioSIS in Docker Container by following the steps below.

Install docker and missing dependencies.

wget -qO- | sh

Then clone a Dockerfile that contains the image that installs the latest RosarioSIS.

git clone

Build the image

cd docker-rosariosis
sudo docker build -t rosariosis .

Deploy PostgresSQL image using docker run command.

$ sudo docker run --name rosariosisdb -e "POSTGRES_PASSWORD=StrongDBPassword" -d postgres

### Sample Output ###
Digest: sha256:2c954f8c5d03da58f8b82645b783b56c1135df17e650b186b296fa1bb71f9cfd
Status: Downloaded newer image for postgres:latest

Create the database using the following commands.

$ sudo docker exec -it rosariosisdb bash
/# psql -h localhost -p 5432 -U postgres
postgres=# CREATE USER rosario WITH PASSWORD 'rosariopwd';
postgres=# CREATE DATABASE rosariosis WITH ENCODING 'UTF8' OWNER rosario;
postgres=# \q

Then run the RosarioSIS docker image and connect it to the PostgreSQL container.

$ sudo docker run -e "[email protected]" -e "PGHOST=rosariosisdb" -h `hostname -f` -d -p 80:80 --name rosariosis --link rosariosisdb:rosariosisdb rosariosis/rosariosis:master

### Sample Output ###
Digest: sha256:8d2ae7d7f38f64ff991f6d9713f9305ffc4f4613fa5a2d95edb87a320e377ef2
Status: Downloaded newer image for rosariosis/rosariosis:master

Go to http://localhost/InstallDatabase.php to start. You will see such a reply from the server. Click on Access RosarioSIS.

Launch RosarioSIS on Ubuntu

The default username and password are both admin to login.

A successful installation prompt will appear with an option to set a new password as shown below. Continue to set the Password and click OK.

The portal appears as below once you log in. It has shortcuts to access the Mainly accessed sections which are School, Students, Users, Scheduling, and Activities.

The system has a lot of sections to navigate to and I will just show you the major sections in this guide.

Click on SCHOOL>School Information to access the main data for the school like the name, Address, Name of the Principal, and contact details.

Click on SCHOOL>Configuration to edit the school details.

Clicking on SCHOOL>Periods will help you create and set up periods to use in your school in a day.

Navigate to STUDENTS>Add a Student to add a new student to the system.

Navigate to STUDENTS>Advanced Report to get a detailed report of a student by selecting particular fields that you want a report on.

Click on STUDENTS>Registration to configure the information about a parent.

Navigate to USERS>User Profiles to configure user-profiles and select which programs the users have access to.

Clicking on GRADES>GPA/Class Rank List allows you to view a student’s GPA from their known details like name and their ID.

The system also has an accounting information section. Navigating to ACCOUNTING>Incomes shows the total incomes and expenses and the balance.

Navigate to STUDENT BILLING>Fees to check the students billing information. It also allows an advanced search using other known details apart from Name and ID.

The FOOD SERVICE section has The students account and one can also get statements of their food accounts.

You can also download Backup Files to an external device from the system.

RosarioSIS provides a handbook/Manual that helps you navigate the system and a quick setup guide. You can find it under RESOURCES>Resources.


From this guide, we have installed RosarioSIS on the Ubuntu system and configured its database through the PostgreSQL user. We have also seen the features that Rosario offers that are more appealing to many schools which would want a Student management system in place. We have also installed RosarioSIS with Docker image on Ubuntu. The system offers a lot of features like grading, adding users, and getting resources like the handbook to use the system.

Other guides available on our website:


  1. Hello Ann and thanks for this great tutorial!

    As reported on the forum,
    RosarioSIS is not accessible with your tutorial.
    After a review, it appears you move RosarioSIS to /var/www whereas the default webroot on Ubuntu is /var/www/html/ (reference:
    So please correct this command:
    sudo mv rosariosis /var/www
    sudo mv rosariosis /var/www/html
    Thank you!


Please enter your comment!
Please enter your name here