
PHP 사이트 몇 개, Python 서비스 하나, Next.js 앱 하나를 한 PC에서 동시에 띄우다 보면 일이 금방 늘어납니다. 가상호스트 파일을 만들고, /etc/hosts에 도메인을 적고, 포트가 겹치지 않게 맞추고, DB를 만들고 백업합니다. PC를 바꾸면 이 일을 처음부터 다시 해야 합니다. LocalMan은 이 반복을 앱 하나로 줄이려고 만든 로컬 개발 환경 관리자입니다.
LocalMan은 무엇인가
폴더를 등록하면 프로젝트이름.localhost 도메인으로 바로 열리게 해 주는 데스크톱 앱입니다. Apache 가상호스트와 hosts 등록을 앱이 대신 하고, PHP는 DocumentRoot로 직접, Python·Next.js는 개발 서버 포트로 프록시합니다. Next.js의 HMR(웹소켓)까지 프록시하므로 새로고침 없이 바뀐 화면이 반영됩니다. Rust와 iced로 만들었고, 리눅스(데비안·우분투)와 맥에서 같은 화면으로 동작합니다.
주요 기능
| 기능 | 하는 일 |
|---|---|
| 서비스 | Apache, MySQL·MariaDB, PostgreSQL 설치·시작·중지 |
| 프로젝트 | PHP·Python·Next.js 등록, 하위 폴더 앱 자동 감지, 개발 서버 실행, 에러 로그 보기, 도메인 검색 |
| 용량 | 사이트마다 파일(그중 node_modules 등 의존성)·DB·합계, 전체 합계 |
| 데이터베이스 | DB·사용자 생성·삭제, 백업·복원, .sql.gz 가져오기, Adminer 열기 |
| 로컬 HTTPS | https://도메인 인증서 발급, 만료 30일 전 자동 갱신 |
| 백업·이전 | 설정·DB를 한 파일로, 또는 같은 와이파이의 다른 PC로 바로 보내기 |
| 서버 배포 | SSH 서버에 바뀐 파일만 올리기, 원격 DB에 넣기 |
| 개발 도구 | Node.js LTS·Python·PHP·rsync 버전 확인과 설치 |
다른 도구와 다른 점
PC를 옮겨도 그대로 이어집니다. 백업·이전 탭에서 [받기 대기]를 누르면 6자리 코드가 나오고, 다른 PC에서 그 코드를 넣으면 프로젝트 파일·설정·DB가 넘어갑니다. rsync처럼 크기와 수정 시각을 비교해 바뀐 파일만 보내고, node_modules·venv는 빼고 보냅니다. 같은 프로젝트를 다시 보내면 바뀐 파일 몇 개만 오갑니다. 오가는 내용은 코드로 키를 맞춘 뒤 암호화하고, 코드를 세 번 틀리면 받기를 멈춥니다. 리눅스 경로(/home/...)는 맥 경로(/Users/...)로 자동으로 바꿉니다.
로컬에서도 HTTPS로 개발합니다. Let's Encrypt는 *.localhost에 인증서를 주지 않기 때문에, 앱 전용 인증기관을 만들어 OS에 한 번 신뢰시키고 도메인마다 인증서를 발급합니다. 이 인증기관은 localhost 아래에만 발급할 수 있게 묶어 두어, 키가 새더라도 다른 사이트 인증서를 만들 수 없습니다.
실서버 배포까지 이어집니다. 서버 주소와 웹 경로, 원격 DB를 넣으면 [미리보기]로 올라갈 파일을 먼저 보고 [파일 올리기]로 바뀐 파일만 올립니다. 서버에만 있는 업로드 파일은 지우지 않고, .env와 라이믹스 설정 폴더는 기본으로 빼 둡니다. [DB 올리기]는 덮어쓰기 직전에 원격 DB를 이 PC에 먼저 백업합니다.
MAMP에서 넘어오기 쉽습니다. MAMP가 설치된 맥이면 가상호스트와 MySQL DB 목록이 나타나고, 고른 DB를 로컬맨 백업 파일로 만들어 바로 가져올 수 있습니다. MAMP 폴더는 읽기만 합니다.
설치
git clone https://github.com/eondcom/localman.git cd localman # 맥: /Applications/LocalMan.app 으로 설치 ./scripts/macos/make-app.sh sudo ./scripts/macos/install-sudoers.sh # 리눅스(데비안·우분투) cargo build --release sudo ./scripts/linux/install-sudoers.sh
sudoers 스크립트는 Apache 시작·중지와 /etc/hosts 수정처럼 꼭 필요한 명령만 비밀번호 없이 쓰도록 등록합니다. 처음 한 번만 실행하면 됩니다. Intel 맥은 Homebrew가 MariaDB를 미리 빌드해 주지 않아, 서비스 탭의 [설치하기]가 MySQL 8.4 LTS 공식 바이너리를 앱 전용 폴더에 설치합니다.
이런 분께 맞습니다
- 라이믹스·워드프레스 같은 PHP 사이트를 여러 개 로컬에서 고치는 분
- PHP와 Python·Next.js 프로젝트를 한 PC에서 같이 띄우는 분
- 리눅스 데스크톱과 맥을 오가며 같은 프로젝트를 다루는 분
- MAMP를 쓰다가 여러 도메인과 HTTPS가 필요해진 분
링크
소스: github.com/eondcom/localman
써 보시고 불편한 점이나 필요한 기능을 댓글로 남겨 주시면 참고해서 다듬어보겠습니다.