Sign inSign up

amirul123/opensis-classic

By amirul123

•Updated 3 days ago

openSIS-Classic - self-hosted student information system. Apache + PHP 8.2 app image.

Image
Web servers
Content management system
0

10K+

amirul123/opensis-classic repository overview

⁠🏫 openSIS-Classic — Dockerized

Docker Pulls GitHub Actions License

openSIS-Classic is a free, open-source student information system originally by OS4ED⁠. This image packages the Amirul78800/openSIS-Classic⁠ fork (Apache + PHP 8.2) for easy self-hosted deployment.

This is the app image only. It runs alongside a separate MariaDB container — see Quick Start below. There is no bundled database in this image.


⁠✨ Features
  • Lean app image — Apache + PHP 8.2 only, tuned PHP settings (memory_limit, upload_max_filesize, max_execution_time, etc.) for openSIS's bulk imports/exports.
  • Separate database container — official mariadb image, so DB can be backed up/upgraded independently of the app.
  • Persistent storage — app code, Data.php, uploaded files, and DB data all survive container restarts via Docker volumes.
  • Multi-architecture — linux/amd64 and linux/arm64.
  • Built-in healthcheck — container reports unhealthy if Apache stops responding.
  • Auto-lock installer — /install is automatically blocked once setup is detected complete (re-openable via ALLOW_INSTALL=true).
  • Automated CI/CD — built and pushed via GitHub Actions on every push.

⁠🚀 Quick Start
git clone https://github.com/Amirul78800/openSIS-Classic.git
cd openSIS-Classic

cp .env.example .env
nano .env   # set MARIADB_ROOT_PASSWORD and other values

docker compose up -d

Open http://<your-server-ip>:8090 (or whatever HOST_PORT you set) and follow the web installer.

Database Connection step, use:

FieldValue
Serverdb
Port3306
Usernameroot
Passwordvalue of MARIADB_ROOT_PASSWORD in your .env

Database Selection step: enter a database name (e.g. opensis), tick "Create new database", then continue.


⁠⚙️ Environment Variables (.env)
VariableDefaultDescription
OPENSIS_IMAGEamirul123/opensis-classic:latestApp image/tag to pull
HOST_PORT8090Host port mapped to container port 80
TZAsia/Kuala_LumpurTimezone for both containers
MARIADB_ROOT_PASSWORD(required)Root password for the db container
ALLOW_INSTALLfalseSet true temporarily to re-open /install (e.g. for upgrades)

⁠💾 Volumes
VolumeMounted atContains
opensis_app/var/www/htmlApp code, Data.php, uploaded files, backups
opensis_db/var/lib/mysqlMariaDB data files

Back up both volumes together — Data.php (app) and the database (db) need to stay in sync.


⁠🏷️ Tags
  • latest — most recent build from the active branch
  • sha-<commit> — pinned to an exact commit, useful for reproducible deployments
  • vX.Y.Z — semantic version tags (when published)

⁠🙏 Acknowledgements
  • OS4ED⁠ — original openSIS developers
  • Licensed under GPL-2.0, same as upstream openSIS-Classic

Source, issues, and the Dockerfile/docker-compose.yml used to build this image: github.com/Amirul78800/openSIS-Classic⁠

Tag summary

Content type

Image

Digest

sha256:88dabfe2d…

Size

201.9 MB

Last updated

3 days ago

docker pull amirul123/opensis-classic