프롤로그: 데이터를 프라이빗하게 관리하기 위해서

이전 포스팅에서 우리는 **넥스트클라우드(Nextcloud)를 활용한 지식 관리 워크플로우**를 다루었습니다. 그렇다면 이 넥스트클라우드를 내 컴퓨터(워크스테이션)에 어떻게 설치해야 할까요?

전통적인 방식(APM 소스 설치)은 복잡하고 시스템을 지저분하게 만듭니다. 2025년 현재, 가장 표준적이고 깔끔한 방법은 **도커(Docker)**를 사용하는 것입니다. 이 글에서는 Docker Compose를 이용해 단 10분 만에 나만의 클라우드를 구축하는 법을 소개합니다.


준비물

  • OS: 리눅스 (Ubuntu 22.04/24.04 권장) 혹은 macOS, Windows (WSL2)
  • 필수 도구: Docker 및 Docker Compose 설치 완료

혹시 Docker가 없다면 아래 명령어로 빠르게 설치할 수 있습니다. (Ubuntu 기준)

# Docker 자동 설치 스크립트 실행
curl -fsSL [https://get.docker.com](https://get.docker.com) -o get-docker.sh
sudo sh get-docker.sh

# 현재 사용자를 docker 그룹에 추가 (sudo 없이 실행하기 위해)
sudo usermod -aG docker $USER
# (설정 적용을 위해 로그아웃 후 다시 로그인 필요)

1단계: 프로젝트 폴더 생성

데이터를 체계적으로 관리하기 위해 홈 디렉터리에 전용 폴더를 만듭니다.

mkdir -p ~/my-server/nextcloud
cd ~/my-server/nextcloud

2단계: docker-compose.yml 작성 (핵심)

Nextcloud만 설치하면 속도가 느린 SQLite가 기본으로 사용됩니다. 연구 데이터나 많은 양의 문서를 처리하려면 **MariaDB(데이터베이스)**를 함께 설치해야 합니다.

docker-compose.yml 파일을 생성하고 아래 내용을 복사해 붙여넣으세요.

vi docker-compose.yml
version: '3'

services:
  db:
    image: mariadb:10.6
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=강력한루트비밀번호  # 변경 필수
      - MYSQL_PASSWORD=강력한DB비밀번호       # 변경 필수
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - ./html:/var/www/html
    environment:
      - MYSQL_PASSWORD=강력한DB비밀번호       # 위와 동일하게 입력
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

[설정 포인트]

  • Volumes: 현재 폴더의 html 폴더에 클라우드 파일이, db 폴더에 데이터베이스가 저장됩니다. 나중에 이 두 폴더만 백업하면 서버를 통째로 복구할 수 있습니다.
  • Ports: 8080:80으로 설정했습니다. 웹 브라우저에서 localhost:8080으로 접속하게 됩니다.

3단계: 컨테이너 실행 및 상태 확인

설정 파일이 있는 위치에서 아래 명령어를 입력하여 서버를 실행합니다.

docker compose up -d
  • up: 컨테이너 생성 및 실행
  • -d: 백그라운드(Detached) 모드로 실행 (터미널을 꺼도 서버는 계속 돕니다)

Docker가 이미지를 다운로드하고 서버를 켜는 데 약 1~2분 정도 걸립니다.

실행 후 다음 명령어로 컨테이너가 정상적으로 떠 있는지 확인해 봅니다.

docker ps

아래와 같이 STATUS가 Up으로 표시되고 포트가 8080으로 열려있다면 성공입니다! docker ps 결과


4단계: Nextcloud 초기 설정

이제 웹 브라우저를 열고 주소창에 http://localhost:8080 (또는 http://서버IP:8080)을 입력합니다.

관리자 계정 생성 화면이 나타나면 성공입니다!

  1. 사용자 이름/암호: 사용할 관리자 ID와 암호를 입력합니다.
  2. 데이터베이스 설정: (이미 docker-compose에서 연결했으므로 자동으로 인식하거나, 입력창이 뜨지 않을 수 있습니다. 만약 뜬다면 아래와 같이 입력합니다.)
    • 저장소 및 데이터베이스: MySQL/MariaDB 선택
    • 데이터베이스 사용자: nextcloud
    • 데이터베이스 암호: docker-compose.yml에 적은 비밀번호
    • 데이터베이스 이름: nextcloud
    • 호스트: db

‘설치 완료’ 버튼을 누르면 잠시 후 나만의 클라우드 홈 화면이 반겨줄 것입니다.

NextCloud 로그인화면

마치며: 이제 시작입니다

축하합니다! 이제 구글 드라이브 용량 걱정 없는 무제한 개인 클라우드가 생겼습니다. 이제 PC와 스마트폰에 Nextcloud 앱을 설치하고 파일을 동기화해 보세요.