0. Nextcloud란?
Nextcloud는 오픈소스 호스팅 파일 동기화 및 공유 서버로, 일반적으로 잘 알려져 있는 Dropbos, Google Drive, iCloud와 유사한 클라우드 서버다. 하지만 Nextcloud는 오픈 소스 S/W로 개인 서버에 설치하고 나만의 클라우드 서버를 사용할 수 있는 설치형 서비스라는 점에서 앞의 서비스들과는 차이가 있다. 또한 클라우드 저장 장치의 기능만이 아니라 앱스토어를 통한 앱과, Github에 올라온 여러 확장 앱들을 설치할 수 있으며, 모바일 앱으로도 지원한다.
1. 설치
기본적으로 필자는 서버의 대부분 서비스를 docker compose로 올려서 사용하고 있기 때문에 설치 설명도 docker compose를 기준으로 설명한다.
docker와 docker compose는 언젠가 블로그에서 다루도록 하겠다.
docker가 설치되어 있다고 가정하고, 서버에 도커 script를 둘 디렉토리와 실제로 nextcloud의 데이터들이 저장될 디렉토리를 만든다.
먼저 script를 만들 디렉토리에 아래와 같은 스크립트를 저장한다
volumes:
nextcloud:
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
ports:
- 3306:3306
volumes:
- {target}/{path}/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD={root_pw}
- MYSQL_PASSWORD={db_pw}
- MYSQL_DATABASE={db_name}
- MYSQL_USER={db_userName}
app:
image: nextcloud
ports:
- 8080:80
environment:
//nextcloud 옵션. 필자는 파일 용량이 크고, 시간이 너무 짧으면 끊어지는 경우가 많아 길게 설정했다.
- PHP_UPLOAD_MAX_FILESIZE=50G
- PHP_POST_MAX_SIZE=50G
- PHP_MAX_EXECUTION_TIME=36000
- PHP_MAX_INPUT_TIME=36000
- PHP_MEMORY_LIMIT=512M
links:
- db
volumes:
- {target}/{path}:/var/www/html
restart: always
위 파일을 compose.yml로 저장한다.
저장했다면 아래 명령어를 실행한다. 이제 여기까지 했다면 설치는 끝났다.
docker compose up -d
아래 명령어를 실행하면, nextcloud-data-1과 nextcloud-db-1 컨테이너가 실행중임을 확인할 수 있다.
docker ps
2. 기본설정
아래 명령어로 서버 로컬 ip를 확인한다.
ifconfig | grep inet
일반적으로는 192.168.0.xxx형태가 로컬망 ip이다.
간혹 공유기 설정에 따라 192.168.xxx.xxx형태인 경우도 있다. 해당부분은 확인해서 찾아야 한다.
{local_server_ip}:8080으로 접속한다. 편하려고 8080으로 설정 했으나, 외부사용은 위험하기에 8080보다는 다른 포트를 사용하길 추천한다.
기본적으로 admin 계정을 만들 때 SQLite로 기본 설정이 되어 있다. 우리는 maria DB로 만들었으므로 mariaDB를 선택해 준다.
아래에 아까 설정한 db 계정, pw, db이름등을 적는다.
제일 마지막에 db의 ip는 127.0.0.1, localhost가 아니라 compose.yml파일의 app하위에 links에 설정된이름으로 한다.
우리는 db로 하였고 포트는 3306이므로 최종 적으로 db:3306이라거 적어준다.
3. 외부 오픈
필자의 경우는 nginx와 도메인을 구매하여 호스팅을 url로 하고 있지만, 그게 아닌경우는 위험하더라도, 따로 포트를 열어서 사용해야한다.
여기선 3306 포트를 열었기 때문에, 해당 포트 방화벽을 열어준다.
sudo ufw allow 3306
성공적으로 열렸다면, 아래 명령어를 실행 했을때 열린 포트 목록에 3306이 들어가 있는 것을 볼 수 있다.
sudo ufw status
이제 열린 포트를 공유기에서 포트포워딩을 해준다.
{ip}:{port} -> {local_server_ip}:{nextcloud_port}로 포트 포워딩해 주면, 해당 ip로 접속하면 nextcloud를 사용할 수 있다.
'Server' 카테고리의 다른 글
Nextcloud 디렉토리 변경 가이드 (0) | 2025.02.07 |
---|---|
우분투 디스크 RAID (1) | 2025.02.07 |