Profile
Back to NewsBack
GitHub Trending 2 min
Reader Mode
openNAMU/openNAMU: 여러 기능이 있는 위키 엔진 (Wiki engine with multiple functions)

openNAMU/openNAMU: 여러 기능이 있는 위키 엔진 (Wiki engine with multiple functions)

8 hours ago

(en-US) | (ko-KR)

오픈나무

Go 1.25 이상</a> 라이선스</a>

오픈나무는 Go 기반의 위키 엔진입니다.

시작하기

릴리즈 페이지에서 사용하는 운영체제와 아키텍처에 맞는 바이너리를 내려받아 실행할 수 있습니다.

릴리즈 페이지에서 다음 파일 중 하나를 내려받으세요.

| 운영체제 | 바이너리 | | --- | --- | | Linux amd64 | main.amd64.bin | | Linux arm64 | main.arm64.bin | | Windows amd64 | main.amd64.exe | | Windows arm64 | main.arm64.exe | | macOS arm64 | main.mac.arm64.bin |

Linux

./main.amd64.bin

Windows

.\main.amd64.exe

기본 포트는 3000이며, 실행 시 첫 번째 인자로 변경할 수 있습니다.

./main.amd64.bin 3000

외부에서 접근하지 않고 같은 컴퓨터에서만 사용할 때는 --localhost를 추가합니다.

./main.amd64.bin --localhost
./main.amd64.bin 3000 --localhost

서버가 정상적으로 시작되지 않을 때는 이머전시 툴을 실행할 수 있습니다.

./main.amd64.bin em

개발자용

소스 코드를 수정하거나 직접 빌드하려는 경우에 참고하세요.

클론

아래 명령을 터미널(명령 프롬프트)에 입력하여 본 리포지토리를 클론할 수 있습니다.

  • 일반: git clone -b stable https://github.com/openNAMU/openNAMU.git
  • 베타: git clone -b beta https://github.com/openNAMU/openNAMU.git

빌드 및 테스트

소스에서 빌드하려면 Go 1.25 이상이 필요합니다.

./linux.sh linux_amd64

Windows에서는 다음 명령을 사용할 수 있습니다.

.\windows.ps1 windows_amd64

직접 빌드하려면 다음 명령을 사용할 수 있습니다.

go build -o main .
./main

변경 사항을 확인할 때는 다음 명령을 사용할 수 있습니다.

go test ./...
go vet ./...

데이터베이스 설정

기본 설정은 data/set.json에서 지정합니다.

{"db_type":"sqlite","db":"data"}

위 설정에서는 실행 디렉터리의 data.db를 SQLite 데이터베이스로 사용합니다. 설정이 없으면 SQLite의 data.db를 기본값으로 사용합니다.

MySQL을 사용하려면 data/set.json을 다음처럼 작성하고 data/mysql.json에 접속 정보를 넣습니다.

{"db_type":"mysql","db":"openNAMU"}
{"user":"username","password":"password","host":"127.0.0.1","port":"3306"}

Turso 엔진(로컬 파일)을 사용하려면 db_type을 turso로 지정합니다. 파일 이름은 SQLite와 같은 방식으로 해석되며, 서버나 네트워크 접속 없이 data.db를 Turso 임베디드 드라이버로 엽니다.

{"db_type":"turso","db":"data"}

turso를 선택하면 MVCC 저널 모드(journal_mode = mvcc)가 기본 적용되어 동시 쓰기 충돌이 완화됩니다. 단, MVCC는 아직 실험적 기능이므로 중요한 위키 데이터는 정기적으로 백업하세요. 제약 사항은 다음과 같습니다.

  • Turso로 데이터를 쓴 뒤 db_type을 sqlite로 되돌리려면 먼저 체크포인트를 실행해야 변경 사항이 보입니다.
  • 서버 실행 중 데이터베이스 파일을 sqlite3 CLI 등 다른 프로세스로 열지 마세요.
  • windows/arm64 바이너리에서는 turso를 선택할 수 없습니다(기본 제공 라이브러리 미제공).
기존 데이터베이스를 전환하기 전에는 반드시 데이터베이스와 설정 파일을 백업하세요.

현재 상태

오픈나무는 현재 beta 단계입니다.

  • Go 단일 서버로 실행합니다.
  • SQLite, MySQL, Turso(임베디드)를 지원합니다.
  • 기본 스킨과 언어 데이터는 바이너리에 포함됩니다.

기여

오픈나무에는 확인되지 않은 버그가 존재할 수 있습니다. 이를 보고해주시면 오픈나무의 발전을 도울 수 있습니다. 여기를 눌러 버그를 보고해주세요.

오픈나무는 오픈소스 프로젝트입니다. 원한다면 직접 코드를 수정하고 Pull Request를 보낼 수 있습니다.

라이선스

오픈나무 프로젝트는 BSD 3-Clause License를 따릅니다. 자세한 내용은 문서를 참고하세요.

포함된 외부 프로젝트

도움을 주신 분들

지원 문법

  • 나무마크 (NamuMark)
  • 마크다운 (Markdown)
  • MacroMark
  • Raw

기타

Chat with me