NextCloud - 나만의 무료 클라우드 만들기
클라우드 기술이 널리퍼져있고 유용하게 쓰이는 시대에, 다들 Cloud 하나씩은 사용하고 있을것이다.
(iCloud, Google Cloud, One Drive, ...)
사실 월 구독료가 부담되는 금액은 아니지만, 더 많은 용량을 사용하게 될수록 금액적인 부담이 발생한다.
NextCloud 는 오픈소스이기 때문에, 누구든 무료로 사용할 수 있다. 특히나 홈서버가 존재한다면 활용가치는 더욱더 높다.
(개인적으로 파일 공유가 주 목적인 NAS 보다 효율성이 높다고 생각한다)
홈서버가 없더라도 평생 무료로 쓸 수 있는 Oracle Cloud 서버를 구축뒀다면, 100Gb 가량의 나만의 무료 클라우드 서비스를 만들 수 있다.
위에서 서술했던대로, 오픈소스이고 나만의 클라우드 저장소를 웹, 어플을 통해 사용할 수 있게 해준다.
https://github.com/nextcloud/docker
여기서 다양한 설정방법이나, 사용방법들이 존재하니 필요할 경우 읽어보는걸 추천한다
NextCloud 는 크게 2가지의 Version 이 존재하는데
Base - apache
Base - FPM(FastCGI process Manager)
각각 Apache 서버가 내장된 Version 과, Web Server에 의존하지 않는 FPM 버전을 뜻한다.
해당 글에서는 Base - Apache 버전을 설치할 예정이다.
- Ubuntu
- Docker
환경에서 설치를 진행했다
Docker-compose 및 설치
공식 GitHub 의 docker-compose.yml 을 조금 수정해서 적용했고 아래에서 설명하겠다.
필요한 파일은 총 2개이다
- docker-compose.yml
- .env
여기서 .env 파일은 필수가 아니고 docker-compose.yml 파일내에 enviroment 항목에 추가해주면 된다.
docker-compose.yml
version: '3'
services:
db:
image: mariadb:latest
container_name: next_db
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- next_db:/var/lib/mysql
env_file: .env
environment:
- MYSQL_DATABASE=nextcloud
networks:
- next-network
ports:
- "3380:3306"
app:
image: nextcloud:latest
container_name: nextcloud
ports:
- 18090:80
volumes:
- nextcloud:/var/www/html
restart: always
env_file: .env
environment:
- MYSQL_HOST=db:3306
- MYSQL_USER=$MYSQL_USER
- MYSQL_PASSWORD=$MYSQL_PASSWORD
- MYSQL_DATABASE=nextcloud
networks:
- next-network
volumes:
next_db:
nextcloud:
networks:
next-network:
.env
MYSQL_ROOT_PASSWORD={ROOT_PASSWORD}
MYSQL_USER={DB USER}
MYSQL_PASSWORD={DB USER PASSWORD}
여기서 db의 ports 부분을 추가해줬는데, 그 이유는 현재 홈서버에서는 여러대의 mysql, maria db 를 운용중이기에 포트 충돌 방지를 위해 임의의 포트로 작성해 주었다.
또한 app의 ports: 부분에는 8080:80 이 기본설정이다. 필요시 변경하고 실행하는게 좋다.
(사유는 마찬가지로 포트 충돌방지)
만약 기본 설정대로 사용하려면 db의 ports 부분을 삭제, 주석처리 하면 된다.
docker-compose up -d
.yml 이 있는 path 에서 해당 명령어 실행으로, 간단하게 실행 시켜줄 수 있다.
설치 완료 이후, 해당 port 를 외부로 열어줘야 한다. (해당글에서는 다루지 않겠다.)
필자의 경우 UFW 를 사용중이기때문에, UFW 로 port 를 오픈해주고,
Nginx를 통해서 포트포워딩을 진행했다.
{외부에 오픈할 port}:18080
포트오픈까지 완료했다면, 접속해보자
# 도메인 연결시
test.com
# 도메인 미연결시 기본포트는 8080, 필자의설정은 18080
{IP}:{port}
IP:18080
이후 관리자 계정 설정 진행 후 아래와 같은 추가 앱 설치 여부가 나오는데 나중에 활용할 수 있을까 싶어서 전부 체크해줬다.
모든 설정이 정상적으로 이루어졌다면 아래와 같은 화면으로 접속된다.
'Dev Tools > Docker' 카테고리의 다른 글
[Docker] Docker Command(명령어) 정리(+옵션) (0) | 2023.02.20 |
---|---|
[Docker] GitHub Actions CI/CD - Docker Image 자동 배포, run(CD) (2) (12) | 2023.02.19 |
[Docker] GitHub Actions CI/CD - Docker Image 자동 빌드, push(CI) (1) (0) | 2023.02.18 |
[Docker] Docker - Spring Boot로 EC2 배포하기 (0) | 2023.02.18 |
[Docker] Docker로 AWS EC2 - MySQL 설치 및 테스트 (0) | 2023.02.17 |
댓글