Files
2026-09-14 15:50:24 +09:00

9.2 KiB

[ 서비스 ]

운영 서버

스테이지 서버

💡 Gabia DNS에 도메인을 등록하지 않고, hosts에 등록해서 사용하는 이유

: stage URL이 검색 엔진에 노출되는 것을 방지

- Synology npm에도 등록 X
  • hosts 설정

    • Mac: /etc/hosts (root 권한으로 편집)
    • Windows: C:\Windows\System32\drivers\etc\ (관리자 권한으로 메모장 실행 후 편집)
    # Chocomae (Stage)
    182.217.174.221 chocomae-stage.jisangs.com
    182.217.174.221 chocoadmin-stage.jisangs.com
    
  • 초코마에

  • 초코마에 어드민

도메인

Gabia - DNS 레코드 설정

  • DNS 도메인 레코드 등록

    Type Host TTL
    A chocomae 13.124.33.235 600초
    CNAME chocoadmin jisangs.synology.me. 600초
  • Gmail 발송시 스팸 방지 SPF 레코드 추가 (support@jinaju.com)

    Type Host TTL
    TXT @ v=spf1 include:_spf.google.com ~all 3,600초
  • 검색엔진, 포털 등록

    포털 등록 정보
    다음 다음 검색 (jisangs@daum.net)
    네이버 Search Advisor (jisangs@naver.com)
    구글 (아직 미등록) 구글 서치 콘솔

[ 주요 개발 환경 ]

개발 기술

  • 애플리케이션

    기술 내용
    Apache2 웹 서버
    BootStrap 프론트엔드 툴킷
    PHP7 DB 접속용 외부 API
    MySQL5 DataBase
    Phaser2 Application contents 제작
  • 배포 환경

    기술 내용
    Docker 운영 서버 환경

개발 툴

  • 개발 툴
    내용
    MAMP 5.3 • Apache2
    • PHP 7.3.1
    • MySQL 5.7.25
    IntelliJ IDEA Ultimate 통합개발환경
    DBeaver DB 클라이언트
    Affinity Designers 이미지 작업 (벡터 기반)
    Piskelapp 도트 이미지, 애니메이션

프로젝트 관리

  • 저장소

    내용 저장소 디렉토리
    gitea git.jisangs.com ssh://git@git.jisangs.com:30005/jisangs/chocomae.git
    gitea git.jisangs.com ssh://git@git.jisangs.com:30005/jisangs/chocoadmin.git
  • 관리툴

    내용
    Git 소스 관리, release 배포
    Notion 작업 문서, 진행 상황 정리
  • 작업 폴더

    내용 저장소 디렉토리, URL
    개발 소스 iMac /Application/MAMP/htdocs/mouse_typing
    PSD 작업 파일 Synology /volume1/work/project/2017_초코마에/Photoshop
    DB 백업 Synology /volume1/work/service/chocomae/db-backup
    견적 요청 Synology /volume1/work/service/chocomae/견적 요청
    에듀집 Synology /volume1/work/service/chocomae/에듀집

[ DB ]

DB 운영, 관리 작업

운영 서버 (AWS)

  • URL: chocomae.jinaju.com
  • port: 3306
  • DB 계정
    • root / sEobMPuJ2A8KTfwU
    • chocomae / sEobMPuJ2A8KTfwU
    • backup / sEobMPuJ2A8KTfwU

시놀로지 도커 DB

시놀로지 도커 컨테이너간에 proxy-network로 묶여 있음

  • URL: mariadb.jisangs.com
  • port: 30001
  • DB 계정
    • root / 오이나파크!
    • chocomae / (대문자)친구들95

[ 운영 서버 ]

AWS

  • Host: chocomae.jisangs.com (13.124.33.235)

  • SSH (port 22)

    ID PW
    ubuntu a오이나파크!
  • 주요 폴더

    내용 폴더
    초코마에 서비스 /var/www/html/mouse_typing
    Maria DB 설정 /etc/mysql
    Maria DB 로그 /var/log/mysql

Synology

  • Host: jisangs.synology.me

  • SSH (port 22)

    ID PW
    happyhome s오이나파크!(올해년도)
  • 주요 폴더 (Synology 기준)

    내용 폴더 비고
    초코어드민 (production) /volume1/docker/service/jinaju/chocoadmin chocoadmin (production) 도커
    초코마에 운영 DB 백업 /volume1/work/service/chocomae/db-backup/daily-backup 매일 04:00마다 운영 DB 풀백업
    마에스트로 계정 백업 /volume1/work/service/chocomae/db-backup/maestro-data 삭제된 마에스트로-학생 데이터 백업

[ 스테이지 서버 ]

