[스토리지] 나만의 구글 포토 만들기: Nextcloud 설치와 데이터 동기화

안녕하세요! 지난 6편에서 도커(Docker)라는 강력한 엔진을 설치하셨나요? 이제 그 엔진 위에 첫 번째 '슈퍼 앱'을 올릴 차례입니다. 오늘 우리가 구축할 서비스는 넥스트클라우드(Nextcloud)입니다.

구글 포토의 유료화와 용량 제한 때문에 스트레스받으셨던 분들에게는 최고의 선물이 될 것입니다. 내 하드디스크가 허용하는 한 무제한 용량, 월 구독료 0원, 그리고 무엇보다 내 사생활이 완벽히 보호되는 '진짜 클라우드'를 지금 바로 만들어보겠습니다.

1. 왜 넥스트클라우드인가?

수많은 오픈소스 클라우드 소프트웨어가 있지만, 넥스트클라우드가 독보적인 이유는 '완성도''에코시스템' 때문입니다.

  • 모바일 앱 지원: iOS와 안드로이드 앱이 매우 잘 만들어져 있어, 사진 자동 업로드 기능을 구글 포토처럼 쓸 수 있습니다.
  • 플러그인 확장성: 캘린더, 연락처 동기화, 문서 편집(OnlyOffice), 심지어 화상 채팅 기능까지 추가할 수 있습니다.
  • 보안성: 2단계 인증(2FA)과 종단간 암호화를 지원하여 기업용으로도 손색이 없습니다.

2. 실전: Docker Compose로 Nextcloud 1분 만에 올리기

우리는 데이터베이스(MariaDB)와 애플리케이션을 동시에 관리하기 위해 Docker Compose를 사용합니다. 서버 터미널에서 아래 단계를 따라 하세요.

[1단계: 작업 디렉토리 생성]

mkdir -p ~/nextcloud && cd ~/nextcloud
nano docker-compose.yml

[2단계: 설정 파일(YAML) 작성]

아래 내용을 복사해서 붙여넣으세요. (비밀번호 부분은 본인만의 복잡한 문자로 수정하세요.)

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=your_root_password
      - MYSQL_PASSWORD=your_db_password
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud:latest
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - ./data:/var/www/html
    environment:
      - MYSQL_PASSWORD=your_db_password
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

[3단계: 서비스 실행]

docker compose up -d

이제 브라우저 주소창에 서버IP:8080을 입력하면 감격스러운 넥스트클라우드 초기 설정 화면이 나타납니다!

3. 초기 설정 및 최적화 팁

첫 접속 시 관리자 계정을 생성하게 됩니다. 이때 몇 가지 주의할 점이 있습니다.

  • 데이터 저장소 경로: 기본값으로 두어도 되지만, 별도의 고용량 HDD를 마운트했다면 해당 경로로 지정해 주는 것이 좋습니다.
  • 성능 향상: 초기 설정 후 [설정] -> [개요] 메뉴에 들어가면 "보안 및 설정 경고"가 뜰 수 있습니다. 특히 '메모리 캐시(Redis)' 설정은 나중에 속도를 획기적으로 높여주는 핵심 요소입니다. (이는 고급 과정에서 다시 다룹니다.)

4. 스마트폰 사진 자동 업로드 설정하기

넥스트클라우드의 진가는 여기서 나옵니다.

  1. 스마트폰 앱스토어에서 'Nextcloud' 앱을 다운로드합니다.
  2. 내 서버 주소(DDNS 주소 또는 IP:8080)를 입력하고 로그인합니다.
  3. 설정 메뉴의 'Auto Upload(자동 업로드)'를 활성화합니다.
  4. 이제 밖에서 사진을 찍으면 집 안에 있는 내 서버로 사진이 실시간 전송됩니다. 구글 포토 부럽지 않은 환경이 완성되었습니다!

5. 마치며: 데이터가 쌓일수록 가치가 높아지는 홈서버

오늘 여러분은 단순한 컴퓨터를 '개인용 클라우드 서버'로 변모시켰습니다. 처음엔 사진 몇 장으로 시작하겠지만, 시간이 흘러 몇 년 치의 소중한 기록이 내 서버에 안전하게 보관되어 있는 것을 보면 뿌듯함이 밀려올 것입니다.

다음 편에서는 이 넥스트클라우드에 담긴 영화나 드라마 영상을 넷플릭스처럼 감상할 수 있게 해주는 '미디어 서버(Plex/Jellyfin)' 구축법을 알아보겠습니다. 여러분의 홈서버가 이제는 멀티미디어 센터로 진화합니다!


[핵심 요약]

  • Nextcloud는 구글 포토와 드롭박스를 대체할 수 있는 가장 강력한 오픈소스 클라우드입니다.
  • Docker Compose를 사용하면 데이터베이스와 앱을 한 번에 안정적으로 구동할 수 있습니다.
  • 모바일 앱의 자동 업로드 기능을 활용하면 진정한 의미의 데이터 주권을 실현할 수 있습니다.
  • 설정 초기 단계에서 보안 경고를 확인하고 하나씩 해결해 나가는 과정이 서버 운영 실력을 키워줍니다.

다음 편 예고: "[미디어] 넷플릭스 대신 내 서버로: Plex/Jellyfin 미디어 서버 구축기" - 우리 집 거실 TV를 스마트하게 만드는 법!

질문: 8080 포트로 접속했을 때 화면이 잘 뜨나요? 만약 '무한 로딩'이 걸린다면 서버의 방화벽(UFW)에서 8080 포트를 열어주었는지(sudo ufw allow 8080) 확인해 보세요!