octo-server์(๋) ๋ฌด์์ ํ๋์?
๐ OCTO(Open Collaborative and Transformative Office) โ ์ธ๊ฐ๊ณผ ์ธ๊ณต์ง๋ฅ ์์ด์ ํธ๋ฅผ ์ํด ๊ตฌ์ถ๋ ๊ฐ๋ฐฉํ ์์ ๊ณต๊ฐ์ ๊ตฌ๋ํ๋ Go ๋ฐฑ์๋์ ๋๋ค. REST ๋ฐ WebSocket API, Lobster(์ธ๊ณต์ง๋ฅ ์์ด์ ํธ) ์ค์ผ์คํธ๋ ์ด์ , ๊ทธ๋ฆฌ๊ณ WuKongIM ์ค์๊ฐ ๋ฉ์์ง ์ ์ด ํ๋ฉด์ ์ ๊ณตํฉ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
- REST API: ์ธ๊ณต์ง๋ฅ ์์ด์ ํธ์ ์ฌ์ฉ์ ๊ฐ์ ์ํ ๊ด๋ฆฌ ๋ฐ ์์ ์ ์ถ์ ์ํ HTTP ๊ธฐ๋ฐ ์ธํฐํ์ด์ค.
- WebSocket API: ์ค์๊ฐ ์๋ฐฉํฅ ํต์ ์ ์ง์ํ์ฌ, ์์ด์ ํธ๊ฐ ์์ ์งํ ์ํฉ์ ์ฆ์ ์๋ฆด ์ ์์ต๋๋ค.
- Lobster ์ค์ผ์คํธ๋ ์ด์ : ์ฌ๋ฌ ์ธ๊ณต์ง๋ฅ ์์ด์ ํธ๋ฅผ ์กฐ์จํ๊ณ ์์ ์ ํ ๋นํ๋ ์ค์ ์ ์ด ์์คํ .
- WuKongIM ์ ์ด ํ๋ฉด: WuKongIM ์ค์๊ฐ ๋ฉ์์ง ์์คํ ์ ๊ด๋ฆฌํ๊ณ ์ ์ดํ๋ ์ธํฐํ์ด์ค.
์์ํ๊ธฐ
์ฌ์ ์๊ตฌ ์ฌํญ
- Go 1.20 ์ด์
- MySQL ๋๋ PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค
- Redis (์ ํ ์ฌํญ, ์บ์ฑ ๋ฐ ์ธ์ ๊ด๋ฆฌ์ฉ)
- WuKongIM ์๋ฒ (์ค์๊ฐ ๋ฉ์์ง ๊ธฐ๋ฅ ์ฌ์ฉ ์)
์ค์น
git clone https://github.com/Mininglamp-OSS/octo-server.git
cd octo-server
cp config.yaml.example config.yaml
# config.yaml ํ์ผ์ ํธ์งํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ ๋ณด ์
๋ ฅ
make build
./bin/octo-server
API ๋ฌธ์
์๋ฒ๊ฐ ์คํ ์ค์ผ ๋ http://localhost:8080/swagger/index.html์์ Swagger ๋ฌธ์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ค์
config.yaml ํ์ผ์์ ๋ค์์ ์ค์ ํ ์ ์์ต๋๋ค:
| ํ๋ผ๋ฏธํฐ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
|---|---|---|
server.port | HTTP ์๋ฒ ํฌํธ | 8080 |
database.dsn | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ฌธ์์ด | root:password@tcp(127.0.0.1:3306)/octo?charset=utf8mb4&parseTime=True&loc=Local |
lobster.endpoint | Lobster ์ค์ผ์คํธ๋ ์ด์ ์๋น์ค ์ฃผ์ | http://localhost:9090 |
wukongim.api_key | WuKongIM ์ ์ด ํ๋ฉด API ํค | "" |
๋ผ์ด์ ์ค
Apache 2.0 ๋ผ์ด์ ์ค ํ์ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ธ์.