최근 친구들과 공용 클라우드를 구축하기 위해 이런저런 소프트웨어들을 알아보고 있던 와중 nextcloud라는 녀석을 발견했다.
Nextcloud - Open source content collaboration platform
Setup
docker-compose.yml 파일은 다음과 같이 구성했다. (Dockerhub - nextcloud)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
version: '3'
services:
app:
image: nextcloud:28.0.2
restart: always
ports:
- 80:80
links:
- db
volumes:
- ./volumes/nextcloud:/var/www/html
#apps, config, data 도 개별적으로 마운트 시켰다
- ./volumes/apps:/var/www/html/custom_apps
- ./volumes/config:/var/www/html/config
- ./volumes/data:/var/www/html/data
environment:
- MYSQL_PASSWORD=pass1234
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
deploy:
resources:
limits:
# 소규모로 사용할 예정이라, CPU랑 메모리는 최대한 타이트하게 잡았다
cpus: '0.5'
memory: '500M'
db:
image: mariadb:10.6
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
restart: always
volumes:
- ./volumes/mariadb:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=pass1234
- MYSQL_PASSWORD=pass1234
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
참고로 Nextcloud는 sqlite가 기본 내장되어 있으며, 외부 데이터 베이스를 연동시킬 수도 있다. 나는 docker-compose.yml에 mariadb 컨테이너를 하나 올려서 연동 시켰다.
이 상태로 compose up 시킨 후 80 포트 접속시 admin계정을 비롯한 초기 세팅을 할 수 있는 페이지가 나온다.
일단 UI구성도 깔끔하고 여러모로 맘에 든다.
이제 nginx로 프록시 올려서 SSL인증서만 먹이면 될 것 같다.