지난 글에서는 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 # 반드시 openssl rand -base64 48 등으로 생성
PORT: 3000
URL: http://localhost:3000 # 또는 도메인 기반 URL로 수정
# ──────────────── OAuth 인증 설정 ────────────────
# Slack
SLACK_CLIENT_ID: your_slack_client_id
SLACK_CLIENT_SECRET: your_slack_client_secret
# Google
GOOGLE_CLIENT_ID: your_google_client_id
GOOGLE_CLIENT_SECRET: your_google_client_secret
# 기타 환경설정
ENABLE_UPDATES: "false" # 자동 업데이트 비활성화 (선택사항)
NODE_ENV: production # 운영 환경 설정
FORCE_HTTPS: "false" # 리버스 프록시 사용시 false 유지
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가 변경되어도 도메인으로 쉽게 접속할 수 있습니다.
- https://www.duckdns.org 에서 회원가입 후 로그인하세요.
- 원하는 서브도메인을 생성합니다. 예: myoutline.duckdns.org
- 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 -
이 스크립트를 크론탭에 등록해 주기적으로 실행하면 됩니다.
- 생성한 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을 안전하게 이용하세요.
---
좀더 쉬은 방법으로 아래의 저장소를 클론하여 쉽게 구현이 가능합니다. (Readme를 읽어보세요)
'IT 관리 노하우 > Self-Host 구축 및 관리' 카테고리의 다른 글
Self-host로 구축하는 나만의 Notion 만들기 - 4부. 정기 백업 (0) | 2025.06.13 |
---|---|
Self-host로 구축하는 나만의 Notion 만들기 - 2부. 클라우드 인프라 세팅 (0) | 2025.06.13 |
Self-host로 구축하는 나만의 Notion 만들기 - 1부. 개요 및 목표 설정 (0) | 2025.06.13 |
[사설GPT] Ollama + Open WebUI (0) | 2024.11.26 |
[Redmine] Redmine 버전 선택시 참고사항 (0) | 2022.07.22 |