GitHub Actions를 사용하여 Raspberry Pi에 웹 페이지 배포
7942 단어 devopsraspberrypigithub
시작하기 전에
동적 IP 주소가 있는 경우 동적 DNS를 설정해야 합니다. 그렇지 않으면 대상 IP 주소가 변경될 때마다 대상 IP 주소를 변경해야 합니다(매월, 매주 또는 매일 발생할 수 있음). 라우터 모델에 따라 프로세스가 다르기 때문에 여기서는 다루지 않습니다. 하지만 좋은 무료 동적 DNS 서비스를 원하신다면 제가 현재 사용하고 있는 duckdns.org에 사용(및 기부!)하는 것을 고려해보세요.
RPi 준비
이 경우 준비는 매우 간단합니다. 다음을 사용하여 NGINX를 설치하기만 하면 됩니다.
apt install nginx
그런 다음 시작합니다.
systemctl enable nginx
systemctl start nginx
포트 포워딩
RPi의 포트 80을 외부 포트 80으로 포트 포워딩합니다. 이제 브라우저에서 IP에 액세스하면 다음 화면이 나타납니다.
또한 RPi의 포트 22를 22가 아닌 다른 포트로 포트 포워딩합니다. 기본 SSH 포트이므로 보안상의 이유로 노출하지 않는 것이 좋습니다.
액션 만들기
appleboy/scp-action 때문에 매우 간단한 단계입니다. 작업에는 Raspberry Pi 빌드 및 푸싱의 두 단계로 구성된 작업이 하나만 있습니다.
건물
여기에는 비밀이 없습니다. 이것은 빌드 단계입니다.
name: deploy
on:
push:
branches:
- main
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "14"
- name: "Install & build"
run: |
npm i
npm run build
mv public/index.html public/index.nginx-debian.html
여기서 알아야 할 유일한 것은 index.html
가 index.nginx-debian.html
로 이름이 바뀌는 마지막 줄입니다. 이는 Debian에서 NGINX가 /var/www/html/index.nginx-debian.html
를 사용하기 때문에 수행됩니다. 다른 배포판은 다른 디렉터리 및 인덱스 이름 지정을 사용할 수 있습니다.
미는
최근에 빌드한 아티팩트를 Raspberry Pi에 푸시하려면 appleboy/scp-action 을 사용합니다. 올바르게 설정하려면 GitHub 리포지토리에 다음 비밀을 추가합니다.
이 경우 준비는 매우 간단합니다. 다음을 사용하여 NGINX를 설치하기만 하면 됩니다.
apt install nginx
그런 다음 시작합니다.
systemctl enable nginx
systemctl start nginx
포트 포워딩
RPi의 포트 80을 외부 포트 80으로 포트 포워딩합니다. 이제 브라우저에서 IP에 액세스하면 다음 화면이 나타납니다.
또한 RPi의 포트 22를 22가 아닌 다른 포트로 포트 포워딩합니다. 기본 SSH 포트이므로 보안상의 이유로 노출하지 않는 것이 좋습니다.
액션 만들기
appleboy/scp-action 때문에 매우 간단한 단계입니다. 작업에는 Raspberry Pi 빌드 및 푸싱의 두 단계로 구성된 작업이 하나만 있습니다.
건물
여기에는 비밀이 없습니다. 이것은 빌드 단계입니다.
name: deploy
on:
push:
branches:
- main
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "14"
- name: "Install & build"
run: |
npm i
npm run build
mv public/index.html public/index.nginx-debian.html
여기서 알아야 할 유일한 것은 index.html
가 index.nginx-debian.html
로 이름이 바뀌는 마지막 줄입니다. 이는 Debian에서 NGINX가 /var/www/html/index.nginx-debian.html
를 사용하기 때문에 수행됩니다. 다른 배포판은 다른 디렉터리 및 인덱스 이름 지정을 사용할 수 있습니다.
미는
최근에 빌드한 아티팩트를 Raspberry Pi에 푸시하려면 appleboy/scp-action 을 사용합니다. 올바르게 설정하려면 GitHub 리포지토리에 다음 비밀을 추가합니다.
name: deploy
on:
push:
branches:
- main
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "14"
- name: "Install & build"
run: |
npm i
npm run build
mv public/index.html public/index.nginx-debian.html
SSH_HOST: RPi의 IP/URL;
SSH_PORT: Port Forwarding 섹션에서 전달된 RPi에서 사용하는 SSH 포트입니다.
SSH_USERNAME: SCP에 대한 RPi 사용자 이름입니다. 파일이
/var/www/html
에 복사되기 때문에 이 사용자는 루트 권한이 있어야 하며 가급적이면 암호를 묻지 않는 것이 좋습니다. SSH_KEY: SSH 개인 키로
ssh-keygen
또는 online generator 을 사용하여 생성합니다. 모든 것이 생성되면 SSH 공개 키를
~/.ssh/authorized_keys
에 추가합니다. 이제 "푸시"단계를 만들 차례입니다. - name: "Push to server"
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.SSH_PORT }}
source: "public/"
strip_components: 1
target: "/var/www/html"
strip_components: 1
외에는 새로운 것이 없어야 합니다. 이것설정은 지정된 수의 선행 경로 요소를 제거합니다. 이 요소가 없으면 콘텐츠를
/var/www/html/public
대신 /var/www/html
로 푸시합니다.끝
이제 자동으로 빌드하고 Raspberry Pi에 푸시하는 완전히 작동하는 GitHub 작업이 있어야 합니다. 더 이상 단일 라인을 변경하거나 RPi 내부에서 실행
npm run build
하기 위한 SCP'ing이 없습니다. 여기에서 내 웹 사이트의 저장소를 볼 수 있습니다.hnrq / vlrn 웹사이트
벨로렌 서버 랜딩 페이지
Psst — 보다 완벽한 솔루션을 찾고 계십니까? 아름다운 개발 경험과 유연한 파일 시스템 기반 라우팅을 통해 모든 규모의 웹 애플리케이션을 구축하기 위한 공식 프레임워크인 SvelteKit을 확인하십시오.
대신 공유 가능한 구성 요소 템플릿을 찾고 계십니까? 당신은 할 수 있습니다 use SvelteKit for that as well 또는 이전 sveltejs/component-template
날렵한 앱
Svelte 앱용 프로젝트 템플릿입니다. 그것은 https://github.com/sveltejs/template에 살고 있습니다.
degit을 사용하여 이 템플릿을 기반으로 새 프로젝트를 만들려면 다음을 수행합니다.
npx degit sveltejs/template svelte-app
cd svelte-app
Node.js이 설치되어 있어야 합니다.
시작하다
종속성 설치...
cd svelte-app
npm install
...그런 다음 시작Rollup:
npm run dev
localhost:8080 으로 이동합니다. 앱이 실행되는 것을 볼 수 있습니다. src
에서 구성 요소 파일을 편집하고 저장한 다음 페이지를 다시 로드하여 변경 사항을 확인하십시오.
기본적으로 서버는 localhost의 요청에만 응답합니다. 다음에서 연결을 허용하려면…
View on GitHub
Reference
이 문제에 관하여(GitHub Actions를 사용하여 Raspberry Pi에 웹 페이지 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/hnrq/using-github-actions-to-deploy-a-web-page-to-raspberry-pi-46bi
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(GitHub Actions를 사용하여 Raspberry Pi에 웹 페이지 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hnrq/using-github-actions-to-deploy-a-web-page-to-raspberry-pi-46bi텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)