프로젝트 소개
Pagoda는 Go로 작성된 풀스택 웹 개발 스타터 키트이자 관리자 패널입니다. 프레임워크가 아닌 템플릿 저장소로, `go get` 대신 클론하여 사용하며 코드를 자신의 애플리케이션에 맞게 조정합니다. 목표는 완전한 웹 프레임워크에서 기대되는 많은 기능을 제공하면서도 모든 코드를 제어할 수 있게 하고, 엄격한 인터페이스나 잠금 없이 유지하는 것입니다.
기반 및 스택
- 백엔드: Echo(HTTP 프레임워크), Ent(코드 생성 포함 ORM), Gomponents(Go로 작성된 HTML 컴포넌트).
- 프론트엔드: 서버 사이드 렌더링 HTML, AJAX/부분 업데이트용 HTMX, 클라이언트 동작용 Alpine.js, Tailwind CSS 위의 DaisyUI 스타일링. JavaScript나 CSS 작성 없이, 심지어 HTML 직접 작성 없이 현대적 UI를 구축하는 것을 강조합니다.
- 저장소: 기본 데이터베이스는 SQLite이며, 영구 백그라운드 작업 큐에도 사용됩니다. 캐싱은 메모리 내에서 수행됩니다. README는 Postgres와 Redis가 이전 기본값이었으며, 해당 설정을 위한 유지되지 않는 브랜치를 언급합니다.
포함된 기능
- 인증, 캐시, 구성, 데이터베이스, 파일, 메일, ORM, 작업, 검증기, 웹 서비스를 위한 의존성 주입이 포함된 서비스 컨테이너. 한 번의 호출로 초기화 및 정상 종료가 가능하며 라우트 핸들러에 전달됩니다.
- viper를 사용한 환경 변수 오버라이드가 가능한 YAML 구성 및 환경 전환(특히 테스트 환경).
- Ent를 통한 데이터베이스 자동 마이그레이션 및 별도의 테스트 데이터베이스(기본적으로 인메모리 SQLite).
- User 및 PasswordToken 엔티티 타입을 위한 ORM, 새 엔티티 타입 생성 및 생성을 위한 Makefile 헬퍼. Ent를 제거하면 동적 관리자 패널도 제거됩니다.
- Gorilla 세션을 통한 쿠키 기반 세션, 암호화됨. README는 라이브 환경에서 기본 암호화 키를 변경하라고 경고합니다.
- 인증: 로그인/로그아웃, 비밀번호 재설정 토큰(bcrypt 해시, 구성 가능한 만료), 등록, 사용자 관리자 플래그, 인증 필요/불필요/관리자 접근을 위한 미들웨어, 이메일 검증.
- 코드 생성, 접근 제어 및 로드맵이 있는 관리자 패널. 스크린샷은 엔티티 목록/편집 보기 및 작업 큐 모니터링을 보여줍니다.
- 사용자 정의 미들웨어, 핸들러, 오류 처리, 리디렉션 및 테스트 헬퍼(HTTP 서버, 요청/응답 헬퍼, Goquery)가 있는 라우팅.
- UI 레이어: Gomponents 기반 컴포넌트, 레이아웃, 페이지, 제출 처리, 인라인 검증 및 CSRF 보호가 있는 폼, 모델, 아이콘, 노드 캐싱 및 플래시 메시징.
- 추가 서비스: 페이저, 캐시(데이터 및 태그 설정/가져오기/플러시), 큐, 디스패처 및 모니터링이 있는 작업, 크론, 파일 업로드 및 캐시 버스팅 및 캐시 제어 헤더가 있는 정적/공개 파일, 이메일, HTTPS 및 로깅.
시작하기
Go를 설치하고, 저장소를 클론하고, 선택적 도구(Ent 생성기, 라이브 리로드용 Air, Tailwind CLI)를 위해 `make install`을 실행하고, `make admin email=...`으로 관리자 계정을 생성(콘솔이 생성된 비밀번호를 출력)한 다음 `make run`을 실행합니다. 앱은 기본적으로 localhost:8000에서 사용 가능하며 데이터는 `dbs` 디렉토리에 있습니다. `make watch`는 자동 CSS 재컴파일과 함께 라이브 리로드를 활성화합니다.
라이선스 및 상태
이 프로젝트는 MIT 라이선스이며, Awesome Go에 언급되고, CI 테스트 및 Go Report Card 배지가 있습니다. README는 상세하며 코드베이스의 안내 투어 역할을 하여, 모든 구성 요소를 교체할 수 있는 기능을 유지하면서 배터리 포함 시작점을 원하는 개발자에게 적합합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.