ShareLaTex 설치 및 사용법


협업형 online real time 에디터이다.
http://www.sharelatex.com/ 에서 무료로 사용이 가능하다.
하지만 여러사람을 invite하거나 속도가 마음에 안든다면, 각 연구실에 개인이 구축할 수도 있다.
Open-Source이기 때문이다.

Github 주소: https://github.com/sharelatex/sharelatex

Docker 기반으로 image가 잘 만들어져 있어서 설치법은 간단하다.

필자는 uBuntu 16.04 LTS 버전에서 수행 했다.

shareLatex 설치 및 실행

sudo apt-get -y install python-pip
sudo pip install docker-compose

git clone https://github.com/sharelatex/sharelatex.git
cd sharelatex
sudo  docker-compose up

실행결과

jaynux@jaynux-desktop:~/ShareLaTex/sharelatex$ sudo docker-compose up
Starting redis ... 
Starting mongo ... 
Starting redis
Starting mongo ... done
Starting sharelatex ... 
Starting sharelatex ... done
Attaching to redis, mongo, sharelatex
redis         | 1:C 21 Nov 05:11:06.228 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis         | 1:C 21 Nov 05:11:06.228 # Redis version=4.0.2, bits=64, commit=00000000, modified=0, pid=1, just started
redis         | 1:C 21 Nov 05:11:06.228 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
redis         | 1:M 21 Nov 05:11:06.229 * Running mode=standalone, port=6379.
...
...
cture: "x64", version: "4.4.0-101-generic" }, platform: "Node.js v6.11.3, LE, mongodb-core: 2.1.9" }
sharelatex    | Nov 21 05:17:01 994814b4c50a /USR/SBIN/CRON[331]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

docker-compose.yml파일을 보면 내부에 port번호가 적혀 있다.
기본적으론 80번이다.

따라서 웹 주소창에 IP주소:Port번호로 입력한다.

아래와 같이 나오면 성공이다.

계정 생성

Admin 계정

원하는 계정 이메일로 생성 후 만들어진 링크로 접속해서 비밀번호를 설정 하면 된다.

docker exec sharelatex /bin/bash -c "cd /var/www/sharelatex; grunt user:create-admin --email joe@example.com"

일반 사용자 계정 생성

web에서 admin 계정으로 접속한 다음 상단의 admin을 누르면
일반 계정을 생성 할 수 있는 창이 나온다.

Latex 업데이트

효율적인 배포를 위해서 sharelatex에는 최소한의 tex package만 설치되어 있다. 약 20개 정도이다.
당연히 5~10GB 정도의 추가적인 package들의 설치가 필요하다.

최신 package들을 사용할려면 업데이트 해야한다.

docker exec sharelatex tlmgr update -self
docker exec sharelatex tlmgr install scheme-full

실행 결과

tlmgr: package repository http://ctan.mirrors.hoobly.com/systems/texlive/tlnet (verified)
tlmgr: saving backups to /usr/local/texlive/2017/tlpkg/backups
[1/1, ??:??/??:??] update: texlive.infra [343k] (45234 -> 45305) ... done
running mktexlsr ...
done running mktexlsr.
tlmgr: package log updated: /usr/local/texlive/2017/texmf-var/web2c/tlmgr.log
jaynux@jaynux-desktop:~$ 
jaynux@jaynux-desktop:~$ sudo docker exec sharelatex tlmgr install scheme-full
tlmgr: package repository http://ctan.mirrors.hoobly.com/systems/texlive/tlnet (verified)
[1/3428, ??:??/??:??] install: 12many [376k]
[2/3428, 00:09/16:24:09] install: 2up [66k]
...
..
[3429/3429, 04:04:00/04:04:00] install: scheme-full [1k]
running mktexlsr ...
done running mktexlsr.
running mtxrun --generate ...
done running mtxrun --generate.
running updmap-sys ...
done running updmap-sys.
...
...
tlmgr: package log updated: /usr/local/texlive/2017/texmf-var/web2c/tlmgr.log

업데이트 전 용량

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
mongo                   latest              d22888af0ce0        2 weeks ago         361MB
redis                   latest              8f2e175b3bd1        2 weeks ago         107MB
sharelatex/sharelatex   latest              bffb5a850d01        2 months ago        2.4GB

jaynux@jaynux-desktop:~/ShareLaTex/sharelatex$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           795M  9.7M  786M   2% /run
/dev/sdb6       102G   10G   87G  11% /
tmpfs           3.9G  176K  3.9G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1       932G  125G  808G  14% /sda1
tmpfs           795M   56K  795M   1% /run/user/1000

업데이트 후 용량

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
mongo                   latest              d22888af0ce0        2 weeks ago         361MB
redis                   latest              8f2e175b3bd1        2 weeks ago         107MB
sharelatex/sharelatex   latest              bffb5a850d01        2 months ago        2.4GB

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           795M  9.7M  786M   2% /run
/dev/sdb6       102G   16G   82G  16% /
tmpfs           3.9G  176K  3.9G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1       932G  125G  808G  14% /sda1
tmpfs           795M   56K  795M   1% /run/user/1000

위와 같이 docker image 용량은 변화가 없지만 HDD 용량은 5GB가량이 늘었다.
결국 latex package 파일들이 docker에 저장된 상태가 아니다.

