ded12332d5965ff82ccfbaefdbba2ac8dd5142b2
[ 서비스 ]
운영 서버
- 초코마에
- 초코마에 어드민
- https://chocoadmin.jinaju.com/
- 계정 정보: jisangs / friends
- (구) http://chocomae.jinaju.com/mouse_typing/src/web/admin/login.html
스테이지 서버
💡 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 -
초코마에
- (30010 포트 지정) http://chocomae-stage.jisangs.com:30010/
-
초코마에 어드민
- (30011 포트 지정) http://chocoadmin-stage.jisangs.com:30011/
도메인
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
[ 배포 ]
초코마에
운영 서버
- https://jenkins.jisangs.com/ 로그인
- [ chocomae > chocomae (production) ] 메뉴 실행
- 왼쪽 사이드바에서 [지금 빌드] 버튼 클릭
스테이지 서버
- https://jenkins.jisangs.com/ 로그인
- [ chocomae > chocomae (stage) ] 메뉴 실행
- 왼쪽 사이드바에서 [지금 빌드] 버튼 클릭
초코어드민
운영 서버
-
터미널로 시놀로지 접속
-
chocoadmin 운영 도커 디렉토리 이동
cd /volume1/docker/service/jinaju/chocoadmin -
stage용 deploy.sh 실행
./deploy/deploy-production.sh -
운영 서버 배포 실행 계속하기 확인
운영 서버에 배포합니다. 계속하시겠습니까? (yes 입력) # yes 입력 -
chocoadmin 운영 도커 빌드 및 컨테이너 재시작
- git pull
- proxy-network 확인
- 도커 빌드 및 컨테이너 재시작
- npm 리로드
스테이지 서버
-
터미널로 시놀로지 접속
-
chocoadmin 운영 도커 디렉토리 이동
cd /volume1/docker/service/jisangs/chocoadmin-stage -
stage용 deploy.sh 실행
./deploy/deploy-stage.sh -
chocoadmin 운영 도커 빌드 및 컨테이너 재시작
- git pull
- proxy-network 확인
- 도커 빌드 및 컨테이너 재시작
- npm 리로드
Description
Languages
JavaScript
45.4%
PHP
23.2%
HTML
19.6%
CSS
3.5%
Less
2.1%
Other
6.2%