This starter kit provides a basic application built with the Drumee framework, demonstrating how to integrate backend and frontend components. It aims to help developers quickly get started with Drumee development. It is not intended to be deployed on production, as it has been designed to run on a simplified environment, i.e localhost.
If you need to production ready installation, head to this page.
- Introduction
- Prerequisites
- Project Structure
- Setup and Installation
- Running the Application
- Backend Overview
- Frontend Overview
- Troubleshooting
- Contributing
- License
Drumee is an OS-like full-stack framework designed to simplify development by providing a single bundle, easy deployment, and a low learning curve SDK. This starter kit showcases a simple application that leverages Drumee's backend and frontend capabilities, allowing you to explore its features and build your own applications.
Before you begin, ensure you can comply to following requirements:
- RAM at least 8Go
- CPU at leat 2 GHz
- Enough space to host what you need
To avoid polluting your environment, this starter kit comes with a Docker image that already provides all dependencies.
- Dokcer (28 or gigher)
- nodejs (22 or gigher)
If you don't have already Docker installed, please head to the official installation guide
If you don't have already Nodejs installed, please follow (installation guide here)[https://nodejs.org/en/download/]
.
├── bin /** Shell scripts required by backend **/
│ └── ...
├── configure /** Prepare the installation environment **/
│ └── ...
├── docker.d /** Starter scripts for docker **/
│ └── ...
├── docker.yaml /** Automatically generated. Do not change **/
├── drumee-os /** Drumee OS sources. Use npm run dev to make changes updated on the server **/
│ ├── server-team
│ └── ui-team
├── LICENSE
├── node_modules
│ ├── ...
│ └── ...
├── plugins /** Plugins. **/
├── runtime /** Drumee runtime directories (backend and frontend builds) **/
│ ├── server
│ ├── static
│ ├── tmp
│ └── ui
├── setup /** Automatically generated. Do not change **/
├── storage /** Drumee storage directories (db + meta file system) **/
│ ├── data
│ └── db
└── tree.md /** This file **/
Get the Drumee Starter Kit, this project.
git clone https://github.com/drumee/starter-kit.git
After download completed, navigate into the starter-kit and run auto configuration
cd starter-kit
npm i
npm run configure
The configuration utilities will create files, directories and install packages required to run Drumee OS. Plrease refer to the Project Structure to have an overview of each directory role.
After the configuration completion, run.
npm run server.configure
The above command will configure the Docker container intended to host the Drumee Server. This command needs to be executed only once. At this step,your Drumee environment is ready.
After the server setup is sucessfully completed, start Drumee Server.
npm run server.start
Set the admin password. Open the file storage/data/tmp/welcome.html and click on the link. Once the password set, the link is no more valid. If you want to change the password again, use the Drumee User Interface to do it.
Drumee is a pure client-side rendering application. There no code in the backend dedicated to handle frontend interaction. Backend source is installed in drumee-os/server-team. You can try changes on the backend with bellow command.
cd drumee-os/server-team
npm run dev
Changes on files from this directory will be synced to runtime/server/main and the server will automaticall restart.
Drumee backend is made of 3 processes, all managed through pm2. To see all backend processes
npm run server.list
The process factory is a background one, it's dedicated to pre-build Databases Schemas, which are store in a pool for dynamic allocation.
The main is dedicated to serve the application loader and maintain websocket connection with client-side
The main/service is a micro services runner. See files in drumee-os/server-team/acl to explorer all availables services.
To see backend main process log.
npm run log.main
To see backend services process log.
npm run log.service
Drumee is a pure client-side rendering application. The whole user interface is fully handled on the clien-side.Frontend source is installed in drumee-os/ui-team. You can try changes on the frontend with bellow command.
cd drumee-os/ui-team
npm run dev
Changes on files from this directory will be bundle into runtime/ui/main the server will automaticall restart.
- Port Conflicts: If you encounter issues with applications not starting due to port conflicts, ensure that the
PORTenvironment variable in your.envfiles is set to an available port. - Dependency Issues: If
npm installfails, try clearing the npm cache (npm cache clean --force) and reinstalling. - Backend/Frontend Communication: Verify that
REACT_APP_API_URLin your frontend.envfile correctly points to your backend server address and port. - Drumee Specific Issues: For issues related to Drumee's core functionalities, refer to the official Drumee documentation and GitHub repositories.
We welcome contributions to this Drumee Starter Kit! If you have suggestions for improvements, new features, or bug fixes, please feel free to:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature-name). - Make your changes.
- Commit your changes (
git commit -m 'Add new feature'). - Push to the branch (
git push origin feature/your-feature-name). - Open a pull request.
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.
[1] https://github.com/drumee/debian-hosted [2] https://github.com/drumee/server-team [3] https://github.com/drumee/server-essentials [4] https://github.com/drumee/server-core [5] https://github.com/drumee/ui-team