Outline self-hosted (시놀로지)
outline-self-hosted-synology
- 안내말 입니다.
- 개인적으로 남기는 글입니다. 아래의 경우를 미리 공지합니다.
- 높임말은 없는 경우가 있습니다.
- 영어, 일본어, 베트남어를 공부하고 있습니다. 경우에 따라서 사용됩니다.
- 보기 거북하다면 뒤로가기 해주세요.
이야기 시작-
소개
Outline은 팀 협업을 위한 간편한 문서관리 도구입니다. 강력한 검색기능도 제공하고 각기 댓글도 관리할 수 있습니다. 클라우드서비스를 이용할 수 있지만, 아래와 같이 금액이 발생합니다.
Outline VS Notion
구분 | Outline | Notion |
공통점 | 팀 협업 및 문서 관리 도구 | 팀 협업 및 문서 관리 도구 |
웹 기반으로 동작 | 웹 기반으로 동작 | |
사용자 권한 관리 지원 | 사용자 권한 관리 지원 | |
설치 및 배포 | Self-hosted 가능 (서버 직접 설치) | 클라우드 기반 (Self-hosted 불가) |
데이터 저장 | 자체 서버에 데이터 저장 가능 | Notion 서버에 데이터 저장 |
비용 | 오픈소스, self-hosted 환경에서는 무료 | 무료 플랜 제공, 팀 플랜은 유료 |
확장성 | Slack, Zapier와 통합 가능, API 제공 | 다양한 서드파티 앱과 통합, API 제공 |
사용성 | 간단하고 직관적인 위키 스타일 UI | 고급 텍스트 편집기와 다양한 블록 지원 |
데이터베이스 기능 | 없음 | 강력한 통합 데이터베이스 제공 |
보안 및 제어 | 데이터 보안 우수 (직접 서버 관리 가능) | 데이터 보안은 Notion 서버에 의존 |
유연성 | 문서 관리에 최적화 | 프로젝트 관리, 데이터베이스 등 다목적 사용 |
설치
Slack oAuth만들기
outline 로그인은 여러방식을 지원합니다. 그중에 가장 쉽다? 고 생각되는 Slack oAuth를 만들겠습니다.
SlackAPI로 이동해서
왼쪽메뉴 상단에 "Basic Information" 으로 이동
Client Id & Client Secret 를 기록해둡니다.
시놀로지에 작업용 폴더 만들기
폴더와 redis.conf 파일을 만듭니다. (redis.conf 파일내용은 아무것도 없습니다)
storage-data의 권한을 1001사용자로 만들기
방법은 2가지입니다.
1.ssh를 이용 chown 1001 위에서 폴더만든곳의 위치/storage-data
2.작업스케줄러를 이용해서 root 작업으로 chown 1001 위에서 폴더만든곳의 위치/storage-data
Dockge에서 deploy
version: "3.2"
services:
outline:
image: docker.getoutline.com/outlinewiki/outline:latest
container_name: outline-app
hostname: outline-app
ports:
- 6710:3000
volumes:
- /volume1/docker/outline/storage-data:/var/lib/outline/data
depends_on:
- postgres
- redis
environment:
FORCE_HTTPS: ${FORCE_HTTPS:-true}
PGSSLMODE: disable
SECRET_KEY: ${SECRET_KEY}
UTILS_SECRET: ${UTILS_SECRET}
DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@outline-postgres:5432/${POSTGRES_DB}
REDIS_URL: redis://outline-redis:6379
URL: ${URL}
PORT: ${PORT}
FILE_STORAGE: local
FILE_STORAGE_LOCAL_ROOT_DIR: /var/lib/outline/data
FILE_STORAGE_UPLOAD_MAX_SIZE: 26843545600
SLACK_CLIENT_ID: ${SLACK_CLIENT_ID}
SLACK_CLIENT_SECRET: ${SLACK_CLIENT_SECRET}
restart: unless-stopped
redis:
container_name: outline-redis
hostname: outline-redis
image: redis
volumes:
- /volume1/docker/outline/redis.conf:/redis.conf
command:
- redis-server
- /redis.conf
healthcheck:
test:
- CMD
- redis-cli
- '-a'
- '${SERVICE_PASSWORD_64_REDIS}'
- PING
interval: 10s
timeout: 30s
retries: 3
restart: unless-stopped
postgres:
image: postgres
container_name: outline-postgres
hostname: outline-postgres
volumes:
- /volume1/docker/outline/database-data:/var/lib/postgresql/data
healthcheck:
test:
- CMD
- pg_isready
- '-d outline -U user'
interval: 30s
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
restart: unless-stopped
networks: {}
POSTGRES_USER='user'
POSTGRES_PASSWORD='pass'
POSTGRES_DB='outline'
SERVICE_PASSWORD_64_REDIS=#token만들기
SECRET_KEY=#token만들기
UTILS_SECRET=#token만들기
URL=https://도메인
PORT=3000
FORCE_HTTPS=true
SLACK_CLIENT_ID=
SLACK_CLIENT_SECRET=
이상입니다.