/OnixIDE

A collaborative online editor.

Primary LanguageTypeScriptMIT LicenseMIT

OnixIDE

Editor Image

GitHub stars GitHub forks GitHub issues MIT License

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.

Key Features

  • 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.

Roadmap(Subject to change)

  • File watching for external edits
  • File tree icons + Language support
  • Multiple terminal tabs
  • AI autocomplete
  • Git integration
  • Chat

Local Development Setup

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:

Set environment variables.
frontend/.env.local (For local development)
.env

Backend:

Note: The folder open in the IDE is backend/project.

  1. Navigate to the backend directory:

    cd backend
  2. Install dependencies:

    yarn
  3. Start the development server:

    yarn dev

Frontend:

  1. Navigate to the frontend directory:

    cd frontend
  2. Install dependencies:

    yarn
  3. 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.

Running tests

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

Production Build

For production deployment, follow these steps:

  1. Export environment variables(Set them aswell.):

    export $(grep -v '^#' .env | xargs)
  2. 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.


License & Usage

MIT License