그누6(fastapi-python3.8)

그누보드 6 fastapi 설치기 / 도커 설치 가이드

자무카 2025. 5. 28.

https://github.com/gnuboard/g6?tab=readme-ov-file#%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95

[GitHub - gnuboard/g6: 파이썬 게시판 그누보드6 : GNUBOARD6 is Python CMS with fastapi

파이썬 게시판 그누보드6 : GNUBOARD6 is Python CMS with fastapi - gnuboard/g6

github.com](https://github.com/gnuboard/g6?tab=readme-ov-file#%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95)

    • MySQL, PostgreSQL, SQLite 중 하나의 데이터베이스를 선택하여 설정할 수 있습니다.
      • MySQL, PostgreSQL : 연결에 필요한 정보들을 입력합니다.
      • SQLite : 연결정보가 필요 없으며, 설치 시 루트 디렉토리에 sqlite3.db 데이터베이스 파일이 생성됩니다.

그누보드 안정성을 기대하며, 설치했으나 개발이 사실상 중단된 것 같다. 쇼핑몰까지는 나와야 사람들이 많이 사용할텐데...

게시판 글 등록 오류

이거 보고 접었다. 이 기초 오류가 남아있을 정도면 이 프로젝트는 사장된 것 같다. 아휴.... 직접 만들어쓰면 시간 아깝고.

아직도 그누보드 php 는 버릴수가 없네...

 

FastAPI 기반 G6(Gnuboard6) Docker 설치 가이드

📁 디렉토리 구조

/srv/docker/g6/
├── docker-compose.yml
├── Dockerfile
└── src/         ← G6 소스코드

1️⃣ G6 소스코드 클론

mkdir -p /srv/docker/g6
cd /srv/docker/g6
git clone https://github.com/gnuboard/g6 src

2️⃣ Dockerfile 작성

# /srv/docker/g6/Dockerfile

FROM python:3.10-slim

WORKDIR /app

COPY ./src /app

RUN pip install --no-cache-dir -r requirements.txt

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8888"]

3️⃣ docker-compose.yml 작성

# /srv/docker/g6/docker-compose.yml

version: "3.9"

services:
  g6_app:
    build: .
    container_name: g6_app
    working_dir: /app
    volumes:
      - ./src:/app
    ports:
      - "8888:8888"
    command: >
      bash -c "pip install --no-cache-dir -r requirements.txt &&
               uvicorn main:app --host 0.0.0.0 --port 8888"
    restart: always

4️⃣ .env 파일 설정

cp src/example.env src/.env
# src/.env 내용 예시 (SQLite 사용 시)

DB_ENGINE = sqlite
DB_NAME = ./data/g6.db
APP_IS_DEBUG = True

5️⃣ Docker 컨테이너 실행

cd /srv/docker/g6
docker compose up -d --build

6️⃣ 설치 마법사 접속

브라우저에서 접속:

http://서버IP:8888/install
  • 관리자 계정 생성
  • 사이트 기본 정보 설정

7️⃣ 설치 완료 후 보안 조치

cd /srv/docker/g6/src
rm -rf install

✅ 기타 참고

FastAPI 코드 자동 반영 (--reload 옵션 추가 시)

command: >
  bash -c "pip install --no-cache-dir -r requirements.txt &&
           uvicorn main:app --host 0.0.0.0 --port 8888 --reload"

컨테이너 안에서 코드 반영 확인

docker exec -it g6_app bash
cd /app
ls bbs/
cat bbs/board.py

🧭 상태 점검 명령

docker ps
docker logs -f g6_app
ss -tuln | grep 8888

📌 요약

항목
G6 버전 FastAPI 기반
포트 8888
DB SQLite (기본)
호스트 ↔ 컨테이너 동기화 volumes: ./src:/app
설치 완료 후 /install 폴더 삭제 필요

댓글