Fork 0
mirror of https://codeberg.org/Mo8it/AdvLabDB.git synced 2024-07-17 21:28:58 +00:00
Go to file
2024-03-05 17:32:16 +01:00
advlabdb Fix error message 2024-03-05 17:28:51 +01:00
cli Fix experiment mark check before adding the group experiment 2024-03-05 17:28:44 +01:00
deploy Update Traefik config 2023-11-01 22:08:58 +01:00
.containerignore Allow copying requirements.txt 2023-11-03 21:44:07 +01:00
.gitignore Update .gitignore 2023-11-03 21:22:13 +01:00
.ignore Add .ignore for editors 2023-11-04 21:21:08 +01:00
.typos.toml Update deps 2022-10-08 14:44:14 +02:00
CHANGELOG.md Bump version 2024-03-05 17:32:16 +01:00
compose.yaml Set the environment variable ADVLABDB_DATA_DIR in the Containerfile 2023-02-02 13:41:08 +01:00
Containerfile Update Containerfile 2023-11-03 21:44:39 +01:00
init.sh Make init.sh executable 2023-11-03 21:42:36 +01:00
LICENSE.txt Rename license file 2023-11-04 21:21:01 +01:00
manage.py Remove nosec comments 2023-11-03 21:21:50 +01:00
poetry.lock Update deps 2024-03-05 15:51:02 +01:00
pyproject.toml Bump version 2024-03-05 17:32:16 +01:00
README.md Use ruff 2023-11-02 18:47:46 +01:00
requirements.txt Update deps 2024-03-05 15:51:02 +01:00
run.py Make run.py executable 2022-09-10 18:26:56 +02:00



AdvLabDB is a database with a web interface for labs.

Admins have an interface to manage students, groups, experiments, appointments, marks and analyse data.

Assistants have a separate interface to set marks and schedule appointments with students.

Getting Started

You can deploy AdvLabDB easily using Docker. Take a look at compose.yaml as a starting point for usage with docker compose.

The container uses two volumes:

  • One volume has to be mounted at /volumes/data in the container. This volume has to contain the two files settings.ini and secrets.ini:
    • A template for settings.ini can be found at deploy/settings_template.ini. This template will be automatically copied to the data volume as default settings file if a settings file does not already exist.
    • The file secrets.ini will be generated automatically after the first start of the container if it does not exist.
  • The second volume has to be mounted at /volumes/logs to store logs.

After configuring a compose file, run the command sudo docker compose run advlabdb manage.py setup init-db to initialize the database with a guide.

After the database initialization, run sudo docker compose up -d to start the container.

All inclusive

If you don't want to use your own reverse proxy, you can use compose.yaml directly with Traefik as a reverse proxy:

  • Create a directory ~/advlabdb (You use another path, but then change it also in the following steps).
  • Move into the directory ~/advlabdb and clone the repository into it as repo: git clone https://codeberg.org/mo8it/AdvLabDB.git ~/advlabdb/repo
  • Copy the directory deploy/traefik into the parent directory ~/advlabdb: cp ~/advlabdb/repo/deploy/traefik ~/advlabdb
  • Open the file ~/advlabdb/traefik/etc/traefik.yaml, uncomment email: EMAIL and replace EMAIL it with your email address. You will receive a notification to this email address if any problem with your SSL certificate (for https) occur, for example certificate expiration.
  • Open the file ~/advlabdb/traefik/etc/dynamic, uncomment rule: Host(`SERVER_NAME`) and replace SERVER_NAME with your domain, advlabdb.mo8it.com for example.
  • Change the time zone TZ in ~/advlabdb/traefik/compose.yaml if it is not Europe/Berlin. Use the command tzselect to find out your time zone.
  • Now start Traefik by running the command sudo docker compose up -d in the directory ~/advlabdb/traefik.
  • Create directories for the data and logs volumes: mkdir ~/advlabdb/{data,logs}
  • Change the time zone TZ in ~/advlabdb/repo/compose.yaml if it is not Europe/Berlin.
  • Initialize the database by running sudo docker compose run advlabdb manage.py setup init-db in the directory ~/advlabdb/repo and following the guide.
  • Start AdvLabDB by running the command sudo docker compose up -d in the directory ~/advlabdb/repo.
  • Visit the domain that you specified in the Traefik configuration as SERVER_NAME to test if AdvLabDB is running. If this is not the case, open an issue, maybe I could help :)

What does the name mean?

Advanced Lab DataBase