https://github.com/algrvvv/go-sandbox
Песочница для запуска го кода прямо в браузере
https://github.com/algrvvv/go-sandbox
docker go go-playground golang sandbox
Last synced: 2 months ago
JSON representation
Песочница для запуска го кода прямо в браузере
- Host: GitHub
- URL: https://github.com/algrvvv/go-sandbox
- Owner: algrvvv
- License: mit
- Created: 2024-07-20T08:36:48.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-12-31T12:11:16.000Z (5 months ago)
- Last Synced: 2025-01-21T04:12:56.309Z (4 months ago)
- Topics: docker, go, go-playground, golang, sandbox
- Language: Go
- Homepage:
- Size: 63.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go Sandbox
Go Sandbox - простая песочница для запуска кода го онлайн.
На данный момент есть два режима работы с кодом:
- сольный - вы работаете в одиночку
- совместный - вы можете совместно со своими друзьями писать код, наблюдая за его изменениями и выполнением в реальном времени### Запуск
Для запуска песочницы вам нужен будет только докер.
Клонируем репозиторий:
```shell
git clone https://github.com/algrvvv/go-sandbox.git
cd go-sandbox
```Запускаем команду для создания нужных волюмов и билдов:
```shell
make install
```Либо делаем этот этап вручную:
```shell
docker volume create code-files
docker build -t go-runner ./executor
docker save -o go-runner.tar go-runner
docker build -t go-sandbox .
```После этого мы можем запустить нашу песочницу:
```shell
make run
```Либо командой:
```shell
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
- [x] добавить удобный способ поделиться сессией
- [x] добавить отображение колва одновременно подключенных пользователей
- [x] добавить отслеживание сочетания клавиш для форматирования кода
- [x] добавить запуск кода для онлайн кодинга, также с использованием вебсокетов
- [ ] добавить использование `seccomp.json`
- [ ] добавить возможность сохранять файлы для дальнейшего их просмотра
- [ ] исправить баг, когда подключается новый пользователь к новой сессии - он не видит код, который писали до него. Если он решит что-то написать, сотрется предыдущий код у остальных.