OffshoreVps
튜토리얼2026년 10월 10일읽는 시간 9분작성: OffshoreVps 팀

Docker Compose로 VPS에 Nextcloud 직접 호스팅하기

파일, 캘린더, 연락처를 위한 나만의 프라이빗 클라우드를 운영하세요: Compose 파일, HTTPS 리버스 프록시, 신뢰할 수 있는 도메인, cron 작업, 백업.

Nextcloud는 파일 동기화, 캘린더, 연락처, 문서 편집을 대형 클라우드 업체에 파일을 맡기는 대신 내가 통제하는 서버에서 제공합니다. VPS에서 Docker Compose로 실행하는 방법은 다음과 같습니다.

Nextcloud를 셀프 호스팅하는 데 사용하는 명령어를 보여 주는 VPS의 터미널 창으로, “mkdir -p ~/nextcloud && cd ~/nextcloud”로 시작함
이 가이드에서 서버에서 실행하게 될 명령어의 종류입니다.

시작하기 전에

  • 2 vCPU와 4 GB RAM의 VPS면 무난한 시작입니다. 저장 공간이 주된 제약이므로 파일에 맞는 디스크 크기를 고르세요.
  • 서버를 가리키는 도메인. DNS 가이드에서 다룹니다.
  • Docker 설치. Ubuntu에 Docker 설치하기를 참고하세요.

1. Compose 파일

mkdir -p ~/nextcloud && cd ~/nextcloud
cat > compose.yaml <<'EOF'
services:
  db:
    image: mariadb:11
    restart: unless-stopped
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    environment:
      MYSQL_ROOT_PASSWORD: change-me-root
      MYSQL_PASSWORD: change-me-db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
    volumes:
      - db:/var/lib/mysql
  redis:
    image: redis:7-alpine
    restart: unless-stopped
  app:
    image: nextcloud:stable
    restart: unless-stopped
    depends_on: [db, redis]
    ports:
      - "127.0.0.1:8080:80"
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: change-me-db
      REDIS_HOST: redis
    volumes:
      - nc:/var/www/html
volumes:
  db:
  nc:
EOF
docker compose up -d

실행하기 전에 세 개의 비밀번호를 모두 변경하세요. 긴 무작위 문자열을 사용하세요.

이 가이드의 단계를 순서대로 나열하면 다음과 같습니다. 1. 시작하기 전에; 2. 1. Compose 파일; 3. 2. 앞단에 HTTPS 두기; 4. 3. 설정 마무리; 5. 4. 건강하게 유지하기
이 가이드의 단계를 순서대로 나열한 것입니다.

2. 앞단에 HTTPS 두기

127.0.0.1:8080으로 프록시하는 Nginx server 블록을 추가한 다음 Nginx 가이드처럼 Certbot을 실행하세요. Nextcloud가 올바른 프로토콜을 인식하고 대용량 업로드가 작동하려면 프록시 블록에 다음 줄이 필요합니다:

client_max_body_size 2G;
location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
}

3. 설정 마무리

도메인을 열고 관리자 계정을 만드세요. 그런 다음 신뢰할 수 있는 도메인 목록에 내 도메인을 추가하고 프록시 정보를 설정합니다:

docker compose exec -u www-data app php occ config:system:set trusted_domains 1 --value=cloud.example.com
docker compose exec -u www-data app php occ config:system:set overwriteprotocol --value=https

4. 건강하게 유지하기

  • 업데이트: docker compose pull && docker compose up -d, 한 번에 메이저 버전 하나씩.
  • 백그라운드 작업: 관리자 설정에서 Cron으로 전환하고 cron.php를 5분마다 실행하는 호스트 cron 항목을 추가하세요.
  • 백업: 두 볼륨과 데이터베이스 덤프를 모두 저장하세요. VPS 백업 방법을 참고하세요.
  • 2단계 인증 로그인: 모든 계정에 TOTP 앱을 활성화하세요.