129 lines
3.8 KiB
Markdown
129 lines
3.8 KiB
Markdown
# Synology in mastodon
|
|
> 해당 문서는 Synology의 web ui가 아닌 ssh를 통한 docker command를 사용하여 진행
|
|
|
|
## 준비
|
|
- Docker 설치
|
|
- SSH 오픈
|
|
- 설치가 완료 된 후 반드시 비활성
|
|
|
|
## Docker Network 생성
|
|
- mastodon을 구성하는 mastodon, db, redis가 사용할 docker network를 생성
|
|
```
|
|
docker network create mastodon
|
|
```
|
|
|
|
## DB 설치
|
|
> postgres, mariadb. mysql 등 여러 DB중 1가지 선택 (해당 문서는 postgres 사용)
|
|
- container 생성과 동시에 자동으로 이미지가 pull 되지만 사전에 미리 사용할 이미지를 미리 받음
|
|
```
|
|
docker pull postgres:14
|
|
```
|
|
- postgres 실행
|
|
```
|
|
docker run -v ./:/var/lib/postgresql/data --network mastodon --name mastodon-db -e POSTGRES_PASSWORD=ios2011a! -e PGDATA=/var/lib/postgresql/data/pgdata -d postgres:14
|
|
```
|
|
> postgres에 마운트할 디렉토리로 이동한 다음 커맨드 수행 (또는 마운트할 디렉토리를 입력 <span style='color:red'>./</span> 부분)
|
|
|
|
- postgres 기동 확인
|
|
> container 기동 상태와 log를 확인
|
|
```
|
|
docker ps |grep mastodon-db
|
|
docker logs -f mastodon-db
|
|
```
|
|
|
|
## redis 설치
|
|
- container 생성과 동시에 자동으로 이미지가 pull 되지만 사전에 미리 사용할 이미지를 미리 받음
|
|
```
|
|
docker pull redis:7.0.8
|
|
```
|
|
|
|
- redis 실행
|
|
```
|
|
docker run -v ./:/data --network mastodon --name redis -d redis:7.0.8
|
|
```
|
|
> redis에 마운트할 디렉토리로 이동한 다음 커맨드 수행 (또는 마운트할 디렉토리를 입력 <span style='color:red'>./</span> 부분)
|
|
|
|
- redis 기동 확인
|
|
> container 기동 상태와 log를 확인
|
|
```
|
|
docker ps |grep redis
|
|
docker logs -f redis
|
|
```
|
|
|
|
## mastodon 설치
|
|
> 해당 프로젝트에서 docker-compose.yml을 미리 다운로드
|
|
- container 생성과 동시에 자동으로 이미지가 pull 되지만 사전에 미리 사용할 이미지를 미리 받음
|
|
```
|
|
docker pull lscr.io/linuxserver/mastodon:4.0.2
|
|
```
|
|
|
|
- SECRET_KEY_BASE & OTP_SECRET 생성 (두개가 동일한 값을 사용)
|
|
```
|
|
docker run --rm -it -w /app/www --entrypoint rake lscr.io/linuxserver/mastodon:4.0.2 secret
|
|
```
|
|
> 출력되는 생성 값을 복사
|
|
|
|
- VAPID_PRIVATE_KEY & VAPID_PUBLIC_KEY 생성
|
|
```
|
|
docker run --rm -it -w /app/www --entrypoint rake lscr.io/linuxserver/mastodon:4.0.2 mastodon:webpush:generate_vapid_key
|
|
```
|
|
> 출력되는 생성 값을 복사
|
|
|
|
- docker-compose.yml를 수정
|
|
```
|
|
---
|
|
version: "3"
|
|
|
|
services:
|
|
mastodon:
|
|
image: lscr.io/linuxserver/mastodon:4.0.2
|
|
container_name: mastodon
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=America/New_York
|
|
- LOCAL_DOMAIN=mastodon.jhcloud.kr
|
|
- REDIS_HOST=redis
|
|
- REDIS_PORT=6379
|
|
- DB_HOST=mastodon-db
|
|
- DB_USER=postgres
|
|
- DB_NAME=mastodon
|
|
- DB_PASS=ios2011a!
|
|
- DB_PORT=5432
|
|
- ES_ENABLED=false
|
|
- SECRET_KEY_BASE=d7d06e29189dce18d0b7601f565390ca84cc47cb6c7b1284f66c64f2ee62ae6121ba0b8a5621c5c33a6ce8faa0371b03a76ca58881b1ed33078dab716c3f1b20
|
|
- OTP_SECRET=d7d06e29189dce18d0b7601f565390ca84cc47cb6c7b1284f66c64f2ee62ae6121ba0b8a5621c5c33a6ce8faa0371b03a76ca58881b1ed33078dab716c3f1b20
|
|
- VAPID_PRIVATE_KEY=H_cB0oXyOCzUHzvl_OoryS9OlFOwf9o3fiB10DUHDyE=
|
|
- VAPID_PUBLIC_KEY=BFGLELQT867_t9XssWBZbAJA-jqAOCf5VNW3d4PWLXLxh2fVW_LShSE2gikd-vETN6Q6DJc8BUWRC4dH8x_haGM=
|
|
- SMTP_SERVER=jhcloud.kr
|
|
- SMTP_PORT=25
|
|
- SMTP_LOGIN=sa_8001
|
|
- SMTP_PASSWORD=Tmax@23!!
|
|
- SMTP_FROM_ADDRESS=sa_8001@jhcloud.kr
|
|
- S3_ENABLED=false
|
|
- WEB_DOMAIN=mastodon.jhcloud.kr
|
|
volumes:
|
|
- ./:/config
|
|
ports:
|
|
- 6080:80
|
|
- 6043:443
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
default:
|
|
external:
|
|
name: mastodon
|
|
```
|
|
|
|
- mastodon을 실행
|
|
> docker-compse.yml이 있는 디렉토리에서 수행
|
|
```
|
|
docker-compse up -d
|
|
```
|
|
|
|
- mastodon 기동 확인
|
|
> container 기동 상태와 log를 확인
|
|
```
|
|
docker ps |grep mastodon
|
|
docker logs -f mastodon
|
|
``` |