[수원=Netcity News] 192.168.0.197 서버 운영 과정에서 웹 문서를 브라우저 안에서 직접 고치고 저장하는 Ubuntu Guide Editor가 구축됐다. 처음에는 우분투 서버 구축 설명서 전용 편집기로 출발했지만, 이후 PWA와 크롬 앱 런처, 문서형 편집 화면, 코드 편집 화면, 서버 파일 오프너가 더해지면서 개인 서버 운영자가 자기 웹 문서를 앱처럼 열어 관리하는 도구로 확장됐다.
개인 서버를 운영하다 보면 가장 자주 만나는 일은 거창한 배포가 아니라 작은 문서 수정이다. 설명서에 한 문장을 덧붙이고, 링크를 바꾸고, 안내 페이지의 표현을 고치고, 이미지 한 장을 교체하는 일이다. 기존 방식은 SSH로 접속해 파일을 열거나, FTP로 내려받아 고친 뒤 다시 올리는 식이었다. 익숙하면 빠르지만, 운영자가 문서를 보면서 바로 고치기에는 흐름이 끊긴다.
Ubuntu Guide Editor는 이 지점을 겨냥했다. 웹 문서를 실제 페이지처럼 열어 두고, 그 화면에서 본문을 클릭해 수정한 뒤 저장하는 방식이다. 서버 문서를 브라우저가 보여주는 모양 그대로 보면서 고칠 수 있기 때문에, 일반 텍스트 편집기에서 태그와 문장 사이를 오가던 불편이 줄어든다. 특히 설치 설명서, 운영 안내문, 소개 페이지처럼 문장과 레이아웃을 함께 확인해야 하는 문서에 잘 맞는다.
첫 적용 대상은 mobile.netcity.co.kr의 우분투 서버 구축 설명서였다. 이 페이지는 Ubuntu Server, Nginx, PHP-FPM, MariaDB, 도메인, 443 포트 프록시, USB 역테더링 스마트폰 서버 흐름을 정리한 문서다. 편집기는 이 페이지를 iframe 안에 불러와 designMode로 전환하고, 문서형 편집 탭에서 H2, H3, 문단, 굵게, 기울임, 링크, 목록, 서식 제거 같은 기본 도구를 제공한다.
여기서 중요한 점은 “코드만 보이는 도구”가 아니라는 것이다. 운영자는 기본적으로 문서 편집 탭을 보고, 필요할 때만 코드 편집 탭으로 넘어간다. 문서 편집에서는 실제 페이지 모습이 나오고, 코드 편집에서는 index.php 전체 소스를 열어 세밀한 수정도 가능하다. 저장 방식도 나뉜다. 문서 편집은 본문 HTML을 별도 파일로 저장하고, 코드 편집은 원본 파일 전체를 저장한다.
이 구조는 단순한 편의 기능을 넘어 운영 방식의 변화에 가깝다. 서버 관리자는 문서를 별도 CMS에 옮기지 않아도 되고, 기존 HTML/PHP 파일을 그대로 운영하면서도 화면 기반 편집을 얻는다. 서버 안의 문서를 서버 안에서 직접 고치되, 브라우저 앱처럼 접근하는 중간 지점이 만들어진 셈이다.
Ubuntu Guide Editor는 일반 웹페이지로도 열리지만, 실제 운영에서는 크롬 앱 모드가 더 자연스럽다. 우분투 데스크톱에 설치 스크립트를 두고 실행하면, 애플리케이션 메뉴에 Ubuntu Guide Editor가 등록된다. 사용자는 브라우저 주소창을 매번 열 필요 없이, 일반 프로그램처럼 앱을 검색해 실행한다.
이 앱 런처는 내부적으로 google-chrome의 --app 옵션을 사용한다. 별도의 주소창이나 탭 UI 없이 독립 창으로 열리기 때문에, 사용자는 이것을 웹사이트라기보다 하나의 편집 프로그램처럼 다룰 수 있다. 프로필도 별도 user-data-dir로 분리해 일반 브라우징과 운영 편집 환경이 섞이지 않게 했다.
PWA manifest도 함께 붙었다. manifest는 앱 이름, 짧은 이름, 시작 주소, 스탠드얼론 표시 방식, 테마 색상, 아이콘을 정의한다. service worker는 복잡한 오프라인 캐시를 강제하지 않고, 네비게이션 요청을 네트워크로 넘기는 얇은 형태로 두었다. 서버 문서 편집기는 최신 파일을 직접 다루는 성격이 강하므로, 과한 캐시보다 현재 상태를 정확히 보는 쪽이 더 안전하다.
편집 권한은 편집키로 보호한다. 다만 앱으로 계속 쓰려면 시작 URL에 매번 키가 붙어 있는 것은 좋지 않다. 그래서 한 번 키로 접속하면 브라우저에 편집 허용 쿠키를 저장하고, 이후 PWA의 start_url은 키 없이도 같은 브라우저 프로필 안에서 편집 화면을 열 수 있게 했다. 공개 기사에는 편집키를 드러내지 않는 것이 원칙이다.
전용 설명서 편집기만으로는 한계가 있다. 서버 운영자는 하나의 문서만 고치지 않는다. 오늘은 우분투 설명서를 수정하고, 내일은 테마 소개 페이지를 손보고, 다음에는 게시판 헤더나 CSS를 바꿀 수 있다. 그래서 Ubuntu Guide Editor에는 파일 오프너가 추가됐다.
파일 오프너는 서버 URL, 웹 경로, 서버 파일 경로를 입력받는다. 예를 들어 /ubuntu-server-setup-guide/를 넣으면 내부적으로 /var/www/html/ubuntu-server-setup-guide/index.php를 찾는다. /g5-site02/index.php 같은 웹 경로도 열 수 있고, /var/www/html/g5-site02/theme/netcity_postype/head.php처럼 서버 파일 경로를 직접 입력할 수도 있다.
다만 모든 파일을 무조건 열지는 않는다. 편집 가능 범위는 /var/www/html 아래로 제한했고, 확장자는 php, html, htm, css, js, txt, md, json, xml, svg, inc 등 웹 운영에 필요한 텍스트 파일 중심으로 묶었다. 5MB보다 큰 파일도 안전을 위해 막았다. 서버 전체 파일 시스템을 무제한으로 여는 도구가 아니라, 웹 문서 관리에 필요한 범위만 여는 운영 편집기다.
HTML 문서는 문서 편집 모드로 열리고, PHP나 CSS, JS 파일은 코드 편집 모드로 열린다. 이 구분은 중요하다. PHP 파일은 실행 코드와 HTML이 함께 섞일 수 있으므로 화면 편집만으로 저장하면 위험하다. 반면 순수 HTML 문서는 문서 화면에서 수정하는 편이 더 직관적이다. Ubuntu Guide Editor는 이 차이를 기준으로 기본 탭을 다르게 연다.
저장 전에는 자동 백업도 남긴다. 전용 설명서 편집 백업과 범용 파일 편집 백업을 분리했고, 저장 시점의 파일을 data 안의 백업 폴더에 보관한다. 개인 서버 운영에서는 작은 수정 하나가 곧 장애로 이어질 수 있기 때문에, 백업은 단순한 부가 기능이 아니라 기본 안전장치다.
이 편집기의 의미는 “웹에서 파일을 고친다”보다 넓다. 개인 서버 운영은 점점 더 많은 작은 도구를 필요로 한다. 그누보드 테마, 안내문, 설치 설명서, 뉴스 기사, 내부 메신저, 사진 기록, 스마트폰 서버 상태판처럼 서로 다른 문서가 한 서버 위에 놓인다. 이 문서들이 늘어날수록 운영자는 빠르게 열고, 고치고, 저장하고, 확인하는 흐름을 원한다.
Ubuntu Guide Editor는 그 흐름을 하나의 앱 안에 묶는다. 앱을 실행하고, URL이나 파일 경로를 넣고, 바로 수정한다. 저장 뒤에는 공개 페이지를 새 창으로 확인한다. 전체 과정이 브라우저와 터미널 사이에서 흩어지는 대신, 웹앱 하나 안에서 이어진다. 서버를 관리하는 사람에게는 이 작은 연결성이 시간을 줄여준다.
또한 이 방식은 CMS를 새로 세우지 않아도 된다. 이미 존재하는 정적 HTML, PHP 페이지, 테마 파일을 그대로 대상으로 삼는다. 복잡한 관리자 페이지를 만들기 전에, 현재 서버에 있는 파일을 직접 관리하는 얇은 도구를 얹는 방식이다. 그래서 작은 개인 서버, 실험 서버, 가정용 중계 서버, 스마트폰 서버와도 잘 맞는다.
운영 기준은 명확해야 한다. 첫째, 편집키와 앱 런처 파일은 외부에 공유하지 않는다. 둘째, 공개 기사나 안내문에는 편집키를 적지 않는다. 셋째, PHP 파일을 고칠 때는 코드 편집 모드에서 구조를 확인하고 저장한다. 넷째, 저장 후에는 반드시 공개 페이지를 확인한다. 다섯째, 백업 폴더는 주기적으로 정리하되 최근 작업분은 남겨 둔다.
다음 단계에서는 문서 목록 패널을 붙일 수 있다. 자주 여는 문서, 최근 수정 문서, 테마 파일, 설명서 파일, 뉴스 기사 원고를 묶어 즐겨찾기처럼 제공하면 파일 경로를 매번 입력하지 않아도 된다. 또한 순수 HTML 문서에는 이미지 삽입, 표, 코드 블록, 캡션 편집 같은 도구를 더할 수 있다.
장기적으로는 Ubuntu Guide Editor가 “개인 서버 운영 콘솔”의 문서 편집 모듈이 될 수 있다. 서버 상태, 백업, 게시판, 기사 발행, 문서 편집이 모두 작은 웹앱으로 이어지면, 개인 서버 운영자는 거대한 클라우드 관리 도구 없이도 자기 서버를 자기 손에 맞게 다룰 수 있다.