Files
synology_in_mastodon/README.md
2023-01-27 07:08:54 +00:00

3.8 KiB

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/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