From e664217485f953a77563940a43d54e6be38a3e63 Mon Sep 17 00:00:00 2001 From: ttipo Date: Mon, 2 Nov 2026 23:41:22 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20mailcow=20=ED=98=B8=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EB=8A=94=20=EC=82=AC=EB=AC=B4=EC=8B=A4=20PC=20=EC=9D=98=20WSL?= =?UTF-8?q?=20=E2=80=94=20=ED=99=95=EC=9D=B8=20=C2=B7=20=EB=A7=88=EC=8A=A4?= =?UTF-8?q?=ED=84=B0=20=EA=B3=84=EC=A0=95=20=EB=AA=85=EB=A0=B9=EC=9D=84=20?= =?UTF-8?q?sudo=20=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mailcow.conf 와 mailcow 저장소가 root 소유라 sudo 없이는 grep 이 거절되고 git 이 dubious ownership 으로 멈췄다(2026-11-02 사용자 실행). 이전하는 동안 그 PC 가 절전 · 재부팅되면 imapsync 가 끊긴다는 줄도 더했다. Co-Authored-By: Claude Opus 5.5 --- mail/README.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/mail/README.md b/mail/README.md index 6126399..a5998c8 100644 --- a/mail/README.md +++ b/mail/README.md @@ -1520,23 +1520,26 @@ mailcow 는 dovecot-mailcow 를 다시 띄울 때마다 **무작위** 마스터 mailcow 문서 "Static master user"(, 몇 해 된 글): ```bash -# mailcow 호스트 — 설치 폴더(/opt/mailcow-dockerized)의 mailcow.conf 에 두 줄. 둘 다 값이 있어야 한다(하나라도 비면 무작위로 만든다) +# mailcow 호스트(사무실 PC 의 WSL 셸) — mailcow.conf 는 root 소유라 sudo 로 연다: sudo nano /opt/mailcow-dockerized/mailcow.conf +# 두 줄을 넣는다. 둘 다 값이 있어야 한다(하나라도 비면 무작위로 만든다) DOVECOT_MASTER_USER=<이름> # 로그인 이름에는 @mailcow.local 이 저절로 붙는다 DOVECOT_MASTER_PASS=<비밀번호> # 영문 · 숫자로 길게 -docker compose up -d # dovecot-mailcow 가 다시 만들어진다 +# 그리고 설치 폴더에서 다시 띄운다 — dovecot-mailcow 가 다시 만들어진다 +cd /opt/mailcow-dockerized && sudo docker compose up -d ``` - IMAP 로그인 이름은 `<직원 주소>*<이름>@mailcow.local`(예 `hong@arasystem.it.kr*migrator@mailcow.local` — `@` 가 둘), 비밀번호는 `DOVECOT_MASTER_PASS` 다. **IMAP 전용** — SOGo(mailcow 웹메일) 로그인에는 쓰지 못한다. - 끝나면(단계 8) 두 줄을 지우고 `docker compose up -d` — 무작위로 돌아간다. 마스터 비밀번호는 모든 메일함을 연다. -- `mailcow.conf` 는 **mailcow 호스트** — mailcow 컨테이너가 도는 사무실 PC(바깥 `mail.arasystem.it.kr` 은 Contabo 앞단을 거쳐 이 PC 로 온다)에 있다. 운영자가 그 PC 에 들어가 고친다 - (2026-11-02 사용자 확인 — 파일럿 때 적은 "관리 화면만"([파일럿 공존](#파일럿-공존-mailcow-와-함께--한-사람-먼저)의 "SSH 가 없을 때")은 원격으로 들어갈 길 이야기다). - 설치 폴더는 compose 가 기록한 작업 폴더로 찾는다 — 값(비밀번호)은 출력하지 않고 이름만 본다: +- `mailcow.conf` 는 **mailcow 호스트** — mailcow 컨테이너가 도는 사무실 PC(Windows 의 WSL — 설치 폴더 `/opt/mailcow-dockerized`, 바깥 `mail.arasystem.it.kr` 은 Contabo 앞단을 거쳐 이 PC 로 온다)에 있다. + 운영자가 그 PC 의 WSL 셸에서 고친다(2026-11-02 사용자 확인 — 파일럿 때 적은 "관리 화면만"([파일럿 공존](#파일럿-공존-mailcow-와-함께--한-사람-먼저)의 "SSH 가 없을 때")은 원격으로 들어갈 길 이야기다). + 이전하는 동안 그 PC 가 절전 · 재부팅되면 mailcow 가 멈춰 imapsync 가 끊긴다 — 전원 연결 시 절전 안 함으로 둔다. + `mailcow.conf` 는 root 만 읽고 저장소도 root 소유라 확인 명령은 sudo 로 한다 — 값(비밀번호)은 출력하지 않고 이름만 본다(`git config safe.directory` 는 건드리지 않는다): ```bash - # mailcow PC 에서 (리눅스 셸 · docker 를 쓸 수 있는 사용자) - sudo docker inspect "$(sudo docker ps -qf name=dovecot-mailcow)" --format '{{ index .Config.Labels "com.docker.compose.project.working_dir" }}' - cd <위 폴더> && grep -o '^#\?DOVECOT_MASTER_[A-Z]*' mailcow.conf # 줄이 있는지 · 주석인지만 - git log -1 --format='%cd %h' --date=short # mailcow 판(커밋 날짜) + # mailcow PC 의 WSL 셸에서 (sudo 를 쓸 수 있는 사용자) + sudo docker inspect "$(sudo docker ps -qf name=dovecot-mailcow)" --format '{{ index .Config.Labels "com.docker.compose.project.working_dir" }}' # → /opt/mailcow-dockerized + sudo grep -o '^#\?DOVECOT_MASTER_[A-Z]*' /opt/mailcow-dockerized/mailcow.conf # 줄이 있는지 · 주석인지만 + sudo git -C /opt/mailcow-dockerized log -1 --format='%cd %h' --date=short # mailcow 판(커밋 날짜) ``` - **확인하지 않은 것** — imapsync 가 붙는 `mail.arasystem.it.kr:993` 이 Contabo 앞단을 어떻게 지나 사무실 PC 의 mailcow 에 닿는지 — mailcow 가 보는 접속 주소가 서버 B 의 IP 가 아니라 앞단의 주소라면 Fail2ban 예외도 그 주소여야 하고, 그 주소가 막히면 모든 직원의 메일 프로그램이 함께 막힌다(첫 사람의 `--justlogin` 뒤 mailcow 관리 화면의 로그인 기록에서 그 주소를 본다).