서버에 설치하는 기준이다. 개인PC에 설치하는거면 SW설치방식만 결정하면 되겠다.
도메인 : 돈을 쓰기 싫으면 무료 도메인도 있다.
서버 : 여러 OS에 설치할 수 있지만, 보통 리눅스를 추천한다.
SW : 개별 소프트웨어를 직접 설치할 수 있지만, 보통 도커방식을 추천한다. 도커 방식의 단점은 직접 파일에 접근해서 뭔가를 하는 것이 불편하다는 것인데, 그런 일이 자주 있을지 잘 모르겠고 그런 일이 자주 있다면 그때가서 직접 설치를 하던가 아니면 자주 접근하는 폴더를 새로 바인딩하면 되지 않을까 생각한다.
포트개방 : http, https를 위한 89, 443 포트. ssh사용을 위한 22 포트.
SSL 인증서 : 유료와 무료중에 많은 선택지가 있지만 무료인 Let’s Encrypt를 traefik으로 사용하는 것을 추천한다. traefik을 사용하면 한번 설정으로 기간이 자동연장되기 때문에 유료보다도 편하고 리버스 프록시 서버의 기능도 손쉽게 수행해준다.
[https://wiki.vaxiil.com]으로 접속한다.
첫 접속 시 관리자 이메일, 비밀번호, 사이트 URL(https://wiki.vaxiil.com)을 입력하는 설정 화면이 나온다. 맞게 입력한다.
로그인하면 처음에 "Create homepage"와 "Administration"이 나온다. Create homepage는 대문 페이지를 작성하는 화면으로 이동하는 것이고 Administration 관리자 설정 화면으로 이동하는 것이다. 일단은 관리자 설정에서 언어부터 설정하는게 좋다.
관리자 설정의 언어 메뉴로 간다. 처음에는 영어만 설치되어 있다. 영어만 쓸거면 더이상 설정한 것은 없다. 한국어만 쓸것이라면 오른쪽에서 한국어를 다운로드 후에 사이트언어를 한국어로 선택한다. 다국어를 쓸거면 다국어지원을 활성화하고 메인으로 쓸 언어를 사이트언어로 선택한다.
Create homepage가 계속 뜰 것이므로 대문페이지부터 작성해보자. 글 작성시에는 제목과 내용뿐 아니라 로케일과 경로를 설정해야 한다. 로케일은 한국어는 kr, 영어는 en이다. 사이트언어로 설정된 언어가 기본으로 뜨고 변경할 수 있다. 경로는 폴더구조+파일이라고 생각하면 된다. 실제로 트리구조에서 폴더는 없고 문서가 폴더 역할을 한다. 나중에 로케일과 경로가 합쳐져 글의 주소가 된다. 개인위키로 대충 쓸거면 크게 신경쓰지 않아도 된다.
에디터는 마크다운을 전혀 모른다면 비주얼 에디터를 쓰고 마크다운을 조금이라도 안다면 마크다운을 쓰는게 좋다.
기본적으로 다른 사람의 권한은 막혀 있어 글읽기만 가능하다. 설정이나 그룹 권한 부여를 통해 다른 사람이 글을 쓸수 있도록 설정할 수 있다.
이 정도만 알면 글쓰기를 할 수 있고 나머지는 차차 배우도록 하자.
검색에 관한 별도의 설정 변경 없이 검색을 해보면 한글은 뭘 입력하든지 간에 두글자 이상 입력해야 한다고 나오고 영어는 단어를 정확히 입력해도 일치하는 결과가 없다고 나온다.
이때는 관리자설정의 검섹엔진 메뉴로 들어간다. 기본값으로 Database - Basic이 선택되어 있는데 이것을 Database - PostgreSQL로 변경후, 오른쪽 구성항목에서 Dictionary language를 simple로 변경한다. 이후 적용 버튼, 구성 새로 고침 버튼을 차례로 누른다. 이후에 검색하면 제대로 검색된다.
Wiki.js에서 외부 링크를 새 창으로 여는 방법은 크게 3가지가 있습니다. 전체 설정을 통해 한 번에 적용하거나, 특정 링크에만 적용하거나, 자바스크립트를 이용해 더 확실하게 처리하는 방법입니다.
Wiki.js 2.2 버전 이상부터는 관리자 설정에서 모든 외부 링크를 새 창으로 열도록 설정할 수 있는 옵션을 제공합니다.
특정 링크만 새 창으로 열고 싶을 때는 마크다운 문법 뒤에 속성을 추가할 수 있습니다. Wiki.js는 속성 확장을 지원하므로 아래와 같이 작성하면 됩니다.
[네이버로 이동](https://www.naver.com){target=_blank}
{target=_blank}를 링크 바로 뒤에 붙여주면 해당 링크만 새 창으로 열립니다.전역 설정을 켰음에도 불구하고 일부 내비게이션 링크나 동적으로 생성된 링크가 새 창으로 열리지 않는 경우, 아래 스크립트를 사용하여 강제로 적용할 수 있습니다.
<script>
document.addEventListener("DOMContentLoaded", function() {
// 페이지 내 모든 링크를 감시하여 외부 링크인 경우 target="_blank" 추가
const observer = new MutationObserver(() => {
const links = document.querySelectorAll('a');
const currentDomain = window.location.hostname;
links.forEach(link => {
try {
const linkHost = new URL(link.href).hostname;
// 현재 도메인과 다르고, 빈 링크가 아닌 경우 처리
if (linkHost !== currentDomain && link.hostname !== "") {
link.setAttribute('target', '_blank');
link.setAttribute('rel', 'noopener noreferrer');
}
} catch (e) {
// 유효하지 않은 URL 형식은 무시
}
});
});
// 문서 전체에서 변화가 생길 때마다 실행 (동적 콘텐츠 대응)
observer.observe(document.body, { childList: true, subtree: true });
});
</script>
이 방법의 장점:
rel="noopener noreferrer" 속성도 함께 추가합니다.원하시는 범위에 맞춰 위 방법 중 하나를 선택해 사용해 보세요!