[FOSS] Caddy Web Server 소개

Caddy Server

Caddy 는 Golang 으로 작성된 웹 서버로, 자동으로 ssl 인증서를 발급 / 갱신하는 기능을 탑재하고 있다.

특징

  • Caddyfile 이라는 자체 파일 형식을 사용하여 웹 서버의 동작 정의 (nginx 의 nginx.conf 파일처럼 자체 형식 사용)
  • Let’s Encrypt 를 사용하여 자동으로 ssl 인증서를 발급 / 갱신

활용 예시들

준비

  • Caddy 설치: 설치 가이드
  • VSCode 의 Caddyfile 용 확장 설치 (추천): Caddyfile Syntax
  • 현재 접속중인 네트워크의 공인 IP 주소를 본인이 소유한 Domain 의 DNS Record (A/AAAA) 로 등록
  • 현재 접속중인 네트워크가 라우터 아래에 구성된 사설망인 경우 DMZ 혹은 포트포워딩 설정

public reverse proxy with ssl certificate

아래의 간단한 reverse proxy 인프라를 구성해 보자. 추가로 rotate 가 되는 access log 도 로그 디렉터리에 남겨보도록 한다.

Read more

M1 맥 터미널에서 명령어 하나로 arm / x86 환경 전환해가며 사용하기

목표

M1 맥북 터미널에서 간단한 명령어 intel, arm 으로 터미널 아키텍처와 환경 전환해가며 사용 가능하게 구성

작업 환경

  • 하드웨어
    • MBP M1 Max 14인치
  • 터미널 에뮬레이터
    • iterm2
  • 시스템 기본 쉘
    • bash
  • 기존에 사용하던 intel 맥에서 마이그레이션 지원 을 활용해 새 맥으로 데이터를 모두 옯긴 후 작업하였습니다.
    • 즉, 초기 환경이 마이그레이션 작업 완료 직후 /usr/local/bin/brew 경로에 intel 용 homebrew 가 설치되어 있는 환경입니다.

작업 전 준비사항

rosetta2 설치

터미널에서 아래 명령어를 입력하여 rosetta2 를 설치합니다.

Read more

[Typescript] 빌드 디렉터리의 구조 변경 없이 소스 디렉터리 밖의 모듈 가져오기

문제 상황

/
	tsconfig.json
	package.json
	data/
		myData.json
	src/
		index.ts
	...
  • 위와 같은 프로젝트 구조에서 index.ts 코드가 아래와 같을 경우 빌드 디렉터리의 구조가 이상하게 바뀐다.

    import myData from '../myData.json';
    
    console.log(JSON.stringify(myData));
    
    /
    	dist/
    		index.js
    		data/
    			myData.json
    		src/
    			index.js
    
  • 기대하는 빌드 디렉터리 구조는 아래와 같다.

Read more