- frontend — (r7learn.xorg.su)
- admin_panel — (admin.r7learn.xorg.su)
- backend — ASP.NET Core
- converter — docx → markdown converter
- TestCreator — test generator from txt
- nginx — internal reverse-proxy for services
- EXTERNAL_nginx_configurations — external nginx configs
- integration_test — automated integration tests
- Monitoring — system monitor for platform
R7L-full/
├── admin_panel/ # Admin panel (frontend for admins)
├── backend/ # Backend (ASP.NET Core)
├── converter/ # docx → markdown converter service
├── TestCreator/ # Test generator
├── frontend/ # Main user frontend
├── nginx/ # Nginx configs and .htpasswd
├── resources/ # Uploaded files
├── monitoring/ # System Monitor (R7L-monitor)
├── integration_test/ # Integration tests
├── scripts/ # Utility scripts
├── docker-compose.yml # Docker Compose configuration
├── .env # Environment variablesPOSTGRES_USER— database user namePOSTGRES_PASSWORD— database user passwordPOSTGRES_DB— database nameJWT_SECRET— JWT Secret for backend authentication
Use provided scripts for fast setup and maintenance
cd /opt/R7L-full/
mv .env.example ./scripts
cd /opt/R7L-full/scripts
bash gen_env.sh
mv .env ../
nano make.sh # EDIT EMAIL
bash make.sh # Build and start all services
⚠️ WARNING: R7L-monitor not start with make.sh, please run service manual.
cd /opt/
git clone https://github.com/VLADos-IT/R7L-full.git
cd R7L-fullcd /opt/R7L-full/
cp .env.example ./scripts
cd ./scripts
bash gen_env.sh
mv .env ../docker network create r7l-network
docker compose build
docker compose up -dcp /opt/R7L-full/EXTERNAL_nginx_configurations/r7learn.xorg.su.conf /etc/nginx/sites-available/
ln -s /etc/nginx/sites-available/r7learn.xorg.su.conf /etc/nginx/sites-enabled/
cp /opt/R7L-full/EXTERNAL_nginx_configurations/admin.r7learn.xorg.su.conf /etc/nginx/sites-available/
ln -s /etc/nginx/sites-available/admin.r7learn.xorg.su.conf /etc/nginx/sites-enabled/
cp /opt/R7L-full/EXTERNAL_nginx_configurations/monitor.r7learn.xorg.su.conf /etc/nginx/sites-available/
ln -s /etc/nginx/sites-available/monitor.r7learn.xorg.su.conf /etc/nginx/sites-enabled/
cp /opt/R7L-full/nginx/.htpasswd /etc/nginx/
systemctl start nginx
certbot --nginx -d r7learn.xorg.su
certbot --nginx -d admin.r7learn.xorg.su
certbot --nginx -d monitor.r7learn.xorg.su
systemctl restart nginxchown -R 101:101 ./resources
chown -R 101:101 ./backend/DataProtection-Keys
chown -R 472:472 ./grafana/datamkdir /opt/R7L-monitor
cp -r /opt/R7L-full/monitoring /opt/R7L-monitor
docker network create monitoring-net
cd /opt/R7L-monitor
docker compose -f docker-compose.monitoring.yml up -d- User interface: https://r7learn.xorg.su
- Admin panel: https://admin.r7learn.xorg.su
- Monitor panel: https://monitor.r7learn.xorg.su
bash scripts/backup.shdocker exec -i r7l-postgres psql -U $POSTGRES_USER -d $POSTGRES_DB < /opt/r7l_backups/db_backup_YYYY-MM-DD_HH-MM-SS.sqltar xzf /opt/r7l_backups/resources_YYYY-MM-DD_HH-MM-SS.tar.gz -C /opt/R7L-full/resourcesIntegration tests run automatically via Docker Compose on build.
To run manually:
docker compose run --rm integration-testSee docs/API.md for a full description of all backend API endpoints, request/response formats, and error handling.
Recommended:
Use the script:
bash scripts/update.sh
Or manually:
git pull
docker compose build
docker compose up -d
⚠️ WARNING:
docker compose down -v --remove-orphanswill remove all Docker volumes, including your database volume.
This will erase all database data!
Use with caution and only if you have backups or do not need the data. Recommended:
Use the script:
bash scripts/cleanup.sh
Fully uninstall:
docker compose down
docker system prune -a --volumes --force && docker builder prune --all --force
docker compose down -v --remove-orphans
rm -rf /etc/nginx/sites-enabled/r7learn.xorg.su.conf
rm -rf /etc/nginx/sites-enabled/admin.r7learn.xorg.su.conf
rm -rf /etc/nginx/sites-enabled/monitor.r7learn.xorg.su.conf
systemctl reload nginxMONITORING:
Alerts to email setup on webpage monitoring system.
docker compose -f docker-compose.monitoring.yml down -v --remove-orphanscertbot delete --cert-name r7learn.xorg.su
certbot delete --cert-name admin.r7learn.xorg.su
certbot delete --cert-name monitor.r7learn.xorg.su
