넘쳐나는 파일들을 관리하기 위해서 개인적인 것들은 google drive에서 관리하고, 회사와 관련된 것들은 Onedrive에서 관리한다. 그런데, 무료로 쓰다 보니 용량 제한 문제도 있고, 접속이 느려지는 현상도 빈번히 발생하고, 로그인 자체가 안되는 경우도 가끔이지만 발생했다. 이러한 문제들을 해결하기 위해서 사설 서버에 nextcloud를 설치하기로 했다.
욕할 대상이 서비스 업체에서 나로 변경된다. 마조인가?
설치
간단한 설치와 관리를 위해 docker를 이용한다.
docker 설치는 docker 설치를 보면 된다.
먼저, yaml 파일을 생성한다.
- nextcloud_docker.yml
version: '3.9'
services:
db:
image: postgres
restart: always
volumes:
- /mnt/nextcloud_pg:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_USER=nextcloud
- POSTGRES_DB=nextcloud
app:
image: nextcloud
restart: always
ports:
- 8080:80
links:
- db
volumes:
- /mnt/nextcloud_html:/var/www/html
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_DB=nextcloud
- POSTGRES_USER=nextcloud
- POSTGRES_HOST=db
database는 postgres를 선택해 사용했다.
nextcloud의 외부 포트를 변경하고 싶다면,
- services>app>ports
- 8080:80 -> <외부 포트>:80
데이터베이스 저장 위치를 바꾸고 싶다면,
- services>app>db
- /mnt/nextcloud_pg:/var/lib/postgresql/data -> <저장 위치>:/var/lib/postgresql/data
nextcloud 저장 위치를 바꾸고 싶다면,
- services>app>volumes
- /mnt/nextcloud_html:/var/www/html -> <저장 위치>:/var/www/html
실행
- compose 실행
docker-compose -f nextcloud_docker.yml up -d
- nextcloud 접속
웹에서 <서버 IP>를 입력하면, 초기 관리자 계정의 ID/PASSWORD를 설정하라는 문구가 나온다.
이것만 설정하고 사용하면 된다.
실패들
nextcloud의 database를 mysql로 선택하면, 왠지 모르게 자잘한 오류들이 발생하면서 nextcloud와 연동이 실패한다. mysql에서 mariadb랑 분기되면서, 설정 방법이 변경된 것으로 파악된다.
또한, mysql의 설정 옵션을 변경해야 하므로, 귀찮아서 postgresql로 넘어갔다.
줄이며...
nextcloud의 공식 docker 이미지 사이트에 가면, docker-compose를 사용해 nextcloud를 배포하는 방법에 관해 설명한다. 이때, database는 mysql를 사용하는데, 그대로 따라 하면 안 되고, 삽질해야 한다.
다시 한번, 문서 정리의 중요성을 느낀다.