
---
[English](README.md) · [العربية](README.ar.md) · [中文](README.zh.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Italiano](README.it.md) · **日本語** · [Português (Brasil)](README.pt-BR.md) · [Русский](README.ru.md) · [Español](README.es.md) · [Türkçe](README.tr.md)
[](LICENSE)
[](https://hub.docker.com/r/omnirise/linkbreeze)
[](https://linkbreeze.omnirise.dev/)
[](https://omnirise.dev)
[](https://www.youtube.com/watch?v=_Ipf-_1B4BY)
[](https://github.com/OmniRise/LinkBreeze/actions/workflows/ci.yml)
[](https://github.com/OmniRise/LinkBreeze/releases/latest)
[](https://discord.gg/bAJMW3bAJa)
---
> **Linktreeに月額$15を払うのはもうやめましょう。** LinkBreezeは無料のセルフホスト型リンクハブです。高速、カスタマイズ自由、アナリティクス内蔵。**コマンド1つでインストールできます。**
[**🔗 ライブデモ**](https://linkbreeze-demo.omnirise.dev/linkbreeze) ·
[**🔐 デモダッシュボード**](https://linkbreeze-demo.omnirise.dev/dashboard)
---
## ✨ 機能
🔗 マルチページ対応 ページ数は無制限。ページごとにスラッグ、テーマ、リンク、アナリティクスを個別に設定 |
🎨 テーマ + カスタマイザー 11種類のプリセットに加え、トークンベースの本格カスタマイザー(インポート/エクスポート対応) |
📊 プライバシー重視のアナリティクス 閲覧数、クリック数、リファラー、デバイスを計測。Cookie不使用、IPはハッシュ化、自動削除 |
🧭 移行ウィザード Linktree、Bento、Hopp.bio、LittleLinkまたは任意のHTML/JSONエクスポートからインポート |
🔒 セルフホスト データもサーバーも自分のものに。トラッカーなし、広告なし、サブスクリプションなし |
🐳 ワンコマンドインストール curlコマンド1つ。DockerかPodmanを自動判定してすぐに公開 |
📱 埋め込みウィジェット YouTube、Spotify、SoundCloud、Vimeo、Bandcampをページに埋め込み |
🎯 QRコード 自動生成、色のカスタマイズ、中央にアバターまたはファビコン、SVG/PNGで最大1024px |
🌐 カスタムドメイン 自分のドメインをページに紐付け - 訪問者はjane.comに直接到着、/slugは不要 |
⏰ 定期バックアップ 日次/週次/月次のアプリ内バックアップ。ワンクリック復元、cron不要 |
⚡ **クライアントサイドJavaScriptはゼロ。300ms未満で読み込み完了。純粋なサーバーレンダリングHTML。**
✨ 全機能
- **🔗 リンク管理** - 無制限のリンクをドラッグ&ドロップで追加、並べ替え、カスタマイズ
- **🌐 自動ファビコンリンク** - リンク先サイトのファビコンを自動表示。アイコンのアップロードは不要
- **🖼️ リンクサムネイル** - リンクに画像を追加して視覚的なプレビューカードに
- **⏰ リンクの公開予約** - 日時指定でリンクの表示/非表示を自動切り替え
- **🏷️ カスタムリダイレクトスラッグ** - 削除して再作成してもリンク切れにならない、安定した共有向け`/go/your-name`ショートリンク
- **🧪 A/Bテスト** - リンクのトラフィックを2つの行き先に分割。訪問者ごとに固定された割り当て、バリアント別の分析、リフト率、ワンクリックで勝ちバリアントを確定 ([ガイド](docs/ab-testing.md))
- **📈 外部アナリティクス** - Plausible、Umami、Matomo、Google Analyticsを貼り付け1つで注入
- **🖼️ ソーシャルプレビュー(OG)画像** - ページのテーマから自動レンダリングされるシェアカード。フィット、位置、ズームを制御してオリジナル画像をアップロードすることも可能
- **✏️ カスタムCSS** - 生CSSの注入でページを微調整
- **📧 メールアドレス収集** - 公開ページで購読者のメールアドレスを収集、CSVエクスポート対応
- **🔔 アップデート通知** - 新バージョンがあるとダッシュボードにバナーを表示。外部への通信なし、自動更新なし
- **🔑 高速な管理パネル** - 上記のすべてを1つのクリーンで即時応答のダッシュボードから操作
- **🌐 カスタムドメイン** - 自分のドメインをページに紐付け。排他/ハブのスコープ選択、正規リダイレクトの自動化、厳格な管理ホストロック
- **⏰ 定期バックアップ** - 保持期間管理とワンクリック復元付きの日次/週次/月次アプリ内バックアップ。cron不要
## 🚀 クイックスタート
**コマンド1つ。設定ゼロ。30秒で公開:**
```bash
curl -fsSL https://linkbreeze.omnirise.dev/install.sh | bash
```
スクリプトがDockerかPodmanを自動判定し、イメージを取得してコンテナを起動します。`sudo bash`で実行して**y**と答えると、起動時の自動起動も有効になります。
次に **http://localhost:3000** を開きます - セットアップウィザードは30秒かかりません。
🔍 実行前にスクリプトの中身を確認したい方へ
```bash
curl -fsSL https://linkbreeze.omnirise.dev/install.sh -o install.sh
less install.sh
bash install.sh
```
**別の方法がお好みですか?** 下から展開してください。
🐳 Docker
Node.jsもnpmも設定ファイルも不要。マルチアーキイメージ:`linux/amd64`と`linux/arm64`(Raspberry Pi 3/4/5、Apple Silicon、ARM VPS)。
**Linux / macOS / Windows CMD:**
```bash
docker run -d --name linkbreeze --restart unless-stopped -p 3000:3000 -v linkbreeze-data:/app/data docker.io/omnirise/linkbreeze:latest
```
**Windows PowerShell** - 改行にはバッククォートを使用:
```powershell
docker run -d `
--name linkbreeze `
--restart unless-stopped `
-p 3000:3000 `
-v linkbreeze-data:/app/data `
docker.io/omnirise/linkbreeze:latest
```
> データベースのマイグレーションはコンテナ起動時に自動で実行されます。
🧩 Docker Compose
`docker-compose.yml`を作成します:
```yaml
services:
linkbreeze:
image: docker.io/omnirise/linkbreeze:latest
ports:
- "3000:3000"
volumes:
- linkbreeze-data:/app/data
restart: unless-stopped
volumes:
linkbreeze-data:
```
```bash
docker compose up -d
```
アップグレード:`docker compose pull && docker compose up -d` · ログ:`docker compose logs -f linkbreeze`
ソースからビルドしたい場合:`git clone https://github.com/OmniRise/LinkBreeze.git && cd LinkBreeze && docker compose up -d --build`
☁️ Coolify
1. **+ New Resource** → **Docker Compose Empty**
2. 上のセクションのcomposeファイルを貼り付け
3. ドメインを設定(例:`links.yourdomain.com`) - Let's EncryptはCoolifyが自動処理します
4. **Deploy**をクリック
📦 Synology NAS
Container Manager(DSM 7.2以降):
1. イメージ`docker.io/omnirise/linkbreeze:latest`をプル(見つからない場合は**イメージ** → **追加**)
2. コンテナを**作成**:名前`linkbreeze`、ポート`3000 → 3000`、ボリューム`/docker/linkbreeze/data → /app/data`、再起動ポリシー`Unless stopped`
3. **完了**をクリック - `http://:3000`で公開されます
データはボリュームに保存され、イメージ更新後も維持されます。
🔧 Podman
```bash
podman run -d --name linkbreeze --restart unless-stopped -p 3000:3000 -v linkbreeze-data:/app/data docker.io/omnirise/linkbreeze:latest
```
ボリュームで権限エラーが出ますか?先に`podman volume create linkbreeze-data`を実行してください。冒頭のインストールスクリプトはPodmanを自動判定します。
🖥️ Portainer
1. **Stacks** → **Add stack**で`linkbreeze`という名前を作成
2. 上のDocker Composeセクションのcomposeファイルを貼り付け
3. **Deploy the stack**をクリック
アップデート:**Stacks** → `linkbreeze` → **Editor** → **Pull and redeploy**。
🔨 手動インストール(Dockerなし)
Node.js 18以降が必要です。
```bash
git clone https://github.com/OmniRise/LinkBreeze.git
cd LinkBreeze
npm install
cp .env.example .env
# Edit .env to set your SECRET_KEY and DATABASE_PATH if needed
npm run db:migrate
npm run dev
```
本番環境:`npm run build && npm start`
🌍 独自ドメインで公開する
デプロイが完了すると、ページは`https://your-domain.com/your-slug`で公開されます。
1. ドメインのAレコードをサーバーのIPに向ける
2. ポート3000を公開するか、手前にリバースプロキシを置く
3. 完了
**すぐ使えるcomposeファイル**は[`examples/`](examples/)にあります - シナリオごとに1つの自己完結ファイル:
| 目的 | 使用するファイル |
|---------------|---------------|
| TLS自動設定、手動設定不要 | `docker-compose.caddy.yml`または`docker-compose.https-portal.yml` |
| ダッシュボード付きでTLS自動設定(Traefik) | `docker-compose.traefik.yml` |
| ポート非公開(ゼロトラスト) | `docker-compose.cloudflare-tunnel.yml` |
| Nginx + Certbotを既に使用している | `docker-compose.nginx.yml` |
| UIからの定期バックアップ(サイドカー不要) | 内蔵 - 設定 → データで有効化 |
| SQLiteの定期バックアップ(ダンプ用サイドカー、S3オフサイト) | `docker-compose.with-backup.yml` |
| Kubernetesで実行 | `kubernetes.yaml` |
**Caddy**(推奨 - 自動HTTPS):
```
links.example.com {
reverse_proxy localhost:3000
}
```
**Nginx:**
```nginx
server {
server_name links.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
**Cloudflare Tunnel**(ポート非公開、ドメイン購入不要):
```bash
cloudflared tunnel --url http://localhost:3000
```
## 📸 スクリーンショット
クリックで展開
| 公開ページ |
管理ダッシュボード |
![公開ページ [Auroraテーマ]](public/screenshots/Public-Page(Aurora).jpeg) |
 |
| リンク |
プロフィール |
 |
 |
| テーマ |
ライブプレビュー |
 |
 |
| 設定 [一般] |
設定 [外観] |
![設定ページ [一般タブ]](public/screenshots/Settings(General).jpeg) |
![設定ページ [外観タブ]](public/screenshots/Settings(Appearance).jpeg) |
| 設定 [セキュリティ] |
設定 [データ] |
![設定ページ [セキュリティタブ]](public/screenshots/Settings(Security).jpeg) |
![設定ページ [データタブ]](public/screenshots/Settings(Data).jpeg) |
## 🆚 比較
| 機能 | Linktree | LinkStack | LittleLink | Shako | **LinkBreeze** |
|---------|----------|-----------|------------|-------|----------------|
| **価格** | 無料 - 月額$35 | 無料 | 無料 | 無料 | **無料** |
| **管理パネル** | ✅ | ✅ | ❌ | ❌ | **✅ 高速** |
| **マルチページ** | ❌ | ❌ | ❌ | ❌ | **✅ 無制限** |
| **自動ファビコンリンク** | ❌ | ❌ | ❌ | ❌ | **✅** |
| **移行ウィザード** | ❌ | ❌ | ❌ | ❌ | **✅** |
| **内蔵アナリティクス** | 基本のみ、フル機能は有料 | 基本のみ | ❌ | ❌ | **✅ フル機能&プライバシー対応** |
| **メールアドレス収集** | 有料 | ❌ | ❌ | ❌ | **✅** |
| **埋め込みウィジェット** | 一部対応 | ❌ | ❌ | ❌ | **✅** |
| **リンクの公開予約** | 有料 | ❌ | ❌ | ❌ | **✅** |
| **テーマ** | 有料 | 限定 | CSSのみ | 設定ファイル | **✅ フルトークンシステム** |
| **QRコード** | ✅ | ✅ | ❌ | ❌ | **✅ カスタマイズ可能** |
| **セルフホスト** | ❌ | ✅ | ✅ | ✅ | **✅** |
| **ページ読み込み** | ホスティング型 | PHPアプリ | 高速(静的) | 高速(静的) | **300ms未満、JSゼロ** |
## 💬 コミュニティ
**質問、ページの自慢、次に開発する機能への投票はこちらから。**
[](https://discord.gg/bAJMW3bAJa)
## ⚙️ 設定
すべての設定は環境変数で行います。**[`.env.example`](.env.example)が正式なリファレンスです** - コピーすれば、ウォレット関連のブロックを含む全変数の説明がインラインで書かれています。
| 変数 | デフォルト | 説明 |
|----------|---------|-------------|
| `PORT` | `3000` | サーバーポート |
| `DATABASE_PATH` | `./data/linkbreeze.db` | SQLiteデータベースファイルのパス |
| `BACKUP_DIR` | `./data/backups` | 定期バックアップの保存ディレクトリ(永続化した`./data`ボリューム内に置いてください) |
| `BACKUP_MIN_FREE_MB` | `50` | 空き容量がこの値を下回るとバックアップの書き込みをスキップ |
| `SECRET_KEY` | 自動生成 | セッション用のHMAC署名キー |
| `EXTRA_SCRIPT_SRC` | _(空)_ | CSP用のアナリティクスドメイン(空白区切り、例:`plausible.io umami.is`) |
| `LINKBREEZE_PRIMARY_HOST` | _(空)_ | 管理画面をホストするプライマリホスト。カスタムドメインの管理ロックが他のすべてのホストに404を返します(環境変数は管理画面の設定より優先) |
| `LINKBREEZE_TRUST_X_FORWARDED_HOST` | `false` | ドメインルーティングで`X-Forwarded-Host`を信頼 - このヘッダーを上書きするプロキシ(nginx、Caddy)の背後でのみ有効化してください。デフォルトの`Host`ヘッダーは偽装できません |
| `OIDC_CLIENT_SECRET` | _(空)_ | OIDC シングルサインオン用のクライアントシークレット(#124 マルチユーザー)。Issuer、クライアント ID、JIT プロビジョニング、サインイン方式は設定 → セキュリティで構成します。シークレットは環境変数のみ - 設定はバックアップにそのまま出力されます |
| `LINKBREEZE_ALLOW_HTTP_ISSUER` | `false` | テスト用例外:信頼した LAN 内の http OIDC issuer を許可(本番は https 必須) |
💳 ウォレットパス変数(Google Wallet / Apple Wallet)
| 変数 | 説明 |
|----------|-------------|
| `GOOGLE_WALLET_ISSUER_ID` | Google Pay & Wallet Consoleの発行者ID(数値)。「Google Walletに追加」ボタンが有効になります |
| `GOOGLE_WALLET_SERVICE_ACCOUNT_JSON` | Wallet APIの利用を許可されたサービスアカウントJSON(`client_email` + `private_key`) |
| `APPLE_WALLET_CERT_PEM` | Pass Type IDの署名証明書(PEM)。「Apple Walletに追加」ボタンが有効になります |
| `APPLE_WALLET_KEY_PEM` | 署名証明書に対応する秘密鍵(PEM) |
| `APPLE_WALLET_KEY_PASSPHRASE` | 署名鍵が暗号化されている場合のパスフレーズ |
| `APPLE_WALLET_WWDR_PEM` | Apple WWDR中間証明書(PEM) |
| `APPLE_WALLET_TEAM_ID` | 10文字のApple Team ID |
| `APPLE_WALLET_PASS_TYPE_ID` | Pass Type ID(`pass.`で始まる必要があります) |
すべての公開ページには「連絡先を保存」ボタン付きのシェアブロックが表示されます(汎用vCard、常に有効)。上記の認証情報を設定すると、ウォレットボタンが自動的に有効になります。Google Wallet:発行者アカウントは無料ですが、Googleが本番アクセスを許可するまで、パスを保存できるのはホワイトリスト登録済みのテストユーザーだけです。Apple Wallet:有料のApple Developerアカウントが必要で、Safariからのみインストールできます。パスは静的なスナップショットです - パス上のQRコードは常に最新のページを開きます。設定 → 統合でウォレットごとの認証情報の状態を確認でき、Appleの署名証明書の有効期限が近づくと警告が表示されます。
**外部アナリティクスを利用する場合?** プロバイダーのスニペットを設定 → 統合 → アナリティクススクリプトに貼り付け、CSPで許可されるようプロバイダーのドメインを`EXTRA_SCRIPT_SRC`に追加します(例:`EXTRA_SCRIPT_SRC=plausible.io umami.is`)。変更後は再ビルドが必要です - CSPはビルド時に組み込まれます。
ランタイム設定(ページのスラッグ、タイトル、SEO、テーマ)は管理ダッシュボードから管理され、データベースに保存されます - コードの変更は不要です。
## 🌐 カスタムドメイン
自分のドメインをページに紐付けましょう - 1つのインスタンスで複数のアイデンティティを持てます。訪問者は`https://jane.com/`にアクセスするだけでJaneのページを直接見られ、正規リダイレクトの自動化、SEO対応のサイトマップ、厳格な管理ホストロックを備えています。バインディングは最初の実アクセスで有効化され(セルフ検証DNS)、ページごとのスコープで、そのドメインがページそのものになるか(排他)、全スラッグのハブになるかを決めます。
DNS、ワイルドカードTLS、Caddy・nginx・Traefik向けのコピペリバースプロキシ設定まで、セットアップの詳細は**[docs/custom-domains.md](docs/custom-domains.md)**をご覧ください。
## 🔌 REST API
スクリプト、CI パイプライン、サードパーティのツールからリンク、プロフィール、分析を管理できます。**Settings → Security → API access** で API キーを作成します(完全なキーは一度だけ表示されます - 安全な場所に保管してください)。`Authorization` ヘッダーで HTTP Bearer スキームとして送信します。回転はデフォルトで即座に適用されます。管理者が任意の1時間の猶予を有効にしている場合、旧キーはウィンドウ終了または取り消しまで引き続き使える可能性があります。レート制限: キーあたり毎分 120 リクエスト(加えて IP 単位のガードあり)。書き込み系エンドポイントはデモモードではブロックされます。各インスタンスは `/api/v1/docs` と `/api/v1/openapi.json` に独自の OpenAPI 3.1 リファレンスを提供します。
🔗 エンドポイント
| メソッド | パス | 説明 |
|----------|------|------|
| GET | `/api/v1/links` | リンク一覧(`?limit`/`?cursor` でページ、`?fields=` で絞り込み) |
| GET | `/api/v1/links/:id` | ID でリンクを取得 |
| POST | `/api/v1/links` | リンクを作成 |
| PUT | `/api/v1/links/:id` | リンクを更新(部分的 - 送信したフィールドのみ変更) |
| DELETE | `/api/v1/links/:id` | リンクを削除 |
| PUT | `/api/v1/links/reorder` | リンクを並べ替え(`{ "ids": [3, 1, 2] }`) |
| POST | `/api/v1/links/import` | リンク一括作成(1-100 件、項目ごとの結果) |
| GET | `/api/v1/sections` | セクション一覧(`?pageId=N` で絞り込み) |
| POST | `/api/v1/sections` | セクションを作成 |
| PUT | `/api/v1/sections/:id` | セクションを更新(部分的) |
| DELETE | `/api/v1/sections/:id` | セクションを削除(そのリンクは未分類に戻る) |
| PUT | `/api/v1/sections/reorder` | セクションを並べ替え(`{ "ids": [3, 1, 2] }`) |
| GET | `/api/v1/profile` | プロフィールを取得 |
| PUT | `/api/v1/profile` | プロフィールを更新(部分的) |
| GET | `/api/v1/analytics` | ビュー、クリック、トップリンク(`?range=7d\|30d\|90d`) |
成功レスポンスはペイロードを `data` でラップします。エラーは `{ "error": { "code", "message" } }` で、対応する HTTP ステータス(401 キーなし・無効、400 検証、403 デモモード、429 レート制限)が返ります。リンクの書き込みは管理画面と同じ検証(URL スキームの許可リストを含む)を通ります。読み取り系は `ETag` も返します。変わらない間は `If-None-Match` として返すと空の `304` が返ります。全レスポンスにはヘッダー契約も付きます: `X-RateLimit-Limit`、`X-RateLimit-Remaining`、`X-RateLimit-Reset` が毎分の予算を示し(`429` は `Retry-After` も送信)、`Cache-Control: no-store` が認証済みレスポンスのキャッシュを防ぎ、`401` は `WWW-Authenticate` で応答します。
📦 API 実例集 (curl)
```bash
# 初回セットアップ
export LB_API_KEY="lbk_..."
export BASE="https://your-instance.example/api/v1"
```
```bash
# リンク一覧:全件、またはフィールドを絞った分ページ
# (--oauth2-bearer が Bearer 認証ヘッダーを送信します)
curl -s --oauth2-bearer "$LB_API_KEY" "$BASE/links" | jq '.data | length'
curl -s --oauth2-bearer "$LB_API_KEY" "$BASE/links?limit=10&fields=title,url" | jq '.meta'
```
```bash
# リンク作成(201 は作成された行と id を返します)
curl -s -X POST --oauth2-bearer "$LB_API_KEY" -H "Content-Type: application/json" \
-d '{"title":"Docs","url":"https://example.com/docs","cardStyle":"rich"}' \
"$BASE/links" | jq '.data.id'
```
```bash
# 部分更新:送信したフィールドのみが変更されます(null でクリア)
curl -s -X PUT --oauth2-bearer "$LB_API_KEY" -H "Content-Type: application/json" \
-d '{"isActive": false}' "$BASE/links/12" | jq '.data.isActive'
```
```bash
# 並べ替え後、メトリクスを取得
curl -s -X PUT --oauth2-bearer "$LB_API_KEY" -H "Content-Type: application/json" \
-d '{"ids":[3,1,2]}' "$BASE/links/reorder" | jq '.data'
curl -s --oauth2-bearer "$LB_API_KEY" "$BASE/analytics?range=30d" | jq '.data.ctr'
```
```bash
# セクションを作成し、リンクを一括インポート(項目ごとの結果)
curl -s -X POST --oauth2-bearer "$LB_API_KEY" -H "Content-Type: application/json" \
-d '{"pageId":1,"title":"Work"}' "$BASE/sections" | jq '.data.id'
curl -s -X POST --oauth2-bearer "$LB_API_KEY" -H "Content-Type: application/json" \
-d '{"items":[{"title":"A","url":"https://a.example"},{"title":"","url":"https://bad.example"}]}' \
"$BASE/links/import" | jq '.data.results'
```
```bash
# 条件付き読み取り: ETag を再送 → 変わらなければ空の 304
ETAG=$(curl -sI --oauth2-bearer "$LB_API_KEY" "$BASE/links" | tr -d '\r' | grep -i '^etag:' | cut -d' ' -f2)
curl -s -o /dev/null -w '%{http_code}\n' --oauth2-bearer "$LB_API_KEY" -H "If-None-Match: $ETAG" "$BASE/links" # → 304
```
`meta.nextCursor`(`?cursor=` で渡す)を辿れば全ページを取得できます。機械可読の完全な契約は `$BASE/openapi.json` にあります。
## 🎨 テーマシステム
プリセット11種類を標準搭載:**Aurora**(アニメーションする旗艦テーマ)、**Glassmorphism**、**Neon Cyberpunk**、**Editorial Paper**、**Terminal Mono**、**Pastel Soft**、**Brutalist**、**Retro Sunset**、**Minimal Light**、**8-Bit Retro**、**Frutiger Aero**。
🎛️ カスタマイザーで設定できる項目
テーマエンジンはCSSカスタムプロパティ(`--lb-*`)のトークンシステムです - 公開ページ上のすべての色、角丸、シャドウ、フォントがトークンになっています。
- **背景** - 8種類(単色、グラデーション、放射状、メッシュ、オーロラ、アニメーショングラデーション、画像、パターン)。角度、オーバーレイ、不透明度を調整できます
- **色** - アクセント、セカンダリ、テキスト、控えめテキスト、カード背景、カード枠線(hexまたはrgba)
- **タイポグラフィ** - 厳選した15種類のGoogle Fonts、フォントスケール、ウェイト、字間。または自分のwoff2/woffをアップロード(最大2 MB)。アップロードしたフォントは同一オリジンで配信され、テーマのエクスポートに埋め込まれ、バックアップにも引き継がれます
- **カードスタイル** - 7種類のリンクスタイル(ピル、角丸、シャープ、グラス、アウトライン、ネオン、ピクセル)、ホバーエフェクト、ボタンサイズ、角丸、枠線の太さ、シャドウの強さ
- **レイアウト** - コンテナ幅、配置(左/中央/右)、密度(コンパクト/標準/ゆったり)
- **エフェクト** - 色を指定できるグロー、ガラスぼかし、ノイズテクスチャ、リビールアニメーション
- **複製 / インポート / エクスポート** - どのテーマも編集可能なコピーとして複製でき、JSONとして共有できます
## 📖 ドキュメントとリンク
[コントリビューション](CONTRIBUTING.md) · [セキュリティポリシー](SECURITY.md) · [変更履歴](CHANGELOG.md) · [トラブルシューティング](TROUBLESHOOTING.md) · [カスタムドメイン](docs/custom-domains.md) · [アーキテクチャ決定記録](docs/adr/) · [設定リファレンス](.env.example)
ソース:[GitHub](https://github.com/OmniRise/LinkBreeze)(正規)· [GitLab](https://gitlab.com/omnirise00/linkbreeze)(公開プルミラー、自動同期)· イメージ:[`docker.io/omnirise/linkbreeze`](https://hub.docker.com/r/omnirise/linkbreeze)
IssueとPRはどちらのフォージでも歓迎します。
## 🤝 コントリビューション
貢献は大歓迎です!ガイドラインは[CONTRIBUTING.md](CONTRIBUTING.md)をご覧ください。
## 📜 ライセンス
MIT - ご自由にお使いください。詳細は[LICENSE](LICENSE)をご覧ください。
## 🏢 このプロジェクトについて
[Manak-hash](https://github.com/Manak-hash)による開発 · [OmniRise](https://omnirise.dev)のプロジェクト。