Self-host로 구축하는 나만의 Notion 만들기 - 3부. Outline 설치 및 도메인 설정

지난 글에서는 Oracle Cloud ARM 인스턴스 생성과 Docker 환경을 준비했습니다.
이번 3부에서는 Outline 설치와 도메인 연결, HTTPS 인증서 적용까지 진행합니다.


1. Outline 설치 준비

mkdir -p ~/outline && cd ~/outline

 

2. Docker Compose 파일 작성

version: "3.8"

services:
  outline-db:
    image: postgres:13-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: outline
      POSTGRES_PASSWORD: outline_password
      POSTGRES_DB: outline_db
    volumes:
      - outline-db-data:/var/lib/postgresql/data

  outline-redis:
    image: redis:alpine
    restart: unless-stopped
    volumes:
      - outline-redis-data:/data

  outline:
    image: outlinewiki/outline:latest
    depends_on:
      - outline-db
      - outline-redis
    ports:
      - "3000:3000"
    restart: unless-stopped
    environment:
      DATABASE_URL: postgres://outline:outline_password@outline-db:5432/outline_db
      REDIS_URL: redis://outline-redis:6379
      SECRET_KEY: your_random_secret_key
      PORT: 3000

volumes:
  outline-db-data:
  outline-redis-data:

SECRET_KEY는 32자 이상의 랜덤 문자열로 설정하세요.
예: openssl rand -base64 48

 

3. Docker Compose 실행

docker-compose up -d

http://<서버IP>:3000 에서 Outline 초기 화면 확인 가능

 

4. 도메인 연결 - DuckDNS 기준

DuckDNS는 무료 동적 DNS 서비스로 개인 서버 IP가 변경되어도 도메인으로 쉽게 접속할 수 있습니다.

  1. https://www.duckdns.org 에서 회원가입 후 로그인하세요.
  2. 원하는 서브도메인을 생성합니다. 예: myoutline.duckdns.org
  3. Oracle Cloud 서버 또는 라우터에서 DuckDNS 업데이트 스크립트를 설정해 IP를 자동 갱신합니다.
    예시 스크립트 (Ubuntu 서버):
echo url="https://www.duckdns.org/update?domains=myoutline&token=YOUR_TOKEN&ip=" | curl -k -o ~/duckdns/duck.log -K -

이 스크립트를 크론탭에 등록해 주기적으로 실행하면 됩니다.

  1. 생성한 myoutline.duckdns.org 도메인으로 접속하세요.

 

5. HTTPS 적용 (Let's Encrypt + Nginx)

Nginx 설치 및 설정

sudo apt install nginx -y

/etc/nginx/sites-available/outline 파일 생성:

server {
    listen 80;
    server_name myoutline.duckdns.org;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
sudo ln -s /etc/nginx/sites-available/outline /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

 

Certbot 설치 및 SSL 발급

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d myoutline.duckdns.org

발급 후 자동으로 Nginx HTTPS 설정이 완료됩니다.

 

6. 마무리

https://myoutline.duckdns.org 으로 접속해 Outline을 안전하게 이용하세요.