프로젝트 소개
Devinorium은 AI 코딩 에이전트를 위한 자체 호스팅 웹 인터페이스로, 터미널만이 아닌 브라우저에서 에이전트를 구동할 수 있습니다. 백엔드는 Rust로 작성되었으며 axum, tokio, SQLite를 사용하고, 인증, 세션, 파일 처리 및 제공자 호출을 담당합니다. 프론트엔드는 Flutter 웹으로, 빌드 스크립트에 의해 생성되고 프론트엔드 빌드 출력 디렉터리에서 컴파일 타임에 Rust 바이너리에 내장됩니다.
제공자 레이어는 명시적으로 플러그 가능하도록 설계되어, 애플리케이션의 다른 부분을 변경하지 않고도 추가 백엔드를 도입할 수 있습니다. 지원되는 제공자로 Devin CLI, OpenCode, Codex CLI 세 가지가 나열되어 있습니다. 각 제공자는 PATH에 존재해야 하며, 자체 로그인 명령(devin login, opencode auth login, codex login)을 통해 미리 인증되어 있어야 합니다.
시작하려면 Rust 툴체인, Flutter SDK, 그리고 선택한 제공자의 CLI가 필요합니다. 저장소를 클론한 후, 예시 환경 파일을 복사하고 편집하여 부트스트랩 비밀번호를 설정합니다. README에서는 이 비밀번호가 설정되지 않거나 플레이스홀더 값으로 남아 있으면 소유자 계정이 생성되지 않고 로그인이 불가능하다고 경고합니다. 이후, Flutter 빌드 스크립트가 프론트엔드 번들을 생성하고, 릴리즈 cargo 빌드가 이를 내장하며, 데이터 디렉터리가 데이터베이스를 위해 생성되고 바이너리가 실행됩니다. 서비스는 기본적으로 localhost 포트 7878에서 수신 대기하며, 여기서 사용자는 부트스트랩 자격 증명으로 로그인합니다.
구성은 entièrement 환경 변수를 통해 이루어지며, 예시 env 파일에 문서화되어 있습니다. 설정 항목은 바인드 주소와 포트, 세션 쿠키에 서명하는 세션 키(장난 값이 제공되지 않으면 일시적이며, 긴 랜덤 값이 제공되면 지속적), SQLite 연결 문자열, 최초 실행 시 소유자 사용자명과 비밀번호, 새 스레드에 대한 기본 모델, 리버스 프록시 뒤에서 forwarded-for 헤더 신뢰, 최대 요청 본문 크기, HTTPS를 위한 보안 쿠키 플래그, CSRF 검사를 위한 명시적으로 허용된 출처 등이 포함됩니다. 데이터베이스 마이그레이션은 시작 시 자동으로 실행됩니다.
개발 과정에는 포맷팅 검사, 경고를 거부하는 clippy, 그리고 테스트 스위트가 포함됩니다. 더 엄격한 pedantic과 nursery 린트 그룹은 점진적으로 활성화할 백로그로 언급되어 있습니다.
README에 따르면 Devinorium은 HTTP만 제공하므로, 원격 또는 공개 노출 시 TLS를 종료하는 리버스 프록시 또는 터널을 거쳐야 하며, 별도의 문서 파일에 상세한 배포 예시가 제공됩니다. 프로젝트는 AGPL-3.0-only 라이선스로 배포되며, 설명된 저장소는 GitLab 프로젝트의 GitHub 미러입니다. 문서의 스크린샷에서는 데스크톱과 모바일에서의 인터페이스를 보여주며, 사이드바, 스레드, 코드 에디터 뷰가 포함됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.