Go Sandbox
Go Sandbox - простая песочница для запуска кода го онлайн.
На данный момент есть два режима работы с кодом:
- сольный - вы работаете в одиночку
- совместный - вы можете совместно со своими друзьями писать код, наблюдаю за его изменениями и выполнением в реальном времени
Запуск
Для запуска песочницы вам нужен будет только докер.
Клонируем репозиторий:
git clone https://github.com/algrvvv/go-sandbox.git
cd go-sandbox
Запускаем команду для создания нужных волюмов и билдов:
make install
Либо делаем этот этап вручную:
docker volume create code-files
docker build -t go-runner ./executor
docker save -o go-runner.tar go-runner
docker build -t go-sandbox .
После этого мы можем запустить нашу песочницу:
make run
Либо командой:
docker run -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock -v code-files:/tmp/go-sandbox -v ./go-runner.tar:/go-runner.tar go-sandbox
Использование
Чтобы работать вместе на начальном экране, нажмите Online
, чтобы создать сессию а затем поделитесь ей
со своими друзями и творите!
Также присутствуют удобные сочетания клавиш такие как:
ctrl + shift + F
или command + shift + F
для форматирования и автоматического импорта пакетов из стандартной библиотеки
ctrl + Enter
или command + Enter
для запуска кода
TODO
- добавить удобный способ поделиться сессией
- добавить отображение колва одновременно подключенных пользователей
- добавить отслеживание сочетания клавиш для форматирования кода
- добавить запуск кода для онлайн кодинга, также с использованием вебсокетов
- добавить использование
seccomp.json
- добавить возможность сохранять файлы для дальнейшего их просмотра
- исправить баг, когда подключается новый пользователь к новой сессии - он не видит код, который писали до него. Если он решит что-то написать, сотрется предыдущий код у остальных.