วันนี้จะพามาลองติดตั้ง backstage.io ตามคู่มือที่เขาให้ไว้ดูว่ามีติดขัดตรงในเมื่อลองทำจริงบ้าง
เริ่มตั้งแต่หน้านี้เลย https://backstage.io/docs/getting-started/
ที่นี่เขาให้รันคำสั่งเดียวครับ npx @backstage/create-app ซึ่งมีคำแนะนำว่า ก่อนอื่นเราควรมี node version manager สักตัว โดยผมใช้ n ติดตั้งง่ายๆดังนี้
npm install -g n
ผมเลือกใช้ node เวอร์ชันล่าสุด ก็สั่งว่า
sudo n latest
จากนั้นผมก็ up คำสั่ง yarn ด้วย
npm install -g yarn
จากนั้นผมจึงค่อยมาเริ่มตามคู่มือ
npx @backstage/create-app
ตอนที่รันคำสั่งนี้ก็นั่งทำสมาธินิดนึง จนกว่ามันจะให้เราตั้งชื่อ project เราก็ตั้งอะไรไปก็ได้ มันจะสร้าง directory ให้เราตามชื่อนั้น เช่น mybackstage
และให้เลือก database ที่ต้องการใช้ ซึ่ง default มีแค่ sqlite กับ prostgres
เมื่อเสร็จแล้วมันจะขึ้นข้อความแบบนี้
All set! Now you might want to:
Run the app: cd mybackstage && yarn dev
Set up the software catalog: https://backstage.io/docs/features/software-catalog/configuration
Add authentication: https://backstage.io/docs/auth/
เราลองรันดูก็ได้ครับ คำสั่งนี้
cd mybackstage && yarn dev
มันจะเริ่มต้นรัน backstage ในโหมด dev ซึ่งถ้าเราเลือก sqlite มา มันจะลบทิ้งแล้วสร้างใหม่ให้เสมอ ข้อมูลจะถูก reset เป็น default ทุกครั้งที่รันใหม่
ถ้าต้องการหยุดมันก็ ctrl+c หรือ command+c ธรรมดาได้เลย
ตอนนี้เราจะอยู่ใน directory ของโปรเจคเรานะครับคือใน mybackstage
ทีนี้ เวลาที่เราจะ deploy เจ้า backstage มันอาจจะต้องมีพวกค่า config ต่างๆ ผมเลยใช้วิธีสร้างไฟล์ .env ไว้ในเครื่อง แล้วเอา .env ไปใส่ใน .gitignore อีกที เพื่อที่มันจะได้ไม่เข้าไปอยู่ใน repo
โดยเนื้อไฟล์จะมีหน้าตาประมาณนี้
POSTGRES_NAME=some-postgres
GITHUB_TOKEN=xxx
AUTH_GITHUB_CLIENT_SECRET=xxx
POSTGRES_HOST=db
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POSTGRES_PASSWORD=mysecretpassword
ค่า GITHUB_TOKEN คือ personal access token ไปสร้างที่เมนูตามรูป เอาไว้เวลาที่เราสร้าง project ใน backstage มันจะไปสร้าง repo ไว้ใน account นี้
ค่า AUTH_GITHUB_CLIENT_SECRET คือค่า Oauth ใน github เช่นกัน เอาไว้ให้มันเข้ามาส่องดู Github Actions ของเราได้ในหน้า CI/CD
เมื่อเรารันมันได้แล้ว เราก็จะมาลอง deploy ด้วย Docker กันตามคู่มือหน้านี้
https://backstage.io/docs/deployment/docker
คู่มือบอกให้รัน 3 คำสั่งเพื่อ build
yarn install --frozen-lockfile
yarn tsc
yarn build
และเราไม่ต้องสร้าง Dockerfile เอง เพราะมันสร้างให้เราไว้แล้ว เราแค่รับคำสั่ง
docker image build . -f packages/backend/Dockerfile --tag backstage
เพื่อสร้าง image แล้วตั้งชื่อว่า backstage ไว้
ตอนที่รัน ผมใช้ postgres จาก docker ง่ายด้วยคำสั่งนี้เลย
docker run --name some-postgres -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword -d postgres
เพราะฉะนั้นตอนที่รัน docker ของ backstage จึงต้องมี link ไปเชื่อม network กันด้วย ตามนี้
docker run -it -p 7000:7000 --env-file ./.env --link some-postgres:db --name backstage backstage
สั่งเกตุว่าชื่อ some-postgres มันจะสร้าง alias ชื่อ db ให้ใน network ซึ่งจะเชื่อมโยงกับค่า env ค่า POSTGRES_HOST=db เพื่อให้มันเห็นกันได้ด้วยชื่อ db
เพียงแค่นี้ ก็สามารถ deploy backstage ง่ายๆได้แล้วครับ
Top comments (0)