Plume Installation

ติดตั้ง Plume แบบง่ายสุดๆ

ในเอกสารของ Plume มีวิธีการติดตั้งด้วย docker โดยใช้ docker-compose แต่เนื่องจาก server ที่บ้านมีการใช้ database PostgreSQL อยู่แล้วกับ web อื่นจึงทำตาม document นั้นตรงๆ ไม่ได้ เลยดัดแปลงให้ run Plume docker โดยใช้ร่วมกับ PostgreSQL docker ที่ run ไว้อยู่ก่อน

หากใครยังไม่เคยมี database ก็สามารถ run ได้ด้วยคำสั่งนี้ (จริงๆ หากใครยังไม่มี PostgreSQL run อยู่ก่อนก็ติดตั้งด้วย docker-compose ไปเลยก็ได้ครับ ง่ายดี ข้ามขั้นตอนที่เหลือทั้งหมดไปเลย)

$ sudo mkdir -p /data/postgres
$ docker run -d --restart=always --name=postgres \
    -v /data/postgres:/var/lib/postgresql/data \
    -e POSTGRES_PASSWORD=postgres \
    postgres:alpine

จากนั้นก็สร้าง database บน PostgreSQL

$ docker exec -it -u postgres:postgres postgres /bin/sh -l
d55fc13577c8:/$ createuser plume -dP
d55fc13577c8:/$ createdb plume \
    -E utf-8 \
    --locale=th_TH.utf8 \
    --template=template0 \
    -O plume
d55fc13577c8:/$ exit

สร้าง environment file เก็บไว้ที่ /data/plume/env

$ sudo mkdir -p /data/plume
$ cat << EOF | sudo tee /data/plume/env
BASE_URL=YOUR_DOMAIN  # แก้ให้เป็น domain ที่จะใช้

# สั่งคำสั่ง openssl rand -base64 32 แล้วเอาค่าที่ได้มาใส่ข้างล่าง
ROCKET_SECRET_KEY="ตัวอักษร random ที่ได้มาจากคำสั่งข้างบน"

# ตั้งค่า mail server
MAIL_SERVER=YOUR_SMTP_SERVER
MAIL_USER=YOUR_SMTP_USER
MAIL_PASSWORD=YOUR_SMTP_PASSWORD
MAIL_HELO_NAME=YOUR_SMTP_DOMAIN

# ตั้งค่า database user และ password ให้ตรงกับที่สร้างไว้
DATABASE_URL=postgres://plume:[email protected]:5432/plume
MIGRATION_DIRECTORY=migrations/postgres
USE_HTTPS=1
ROCKET_ADDRESS=0.0.0.0
ROCKET_PORT=7878
EOF

สุดท้ายก็ติดตั้ง Plume

$ mkdir -p /data/plume/static/media
$ mkdir -p /data/plume/search_index
$ docker pull docker.io/plumeorg/plume:v0.3.0
$ docker run --rm -it \
    --link=postgres \
    -v /data/plume/static/media:/app/static/media \
    -v /data/plume/env:/app/.env \
    -v /data/plume/search_index:/app/search_index \
    docker.io/plumeorg/plume:v0.3.0 \
    /bin/bash -l
[email protected]:/app# diesel database setup
[email protected]:/app# plm instance new
[email protected]:/app# plm users new --admin
[email protected]:/app# plm search init --force
[email protected]:/app# exit
$ docker run -d --restart=always --name=plume \
    --link=postgres \
    -v /data/plume/static/media:/app/static/media \
    -v /data/plume/env:/app/.env \
    -v /data/plume/search_index:/app/search_index \
    -p 7878:7878 \
    docker.io/plumeorg/plume:v0.3.0

เสร็จแล้วจะได้ plume run อยู่ที่ port 7878 ครับ