eCourse is a self-hosted SPA designed to simplify course creation and management, some of the features include:
Use the following credentials for testing the demo:
Username: ilyas
Password: ecourse123
UI Framework - Svelte
CSS - TailwindCSS
Icons - Iconify
Backend - PocketBase
Hosting - PocketHost
Get started by running the project locally, simply follow these steps:
Clone/download the repo
Grab the PocketBase executable for your OS from: https://pocketbase.io/docs/ and drop it at the root of the pb
folder.
Start the PocketBase server
cd pb
./pocketbase serve
cd ui
npm install && npm run dev
App name, logo, and colors can be customized using the customize.json
file.
One neat thing about PocketBase is that it can also serve our static frontend assets. to do that simply follow these steps:
Add the server URL where your PocketBase instance is hosted to VITE_PROD_PB_URL
in the .env
file
Build a production-ready bundle
cd ui
npm run build
dist
folder over to pb_public
You can use the following Dockerfile to automate the steps above:
FROM node:20.11.1-buster
WORKDIR /
RUN git clone https://github.com/Ilyas-Codes/eCourse.git
ARG PB_VERSION=0.21.3
ADD https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip /tmp/pb.zip
RUN unzip /tmp/pb.zip -d /eCourse/pb
WORKDIR /eCourse/ui
RUN sed -i 's/^VITE_PROD_PB_URL=.*/VITE_PROD_PB_URL=http:\/\/127.0.0.1:8090/' .env
RUN npm install
RUN npm run build
RUN mv dist/* /eCourse/pb/pb_public
EXPOSE 8090
CMD ["/eCourse/pb/pocketbase", "serve", "--http=0.0.0.0:8090"]
Feel free to open an issue/PR if you find any bugs or want to request new features.
Licensed under the MIT License, Copyright © 2024