OnixIDE is a powerful collaborative online IDE built with Node.js, designed for real-time file synchronization via WebSockets. It's a environment perfect for basic collaborative projects.
- Advanced Code Editor: Utilizes CodeMirror 6 for a rich text-editing experience with syntax highlighting, autocompletion, and more.
- Dynamic File Tree: Supports drag-and-drop file uploads, making it easier to manage project files.
- Built-in Terminal: Execute commands directly within the IDE without leaving the interface.
- Real-time Collaboration: Work with multiple users simultaneously on the same files with seamless updates and synchronization.
- Fully online: Runs entirely in your browser.
- Draggable panels: Drag panels for better visibility.
- Git integration: Control git from a editor tab.
- File watching for external edits
- File tree icons + Language support
- Multiple terminal tabs
- AI autocomplete
- Git integration
- Chat
The code has gone through a lot of rewrites and changes, so it might be a bit messy in places, but it works. To get started with local development:
frontend/.env.local (For local development)
.env
Note: The folder open in the IDE is backend/project.
-
Navigate to the backend directory:
cd backend -
Install dependencies:
yarn
-
Start the development server:
yarn dev
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
yarn
-
Start the frontend server:
yarn dev
Note: Run both servers (frontend and backend) in separate terminal windows. Once running, open the IDE on
http://localhost:3000.
To Run the End-to-End testing on the application.
-
Run docker Production Build in parallel.
-
Run tests:
npm i npx playwright install --with-deps npx playwright test
For production deployment, follow these steps:
-
Export environment variables(Set them aswell.):
export $(grep -v '^#' .env | xargs)
-
Build and run the application using Docker Compose:
docker compose up --build
This will launch the application with all required services in a production-ready environment.
MIT License
