diff --git a/README.md b/README.md index 3cb8a87..f46b52e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,129 @@ -# Synology_in_mastodon +# Synology in mastodon +> 해당 문서는 Synology의 web ui가 아닌 ssh를 통한 docker command를 사용하여 진행 -Synology 환경에서 docker를 통해 mastodon을 설치하는 방법 \ No newline at end of file +## 준비 +- 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/pgdata --network mastodon --name mastodon-db -e POSTGRES_PASSWORD=ios2011a! -d postgres:14 +``` +> postgres에 마운트할 디렉토리로 이동한 다음 커맨드 수행 (또는 마운트할 디렉토리를 입력 ./ 부분) + +- 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에 마운트할 디렉토리로 이동한 다음 커맨드 수행 (또는 마운트할 디렉토리를 입력 ./ 부분) + +- 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 +``` \ No newline at end of file