[obsidian] vault backup: 2024-02-05 12:49:01
All checks were successful
Build / build (push) Successful in 4m27s
All checks were successful
Build / build (push) Successful in 4m27s
This commit is contained in:
@ -1,7 +1,12 @@
|
||||
#self-hosted #server
|
||||
|
||||
|
||||
[Serving static files using Caddy](https://thedevelopercafe.com/articles/serving-static-files-using-caddy-8513e8f36e46)
|
||||
|
||||
Giteaは最近Actionが使えるようになった。Dockerで別にランナーマシンを立ち上げる必要があるほか、GitHub Actionsと比べると、Concurrencyなどちゃんと効かなかったり色々まだ機能が足りてない所はある。
|
||||
|
||||
ただ、公開されてるGithubs Actionはそのままuseできるのが強い。`actions/cache@v3`の代わりに`https://github.com/actions/cache@v3`のようにURLで指定できる。よく使うアクションはgitea側にもミラーされていることもあるが、なんか放置されてるやつも多々あるので注意。
|
||||
|
||||
Pagesの機能がないため、別途サーバーを立ち上げてrsyncで同期するくらいしか方法がない。そこそこ設定は面倒くさいが、nginxよりさらに簡易的に動かせるgo製のWebサーバーCaddyを使ってなんとかすることにした。
|
||||
|
||||
## 下準備
|
||||
|
||||
@ -17,8 +22,6 @@ ssh-keygen -t ed25519
|
||||
|
||||
## Caddyサーバー側の構成
|
||||
|
||||
Caddyのイメージはそのまま使う
|
||||
|
||||
### フォルダ構成
|
||||
```sh
|
||||
Dockerfile
|
||||
@ -28,7 +31,7 @@ docs/ #空フォルダ
|
||||
rsync_webserver.pub #鍵をコピーしておく
|
||||
```
|
||||
|
||||
+もう一つrsyncでファイルを受け取る用のDockerイメージを作る
|
||||
rsyncでファイルを受け取る用のDockerイメージを作る
|
||||
|
||||
```Dockerfile
|
||||
FROM ubuntu:latest
|
||||
@ -58,7 +61,7 @@ CMD ["/usr/sbin/sshd", "-D"]
|
||||
|
||||
`~/.ssh/authorized_keys`と`~/.ssh`のパーミッションを間違えるとssh接続できないので注意
|
||||
|
||||
`docker-compose.yml`でCaddyとの連携設定。共通のボリュームでhtmlを管理するが、今回はそのフォルダを`docs`という名前で作った
|
||||
`docker-compose.yml`でCaddyとの連携設定。共通のボリュームでhtmlを管理するが、今回はそのフォルダを`docs`という名前で作った。Caddyのイメージはそのまま使う。
|
||||
|
||||
```yml
|
||||
version: '3'
|
||||
@ -79,7 +82,7 @@ services:
|
||||
- "8080:80"
|
||||
```
|
||||
|
||||
Caddyファイルは最小限。404の設定とかしてない。quartzでは`/記事名.html`に`example.com/記事名`でアクセスする必要があるので`try_files`の行が必要。
|
||||
Caddyファイルは最小限。まだ404の設定とかしてない。
|
||||
|
||||
```Caddyfile
|
||||
:80 {
|
||||
@ -89,6 +92,8 @@ Caddyファイルは最小限。404の設定とかしてない。quartzでは`/
|
||||
}
|
||||
```
|
||||
|
||||
この辺参考。[Serving static files using Caddy](https://thedevelopercafe.com/articles/serving-static-files-using-caddy-8513e8f36e46)。Quartzでは`/記事名.html`に`example.com/記事名`でアクセスする必要があるので`try_files`の行が必要。
|
||||
|
||||
`docs`内に適当な`index.html`を置いて`docker-compose build`、`docker-compose up -d`で立ち上げ、`DockerホストのIP:8080`で繋ぐとアクセスできる。
|
||||
|
||||
これをそのまま[[Cloudflare Tunnel]]で公開している。
|
||||
@ -109,7 +114,7 @@ Action RunnerつきでGiteaを立ち上げるところまでは省略。
|
||||
- WEBSERVER_PORT (Caddyが立ち上がっているサーバーのSSH用ポート、上の例では25222)
|
||||
- WEBSERVER_USER :root(これあんまり良くないのかな)
|
||||
|
||||
で、リポジトリに`/.gitea/workflows/ci.yaml`を作る。
|
||||
で、リポジトリに`/.gitea/workflows/ci.yaml`を作る。Gitea ActionsではnodeもGoも標準では入っていない(ubuntuのDockerイメージそのまんま?)ので、それもActionでセットアップする。
|
||||
|
||||
```yml
|
||||
name: Build
|
||||
@ -158,6 +163,8 @@ jobs:
|
||||
rsync -avz --delete -e "ssh -i /tmp/act_runner_key -o StrictHostKeyChecking=no -p ${{ vars.WEBSERVER_PORT }}" ${{ gitea.workspace }}/public/* ${{ vars.WEBSERVER_USER }}@${{ vars.WEBSERVER_HOST }}:/var/www/html
|
||||
```
|
||||
|
||||
できてますねえ!
|
||||
|
||||
![[img/gitea_action_ss.png]]
|
||||
|
||||
Branch Previewが手軽にできればいいんだけどなあ
|
Reference in New Issue
Block a user