[obsidian] vault backup: 2025-08-20 18:47:16
All checks were successful
Build / build (push) Successful in 10m50s

This commit is contained in:
2025-08-20 18:47:16 +09:00
parent 1cc3eafb50
commit e94163fae8
4 changed files with 18 additions and 5 deletions

View File

@@ -3,11 +3,13 @@ date: "2024-02-05T12:26:59+0900"
---
#self-hosted #server #tips
Giteaは最近Actionが使えるようになった。Dockerで別にランナーマシンを立ち上げる必要があるほか、GitHub Actionsと比べると、Concurrencyなどちゃんと効かなかったり色々まだ機能が足りてない所はある。
[[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を使ってなんとかすることにした。
Pagesの機能がないため、別途サーバーを立ち上げてrsyncで同期するくらいしか方法がない。そこそこ設定は面倒くさいが、nginxよりさらに簡易的に動かせるgo製のWebサーバー[[Caddy]]を使ってなんとかすることにした。
[[Cloudflare Pages]]でいいならそっちの方がBranch Previewもできるので多分圧倒的に楽。
## 下準備
@@ -20,7 +22,6 @@ ssh-keygen -t ed25519
ファイル名は`rsync_webserver``rsync_webserver.pub`とかにしておく
## Caddyサーバー側の構成
[tomoyanonymous/Caddy\_rsync\_webserver - Caddy\_rsync\_webserver - Tomoya Matsuura Gitea](https://git.matsuuratomoya.com/tomoyanonymous/Caddy_rsync_webserver)
@@ -120,7 +121,10 @@ Action RunnerつきでGiteaを立ち上げるところまでは省略。
- WEBSERVER_PORT Caddyが立ち上がっているサーバーのSSH用ポート、上の例では25222
- WEBSERVER_USER rootこれあんまり良くないのかな
で、リポジトリに`/.gitea/workflows/ci.yaml`を作る。[Gitea Actionsの`ubuntu-latest`ラベルのランナーはデフォルトでDebianベースの`node:16-bullseye`のDockerイメージのエイリアス](https://docs.gitea.com/usage/actions/act-runner#labels)でこれまじでややこしい、QuartzはNode18以降でないと動かない。またGoも入ってないので入れる。
で、リポジトリに`/.gitea/workflows/ci.yaml`を作る。[Gitea Actionsの`ubuntu-latest`ラベルのランナーはデフォルトでDebianベースの`node:16-bullseye`のDockerイメージのエイリアス](https://docs.gitea.com/usage/actions/act-runner#labels)でこれまじでややこしい、QuartzはNode18以降でないと動かない。
GIteaの難点として、Github Actionsではデフォルトで使える`hashFiles()`関数が使えない。代わりに、`go-hashfiles`というアクションを使う必要がある。QuartzはGo非依存になったのだが、これがあるのでビルド側でもまだgoをインストールする必要がある。
```yml
name: Build