이 상태에서 .yml파일을 수정하고 docker-compose up을 실행하면 image가 recreating되고 latex file들이 모두 날라간다.
아래와 같은 메시지가 실행되면서..

Recreating sharelatex ... 
Recreating sharelatex ... done

Latex 업데이트후 docker commit

Docker container의 변화가 permanent하지 않기 때문에 restart하면 결과를 잃어 버린다.
왜냐하면 데이터 디렉토리가 containier의 외부에 위치하기 때문이다.
permanent하게 이 변경 사항을 저장하려면 commit을 해야 한다.

current id 파악

sudo docker ps

패키지 업데이트 내용을 반영한 새로운 docker image를 생성한다.

sudo docker commit -m "installing all latex packages" container-ID ImageName

명령어는 아래와 같다.

jaynux@jaynux-desktop:~/ShareLaTex/sharelatex$ sudo docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                NAMES
03a947ea942a        sharelatex/sharelatex   "/sbin/my_init"          7 hours ago         Up 7 hours          0.0.0.0:80->80/tcp   sharelatex
9fe256a837e3        mongo                   "docker-entrypoint.s…"   7 hours ago         Up 7 hours          27017/tcp            mongo
3e0b3a7561b3        redis                   "docker-entrypoint.s…"   7 hours ago         Up 7 hours          6379/tcp             redis

jaynux@jaynux-desktop:~/ShareLaTex/sharelatex$ sudo docker commit -m "installing all latex packages" 03a947ea942a sharelatex/sharelatex:v3
sha256:54065502e1795908ba688f2209edc3c9b38e6706e156fe07865370d3ce335523

jaynux@jaynux-desktop:~/ShareLaTex/sharelatex$ sudo docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
sharelatex/sharelatex   v3                  54065502e179        3 minutes ago       7.5GB
mongo                   latest              d22888af0ce0        2 weeks ago         361MB
redis                   latest              8f2e175b3bd1        2 weeks ago         107MB
sharelatex/sharelatex   latest              bffb5a850d01        2 months ago        2.4GB

위와 같이 정상적으로 commit되서 v3가 생성된 것을 볼 수 있다.

추후에 실행을 위해서 docker-compose.yml에서 image 위치를 변경한다.

version: '2'
services:
    sharelatex:
        restart: always
        image: sharelatex/sharelatex:v3

참고자료: full functionalities 설치 방법

SMTP 설정

메일 설정을 해야 계정 초대 메일이나 디렉토리 공유 메일이 정상적으로 발송된다.

        SHARELATEX_EMAIL_FROM_ADDRESS: "team@sharelatex.com"
        SHARELATEX_EMAIL_SMTP_HOST: smtp.gmail.com
        SHARELATEX_EMAIL_SMTP_PORT: 465
        SHARELATEX_EMAIL_SMTP_SECURE: 'true'
        SHARELATEX_EMAIL_SMTP_USER: 본인 ID
        SHARELATEX_EMAIL_SMTP_PASS: 본인 비밀번호
        SHARELATEX_EMAIL_SMTP_TLS_REJECT_UNAUTH: 'true'
        SHARELATEX_EMAIL_SMTP_IGNORE_TLS: 'false'
        SHARELATEX_CUSTOM_EMAIL_FOOTER: "<div>This system is run by me</div>"

참고자료

도메인 생성을 위한 SSL 설치

공식 사이트에선 nginx를 이용해서 설치를 해야한다고 한다.

sudo apt-get install nginx
nginx -v

nginx는 Apache처럼 웹서버 환경을 만들어주는 소프트웨어이다.
웹 서버란 전체 서버 아키텍처의 앞단에서 HTTP요청에 따라서 그 요청을 넘기고 그에 해당하는 file혹은 리소스를 넘겨주는 역할을 하는 부분입니다.

// 시작
$ sudo service nginx start
$ sudo systemctl start nginx
$ sudo /etc/init.d/nginx start

// 재시작
$ sudo service nginx restart
$ sudo systemctl restart nginx
$ sudo /etc/init.d/nginx restart

// 중지
$ sudo service nginx stop
$ sudo systemctl stop nginx
$ sudo /etc/init.d/nginx stop

// 상태
$ sudo service nginx status
$ sudo systemctl status nginx

// 설정 reload
$ sudo service nginx reload
$ sudo systemctl reload nginx
$ sudo nginx -s reload

// configuration file syntax check
$ sudo nginx -t

해야할 것들

  1. sharelatex port 변경
  2. nginx로 특정 port로 변경된 sharelatex으로 연결되게 하기
  3. SSL 설치해서 nginx로 연동 시키기

참고자료
nginx에 HTTPS/SSL 적용하기

uBuntu에 nginx 설치하기

Proxy에 대하여

우분투, 민트 nginX에 reverse proxy 사용하기


'논문 작성 > LaTex' 카테고리의 다른 글

Latex 줄 번호 삽입  (0) 2016.12.23
TextStudio 문법 검사 기능 사용  (0) 2016.06.29
TexLive 2016 설치법  (0) 2016.06.15
Latex 에 하이퍼링크 추가방법  (0) 2016.05.30
citation 번호 합치기  (0) 2016.04.22

+ Recent posts