안녕하세요. Yurari입니다.
본 게시글에서는 부루계열 사이트를 직접 운영할 수 있는 szurubooru 서버를
docker-compose로 설치하고 설정하는 방법에 대해 설명드리겠습니다.
※ 본 게시글은 Unraid OS 환경을 기반으로 작성되었습니다.
docker-compose를 사용하기 때문에 시놀로지와 같은 다른 OS에서도 아래 방법이 사용이 가능하나,
예기치 못한 오류가 발생할 수 있습니다.
먼저 szurubooru가 무엇인지에 대해 간략히 설명드리겠습니다.
szurubooru는 위와 같이 이미지를 태그 기반으로 정리하여 저장하고 볼 수 있는 서버 프로그램입니다.
Danbooru나 Safebooru와 같은 사이트를 생각하시면 바로 이해할 수 있을 것입니다.
더 자세한 내용은 szurubooru Github 페이지를 참고해 주세요.
한국어로는 이 프로그램 설치법 등을 정리해 놓은 자료가 없어서
제가 설치해서 사용한 과정을 정리해서 게시글로 작성합니다.
(참고로 이 서버만 구성했을 경우에는 웹으로 파일을 관리해야 하기 때문에
이미지 업로드 및 태그 관리가 상당히 어렵고 시간이 많이 소요됩니다.
이러한 불편함을 줄이기 위해서 szurubooru-toolkit이라는 프로그램을 사용해
szurubooru 서버에 이미지를 대량으로 업로드하고, 자동으로 태깅을 할 수 있는데,
이 툴 사용법에 대해서는 별도의 게시글로 설명드리도록 하겠습니다.)
우선 아래 게시글을 잘 읽고 szurubooru 설치부터 진행하여 주세요.
※ docker-compose를 사용할 수 있다고 가정하고 설명을 드립니다.
docker-compose를 사용할 수 있는지 먼저 확인해 주세요.
(Portainer, Dockge 등을 사용하면 편하고 좋습니다.)
## Example Docker Compose configuration
##
## Use this as a template to set up docker compose, or as guide to set up other
## orchestration services
services:
szurubooru_server:
image: szurubooru/server:latest
depends_on:
- szurubooru_sql
environment:
## These should be the names of the dependent containers listed below,
## or FQDNs/IP addresses if these services are running outside of Docker
POSTGRES_HOST: szurubooru_sql
## Credentials for database:
POSTGRES_USER: booru #필요시 변경
POSTGRES_PASSWORD: booru #필요시 변경
## Commented Values are Default:
#POSTGRES_DB: defaults to same as POSTGRES_USER
#POSTGRES_PORT: 5432
#LOG_SQL: 0 (1 for verbose SQL logs)
THREADS: 4
volumes:
- "/이미지가 저장될 경로:/data" # Directory to store image data
- "/설정파일경로/config.yaml:/opt/app/config.yaml"
szurubooru_client:
image: szurubooru/client:latest
depends_on:
- szurubooru_server
environment:
BACKEND_HOST: szurubooru_server
BASE_URL:
volumes:
- "/이미지가 저장될 경로:/data:ro"
ports:
- "포트:80" #원하는 포트로 숫자 변경 필요
szurubooru_sql:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: booru #필요시 변경
POSTGRES_PASSWORD: booru #필요시 변경
ports:
- "5432:5432" #다른것과 포트 겹칠경우 변경 필요
volumes:
- "/postgres파일 저장될 경로:/var/lib/postgresql/data"
szurubooru를 도커로 설치하기 위해서는 첫번째로 docker-compose 코드 작성이 필요합니다.
위는 설치에 필요한 docker-compose 코드로,
공식페이지에 있는 예제를 기반으로 제가 수정해 놓은 명령어입니다.
자신의 환경에 맞게 한글로 된 부분을 수정해 주세요.
※ 2025.04.06 추가내용
postgres:11-alpine 버전은 지원이 종료되어, postgres:16-alpine 버전으로 변경하였습니다.
관련된 자세한 사항은 Github 이슈 게시글을 참고해주세요.
[ docker-compose가 익숙하지 않으신 분들은 아래 더보기를 눌러서 세부설명을 확인해 주세요. ]
- "/mnt/user/Data/Image:/data"
- "/mnt/user/Data/szurubooru/config.yaml:/opt/app/config.yaml"
- "/mnt/user/Data/szurubooru/sql:/var/lib/postgresql/data"
이미지가 저장될 경로 등 경로를 지정하는 부분은 위의 예시를 참고하여 작성해 주시면 됩니다.
(여기서는 경로가 /mnt/user/Data/ 로 시작한다고 가정하였습니다.)
여기서 주의할 점은 두 번째 항목이 경로가 아니라 config.yaml 파일을 가리키고 있습니다.
꼭 마지막에 /config.yaml 을 붙여주셔야 합니다.
- "8888:80"
포트의 경우는 다른 도커에서 안 쓰고 있는 포트로 아무거나 넣어주시면 됩니다. (예: 8888)
- "5433:5432"
그리고 혹시 다른 도커 프로그램에서 postgres를 이미 사용 중인 경우,
이 프로그램에 설치될 postgres 포트와 겹치기 때문의 앞의 숫자를 위처럼 다른 것으로 변경해 주셔야 됩니다.
(여기서는 예시로 "5433"으로 입력하였습니다.)
두번째로 도커 파일 및 이미지, 설정파일이 저장될 경로를 구성해 주시고, config.yaml 파일을 생성해 줍니다.
# rather than editing this file, it is strongly suggested to create config.yaml
# and override only what you need.
# shown in the website title and on the front page
name: szurubooru
# full url to the homepage of this szurubooru site, with no trailing slash
domain: # example: http://example.com
# used to salt the users' password hashes and generate filenames for static content
secret: change
# Delete thumbnails and source files on post delete
# Original functionality is no, to mitigate the impacts of admins going
# on unchecked post purges.
delete_source_files: no
.
.
.
config.yaml 내용은 위처럼 구성이 되는데,
자신이 운영하고자 하는 목적에 맞게 권한 등을 수정해주셔야 합니다.
공식사이트의 내용을 참고해서 수정해 주세요.
(Chatgpt를 활용하면 쉽게 내용을 파악할 수 있습니다.)
※ 설정 항목 중 'secret: change' 부분이 있습니다.
이 부분은 보안과 관련된 부분으로, change 부분을 본인만 아는 다른 문자로 바꿔주셔야 합니다.
서버를 설정한 이후 해당 값을 변경하면 다시 원래 값으로 되돌리기 전까지 로그인이 불가능해지니,
프로그램 설정을 완료한 후 config.yaml 파일을 꼭 백업해 주세요.
[ Config 설정에 대한 세부내용은 아래 더보기를 눌러서 확인해주세요. ]
# Delete thumbnails and source files on post delete
# Original functionality is no, to mitigate the impacts of admins going
# on unchecked post purges.
delete_source_files: no
위 부분은 szurubooru에서 이미지를 삭제할 경우
로컬에 저장된 파일도 삭제할지 여부를 결정하는 항목입니다.
이미지 삭제시 로컬에서도 이미지를 지우고 싶다면 'yes'로 설정해 주시면 됩니다.
privileges:
'users:create:self': anonymous # Registration permission
'users:create:any': administrator
.
.
.
privileges: 아래 부분의 설정을 변경하면 계정을 못 만들게 하거나,
포스트를 못 보게 하는 등의 설정이 가능합니다.
서버 용도에 따라 적절히 값을 변경해 주세요.
※ 최초 설치 시 'users:create:self'의 값이 anonymous가 아니면
관리자 계정을 생성하지 못하는 문제가 있습니다.
최초설치 시에는 기본값으로 하여 설치하고 관리가 계정을 만든 후
privileges: 하위 값을 변경해주세요.
(이 외 나머지 설정값은 chatgpt를 활용하면 쉽게 이해할 수 있으니, 참고부탁드립니다.)
세번째로 이제 각자의 환경에 맞게
docker-compose.yml 파일을 구성하여 도커 컨테이너 생성을 진행해 주시면 됩니다.
이 부분은 각자의 관리 환경에 따라 방법이 다양해서 별도로 언급하지 않겠습니다.
각자의 시스템에 맞게 설치를 진행해 주세요.
도커 컨테이너 구성이 완료되면, 크롬과 같은 인터넷 브라우저를 열고
주소창에 '서버주소:포트'를 입력해 주세요. (ex. 192.168.0.10:8888)
그러면 위와 같이 szurubooru 서버가 열립니다.
정상적으로 접속이 된다면, 상단의 'Register' 버튼을 누른 후 계정을 하나 만들어 줍니다.
(이메일 주소는 입력하지 않아도 됩니다.)
계정을 만들면 이제 이미지 업로드와 태그 지정 등의 작업이 가능해집니다.
마지막으로 이미지가 정상적으로 업로드 되는지, 태그가 지정되는지 확인해주세요.
정상적으로 된다면, 이후부터는 바로 사용을 해주시면 됩니다.
위 방법을 이용하면 서버 설정까지는 완료되지만,
웹으로 파일을 관리해야 하기 때문에 이미지 업로드 및 태그 관리가 상당히 어렵고 시간이 많이 소요됩니다.
그리고 태그도 일일이 지정해야되기 때문에 상당히 관리가 힘듭니다.
이런 문제는 szurubooru-toolkit이라는 프로그램을 이용하면 해결이 가능한데,
이것을 설치하고 사용하는 방법에 대해서는 별도의 게시글로 설명드리겠습니다.
이상으로 szurubooru docker 서버 설치 방법에 대한 설명을 마치겠습니다.
읽어주셔서 감사합니다.
'Nas > Docker' 카테고리의 다른 글
szurubooru-toolkit 사용법 (0) | 2025.04.01 |
---|---|
szurubooru-toolkit 설치 방법 (docker-compose) (0) | 2025.03.30 |
Synology DSM 7.2 Docker, Docker Compose 설정 방법 (0) | 2023.06.04 |