์ต๊ทผ์ ๊ฐ์ธ ์๋ฒ๋ฅผ ๋์ค๋ก ํ์ฉํ ์๊ฐ์ ํ๊ณ ์์๋ค.
์๋ฒ๋ ์ด๋ฏธ ๋ฏธ๋PC๋ฅผ ํตํด ์ฌ์ฉํ๊ณ ์๊ณ , ๋ฌธ์ ๋ OS์๋๋ฐ, ์๋๋ก์ง OS๋ฅผ ์ฌ์ฉํ๊ธฐ์๋ ๋๋ฌด ๋ฌด๊ฒ๊ณ ์์ฒญ๋ ๊ณ ๋์ ๊ฒช์ ๊ฒ ๊ฐ์๋ค. ๊ทธ๋์ ์ด์ ์ ์์ฃผ ๋ค์ด๋ณธ Nextcloud๋ฅผ ์ฌ์ฉํ๊ฒ ๋์๋๋ฐ, ๋ด ์๋ฒ OS์ ๋ค์ด๋ ํธ๋ก ์ค์นํ๋ค๊ฐ, ์ธ์ ๊ฐ์๊ธฐ ๊ฐ๋ฐํ๊ฒฝ๋ค๊ณผ ๋ํ์ฅ ์ฝ๋ผ๋ณด๋ฅผ ํ ์ง ๋ชฐ๋ผ ์ปจํ ์ด๋ํ๋ฅผ ํ๊ฒ ๋์๋ค.
์ ์ฒด ๊ตฌ์กฐ
Docker Compose
โโโ db : MariaDB ์ปจํ
์ด๋ (๋ฐ์ดํฐ๋ฒ ์ด์ค)
โโโ app : Nextcloud ์ปจํ
์ด๋ (์น ์ ํ๋ฆฌ์ผ์ด์
)
docker-compose.yml
version: "3.9"
services:
# MariaDB ๋ฐ์ดํฐ๋ฒ ์ด์ค
db:
image: mariadb:10.6
restart: always
command: --transaction-isolation=READ-COMMITTED
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=myrootpass1234
- MYSQL_PASSWORD=mypass1234
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
# Nextcloud ์ฑ
app:
image: nextcloud
restart: always
ports:
- 5000:80
depends_on:
- db
volumes:
- ./dir:/var/www/html
environment:
- MYSQL_PASSWORD=mypass1234
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
volumes:
db:
dir:
๊ฐ ํญ๋ชฉ ์ค๋ช
1. MariaDB ์ปจํ
์ด๋ (db)
- image: MariaDB 10.6 ๋ฒ์ ์ฌ์ฉ
- restart: always: ์ปจํ ์ด๋ ์๋ ์ฌ์์
- command: ํธ๋์ญ์
๊ฒฉ๋ฆฌ ์์ค
READ-COMMITTED - volumes:
./dbํด๋๋ฅผ ์ปจํ ์ด๋์/var/lib/mysql์ ๋ง์ดํธ → ๋ฐ์ดํฐ ์๊ตฌ ์ ์ฅ - environment: DB ๊ณ์ ๋ฐ ๋น๋ฐ๋ฒํธ ์ค์
MYSQL_ROOT_PASSWORD: ๋ฃจํธ ๊ณ์ MYSQL_DATABASE: Nextcloud ๋ฐ์ดํฐ๋ฒ ์ด์คMYSQL_USER/MYSQL_PASSWORD: Nextcloud ์ ์์ฉ ๊ณ์
2. Nextcloud ์ปจํ
์ด๋ (app)
- image: ๊ณต์ Nextcloud ์ด๋ฏธ์ง ์ฌ์ฉ
- restart: always: ์ฑ ์๋ ์ฌ์์
- ports: ํธ์คํธ 5000๋ฒ → ์ปจํ ์ด๋ 80๋ฒ ๋งคํ
- depends_on:
db์ปจํ ์ด๋ ๋จผ์ ์์ - volumes:
./dir→/var/www/html๋ง์ดํธ → ํ์ผ๊ณผ ์ค์ ์๊ตฌ ์ ์ฅ - environment: DB ์ฐ๊ฒฐ ์ ๋ณด ์ค์
MYSQL_HOST=db: ์ฐ๊ฒฐํ DB ํธ์คํธMYSQL_DATABASE,MYSQL_USER,MYSQL_PASSWORD: DB ๊ณ์ ์ ๋ณด
3. ๋ณผ๋ฅจ ์ ์
db: MariaDB ๋ฐ์ดํฐ ์ ์ฅ์ฉdir: Nextcloud ํ์ผ ๋ฐ ์ค์ ์ ์ฅ์ฉ
์ฌ์ฉ ๋ฐฉ๋ฒ
docker-compose.ymlํ์ผ ์์ฑ- ๊ฐ์ ๋๋ ํฐ๋ฆฌ์
db์dirํด๋ ์์ฑ (์์ผ๋ฉด ์๋ ์์ฑ ๊ฐ๋ฅ) - Docker Compose ์คํ
docker-compose up -d
- ๋ธ๋ผ์ฐ์ ์์
http://localhost:5000์ ์ ํ ์ด๊ธฐ ์ค์ ์งํ
๋ชจ๋ฐ์ผ ์ฑ ์ ์ ์ค์
Nextcloud iOS/Android ์ฑ์์ ๋ก๊ทธ์ธ ์ “Current user is not logged in” ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์ด ๋ฌธ์ ๋ HTTPS ์ค์ ๊ณผ ๊ด๋ จ์ด ๊น๋ค.
Nextcloud ์ปจํ
์ด๋ ๋ด๋ถ config/config.php ํ์ผ์ ๋ค์ ์ต์
์ ์ถ๊ฐํด์ผ ํ๋ค
'overwriteprotocol' => 'https',
์ด ์ต์ ์ Nextcloud๊ฐ ์ธ๋ถ์์ ์ ์ํ ๋ HTTPS ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋๋ก ๊ฐ์ ํ๋ค.
ํนํ Docker + Nginx ํ๊ฒฝ์์ HTTPS ๋ฆฌ๋ฒ์ค ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ์ ์ค์ ์.
Nginx ์ ๋ก๋ ์ฉ๋ ์ ํ ์์
๊ธฐ๋ณธ Nginx ์ค์ ์์๋ ์
๋ก๋ ํ์ผ ํฌ๊ธฐ์ ์ ํ์ด ์๋ค.
Nextcloud์์ ๋์ฉ๋ ํ์ผ ์
๋ก๋๊ฐ ํ์ํ๋ฉด Nginx ์ค์ ์ ์์ ํด์ผ ํ๋ค.
์์ (nginx.conf ๋๋ ์ฌ์ดํธ ์ค์ ):
server {
listen 443 ssl;
server_name example.com;
location / {
proxy_pass http://172.0.0.1:5000;
proxy_set_header Host example.com;
proxy_set_header Connection upgrade;
# Nextcloud ์ ์ฉ ์
๋ก๋ ์ ํ ํด์
client_max_body_size 50G;
client_body_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
}
}
client_max_body_size: ์ ๋ก๋ ์ต๋ ์ฉ๋ ์ค์ - Nextcloud PHP ์ค์ (
php.ini)์์๋upload_max_filesize์post_max_size๋ฅผ ๋์ผํ๊ฒ ๋๋ ค์ผ ๋์ฉ๋ ์ ๋ก๋๊ฐ ์ ์ ๋์ํ๋ค.
'๐ง Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Docker] lsyncd (๋ก์ปฌ) ๋ฐ์ดํฐ ์ด์คํ docker-compose.yaml ๊ตฌ์ฑ (0) | 2025.11.20 |
|---|---|
| [Docker] ์์ฝ๊ฒ NodeJS ํ๋ก์ ํธ ๊ตฌ์ฑ (with docker-compose) (0) | 2025.11.20 |
| Certbot SSL๋ฐ๊ธ ์ต๊ณ ์ ์ ์ฉ ๋ฐฉ๋ฒ with Nginx (0) | 2025.03.04 |
| [Linux] ์๋ฒ์ Nvidia ๊ทธ๋ํฝ ๋๋ผ์ด๋ฒ ์ค์น (1) | 2024.12.12 |
| [๋ฆฌ๋ ์ค] ๋๋ง์ ๋ช ๋ น์ด ๋ง๋ค๊ธฐ (์ปค์คํ ์ปค๋งจ๋) (1) | 2024.11.29 |