A Full Stack Application build with Vite+React (frontend) and Nest.js for the API. NX is used to organise the monorepo.
| Linuxmuster.net official | ✅ YES |
|---|---|
| Community support | ✅ YES |
| Actively developed | ✅ YES |
- Node.js 20 LTS
- Running MongoDB
- Running Redis
Read the public key and certificate from oidc provider (Keycloak >> realm settings >> keys). Then add edulution.pem file to the project root. Insert the key/cert as follwed:
-----BEGIN CERTIFICATE-----
<CERTIFICATE CONTENT>
-----END CERTIFICATE-----
-----BEGIN PUBLIC KEY-----
<PUBLIC KEY CONTENT>
-----END PUBLIC KEY----
-
Install dependencies:
npm install
-
Place a
.envfile in apps/api and a.env.developmentfile in apps/frontend (.env.defaultas template) -
Setup redis and mongoDB via
docker-compose.ymldocker compose pull docker compose up -d
-
Start API
npm run api
The API will be served on http://localhost:3001/
-
Start Frontend
npm run dev
The frontend will be served on http://localhost:5173/
-
Production build
npm run build:all
npm run build:all && \
docker build -t ghcr.io/edulution-io/edulution-ui -f apps/frontend/Dockerfile . && \
docker build -t ghcr.io/edulution-io/edulution-api -f apps/api/Dockerfile . && \
docker compose up -dVisit https://get.edulution.io to get the deployment script. Or copy:
bash <(curl -s https://get.edulution.io/installer)-
Start the OnlyOffice container from the settings (http://localhost:5173/settings/filesharing), make sure the port
8088is available. -
Enter the Only Office Integration values in the settings (http://localhost:5173/settings/filesharing):
- OnlyOffice-URL:
http://host.docker.internal:8088/ - OnlyOffice JWT Secret:
<your-secret
- On some systems
host.docker.internalis not natively available without additional configuration. How to set up in Linux:
- Find the host machine's IP address
ip addr show docker0
- Add the mapping to
/etc/hostssudo nano /etc/hosts
- Add the following line (replace the IP with the actual one)
172.17.0.1 host.docker.internal
- You are done. Test it with
wget http://host.docker.internal:5173