Synology

  • 주요 폴더 (Synology 기준)

    내용 폴더 비고
    초코마에 (stage) /volume1/docker/service/jisangs/chocomae-stage chocomae (stage) 도커
    초코어드민 (stage) /volume1/docker/service/jisangs/chocoadmin-stage chocoadmin (stage) 도커
    Stage DB /volume1/docker/db/mariadb mariadb 도커 (30001)
  • ipTIME 포트포워드

    내용 외부 포트 내부 IP 내부 포트
    Docker - chocomae-stage - http 30010 synology IP 30010
    Docker - chocoadmin-stage - http 30011 synology IP 30011

Synology NAS Docker

chocoadmin

  • /volume1/docker/service/jinaju/chocoadmin

  • docker-compose.yml

    services:
      # 서비스 이름은 Docker 네트워크 alias로 등록되므로 stage(chocoadmin-stage)와 겹치면 안 된다.
      # 겹치면 Docker DNS가 라운드로빈으로 두 컨테이너에 트래픽을 분산시킨다.
      chocoadmin:
        build:
          context: .
          dockerfile: Dockerfile
        image: chocoadmin:latest
        container_name: chocoadmin
        expose:
          - "3000"
        env_file:
          - .env.production
        environment:
          NODE_ENV: production
          APP_ENV: production
          PORT: 3000
          HOSTNAME: 0.0.0.0
          TZ: Asia/Seoul
        networks:
          - proxy-network
        restart: unless-stopped
        # Synology 기본 db 로그 드라이버는 대량 로그 버스트 시 메시지를 드롭한다.
        # json-file(blocking 모드)은 무손실 — 표/SQL 로그 잘림 방지.
        logging:
          driver: json-file
          options:
            max-size: "10m"
            max-file: "3"
    
    networks:
      proxy-network:
        external: true
    
    

chocoadmin-stage

  • /volume1/docker/service/jisangs/chocoadmin-stage

  • docker-compose.stage.yml

    services:
      # 서비스 이름은 Docker 네트워크 alias로 등록되므로 production(chocoadmin)과 겹치면 안 된다.
      # 겹치면 Docker DNS가 라운드로빈으로 두 컨테이너에 트래픽을 분산시킨다.
      chocoadmin-stage:
        build:
          context: .
          dockerfile: Dockerfile
        image: chocoadmin-stage:latest
        container_name: chocoadmin-stage
        expose:
          - "3000"
        env_file:
          - .env.stage
        environment:
          NODE_ENV: production
          APP_ENV: stage
          PORT: 3000
          HOSTNAME: 0.0.0.0
          TZ: Asia/Seoul
        ports:
          - "0.0.0.0:30011:3000"
        networks:
          - proxy-network
        restart: unless-stopped
        # Synology 기본 db 로그 드라이버는 대량 로그 버스트 시 메시지를 드롭한다.
        # json-file(blocking 모드)은 무손실 — 표/SQL 로그 잘림 방지.
        logging:
          driver: json-file
          options:
            max-size: "10m"
            max-file: "3"
    
    networks:
      proxy-network:
        external: true
    

proxy-network

  • mariadb ↔ chocomae-stage
  • mariadb ↔ chocoadmin-stage

[ 배포 ]

초코마에

운영 서버

  1. https://jenkins.jisangs.com/ 로그인
  2. [ chocomae > chocomae (production) ] 메뉴 실행
  3. 왼쪽 사이드바에서 [지금 빌드] 버튼 클릭

스테이지 서버

  1. https://jenkins.jisangs.com/ 로그인
  2. [ chocomae > chocomae (stage) ] 메뉴 실행
  3. 왼쪽 사이드바에서 [지금 빌드] 버튼 클릭

초코어드민

운영 서버

  1. 터미널로 시놀로지 접속

  2. chocoadmin 운영 도커 디렉토리 이동

    cd /volume1/docker/service/jinaju/chocoadmin
    
  3. stage용 deploy.sh 실행

    ./deploy/deploy-production.sh
    
  4. 운영 서버 배포 실행 계속하기 확인

    운영 서버에 배포합니다. 계속하시겠습니까? (yes 입력)
    # yes 입력
    
  5. chocoadmin 운영 도커 빌드 및 컨테이너 재시작

    • git pull
    • proxy-network 확인
    • 도커 빌드 및 컨테이너 재시작
    • npm 리로드

스테이지 서버

  1. 터미널로 시놀로지 접속

  2. chocoadmin 운영 도커 디렉토리 이동

    cd /volume1/docker/service/jisangs/chocoadmin-stage
    
  3. stage용 deploy.sh 실행

    ./deploy/deploy-stage.sh
    
  4. chocoadmin 운영 도커 빌드 및 컨테이너 재시작

    • git pull
    • proxy-network 확인
    • 도커 빌드 및 컨테이너 재시작
    • npm 리로드