Outline self-hosted (시놀로지)

outline-self-hosted-synology

Outline self-hosted (시놀로지)
Photo by Erik Mclean / Unsplash
  • 안내말 입니다.
  • 개인적으로 남기는 글입니다. 아래의 경우를 미리 공지합니다.
  1. 높임말은 없는 경우가 있습니다.
  2. 영어, 일본어, 베트남어를 공부하고 있습니다. 경우에 따라서 사용됩니다.
  3. 보기 거북하다면 뒤로가기 해주세요.

이야기 시작-

소개

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로 이동해서

자신의 도메인주소를 넣고 callback 시킨다.

왼쪽메뉴 상단에 "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=

#token만들기링크

이상입니다.