2026年9月の独立した実地メモ: 私はマネージド版PostizでLazyingArtの投稿を予約し、公開状況を監視しています。この手順はPostiz CLI
2.0.15でテストしました。公式ソースはその後も更新されているため、インストール済みのバージョンに対して各コマンドを再確認してください。スポンサー記事ではなく、紹介リンクもありません。予約できたことは、実際の公開や収益の発生を意味しません。
役に立つ自動化の境界は「Agentにあらゆる場所へ投稿させる」ことではありません。次の分担です。
ソフトウェアは準備、予約、観測を行い、人が正確な宛先、文面、メディア、不可逆な操作を承認する。
プラットフォームごとに項目と規則が異なり、スケジューラーが成功を返しても確認可能な公開投稿が存在しない場合があるため、この区別は重要です。反応があったことも、見込み客や売上を意味しません。
Table of Contents
1. Postizが適しているか判断する
複数のチャンネルを管理する、確認可能なカレンダーが必要、プラットフォーム固有の設定を扱う、またはCLI・API・MCPを使った統制された運用が必要なら、Postizは有力な選択肢です。一つのチャンネルにまれに投稿するだけなら不要かもしれません。バックアップ、更新、データベース、ストレージ、OAuthアプリ、プロバイダーのsecret、監視、障害対応まで含めると、セルフホストが自動的に安くなるわけではありません。
| 必要なこと | 現実的な選択 |
|---|---|
| インフラ作業を減らし、保守されるスケジューラーを使う | マネージド版Postiz |
| インフラを完全に管理し、スタックを運用できる | 公式オープンソース版Postiz |
| 一つのプラットフォームに時々投稿する | プラットフォームを直接使う |
| 自動返信や求められていない働きかけ | このワークフローを使わない |
公式リポジトリはオープンソースですが、現在のDocker Composeスタックは一つのコンテナだけではありません。Postiz、PostgreSQL、Redisに加え、独自のPostgreSQL、Elasticsearch、管理ツール、UIを持つTemporalスタックを含みます。古い記事の一部分をコピーせず、現在のデプロイファイルを確認してください。
2. 認証情報を漏らさずにインストールする
このpackageにはNode.js 18以降が必要です。npmからCLIをインストールし、実際に動かすバージョンを確認します。
npm install -g postiz
postiz --version
postiz auth:login
postiz auth:status
OAuthのデバイスフローは認証情報を ~/.postiz/credentials.json に保存します。このファイル、API key、OAuth token、integration ID、organization identifier、生のコマンド出力を、Git、スクリーンショット、Issue、Agentの会話記録へ入れないでください。現在のCLIでは auth:status にtokenの先頭部分とorganization identifierが表示されます。省略された出力でも秘密情報として扱います。
OAuth認証情報と POSTIZ_API_KEY が両方ある場合、CLIはOAuthを優先します。テストには、本番integrationを一つも含まない別のPostiz accountまたはorganizationを使います。shellやbrowser profileを分けるだけでは権限境界になりません。
3. 各プロバイダーの最新契約を取得する
古い例からプロバイダーのschemaをハードコードしないでください。まず連携先を一覧し、対象を非公開の環境で選び、現在の設定を取得します。
postiz integrations:list
INTEGRATION_ID="replace-with-the-reviewed-private-id"
postiz integrations:settings "$INTEGRATION_ID"
設定レスポンスには、文字数制限、必須項目、プラットフォーム固有の選択肢、動的ツールが含まれます。例えばRedditでは、subreddit、タイトル、投稿形式、プロバイダーツールで取得するflairが必要な場合があります。CLI 2.0.15のテストでは、無関係な設定が拒否されず無視される場合がありました。これは観測した挙動であり、APIの保証ではありません。常に最新のschemaとrulesに従ってください。
integration IDは、Gitで無視するローカル設定か一時的なshell変数に置きます。公開campaignファイルにはアカウント識別子ではなく、x や instagram のような安定したラベルだけを保存します。
4. 予約する前に下書きを作る
結果が下書きだけでも、posts:create は状態を変更するコマンドです。実行前に宛先、ISO 8601時刻、タイムゾーン、文面、設定を確認します。
postiz posts:create
-c "Platform-specific copy reviewed by a person"
-s "YYYY-MM-DDTHH:MM:SSZ"
-t draft
-i "$INTEGRATION_ID"
次に、画面で見えるPostizカレンダー上の保存済み下書きと、UIが提供している場合はそのpreviewを確認します。正しい場合だけキューへ移します。
POST_ID="replace-with-the-reviewed-private-post-id"
# Starts the publishing workflow at the draft's stored date.
postiz posts:status "$POST_ID" --status schedule
# Before provider publication, withdraw it and terminate the running workflow.
postiz posts:status "$POST_ID" --status draft
プロバイダーがすでに公開した後では、workflowの取り下げは公開投稿のrollbackになりません。CLIが複数のintegration IDを受け取れるという理由だけで、同一の文章を配らないでください。X、Instagram、Reddit、LinkedIn、動画プラットフォームでは、技術上の制限だけでなく読者の期待も異なります。
最初のテストは外部リンクのない、取り消せる下書きにします。有料campaign、顧客の非公開文書、誤公開した場合に害を与えるメッセージをテストに使わないでください。
5. メディアは添付前にアップロードする
メディア欄には、任意のローカルファイル名や外部URLではなく、Postizのアップロード経路が返したURLを渡します。先にアップロードし、レスポンスを確認し、返されたpathだけを使用します。
UPLOAD_JSON="$(postiz upload ./reviewed-cover.png)"
MEDIA_URL="$(printf '%s' "$UPLOAD_JSON" | jq -er '.path | strings | select(length > 0)')"
postiz posts:create
-c "Reviewed caption"
-m "$MEDIA_URL"
-s "YYYY-MM-DDTHH:MM:SSZ"
-t draft
-i "$INTEGRATION_ID"
予約前に、ローカルファイルの寸法、形式、必要なら再生時間、利用権、非公開メタデータの有無を確認します。TikTok、YouTube、Instagramなどメディア中心のプロバイダーでは、使用直前にintegration settingsを取得してください。投稿方法や必要な開示によって結果が変わることがあります。
6. スケジューラーの状態と公開証拠を分ける
キュー項目は公開投稿ではありません。プロバイダーIDが利用可能な公開URLとは限りません。クリックは見込み客ではなく、保留中のコミッションも収益ではありません。
期間を限定してスケジューラーの状態を確認します。
postiz posts:list
--startDate "YYYY-MM-DDT00:00:00Z"
--endDate "YYYY-MM-DDT23:59:59Z"
公開済みとされる項目は、正確なrelease URLを見えるブラウザで開き、アカウント、内容、メディア、時刻、リンク先を確認します。投稿分析が {"missing": true} を返しても、最初の検索結果を自動で関連付けないでください。
postiz posts:missing "$POST_ID"
# Only after visually identifying the exact provider item:
postiz posts:connect "$POST_ID" --release-id "$REVIEWED_RELEASE_ID"
postiz analytics:post "$POST_ID" -d 30
公開結果が曖昧なら、再試行ではなく調査が必要です。再試行は重複投稿を生む可能性があります。Postizのpost、integration、release IDは、アクセス制御された非公開記録だけに保存します。重複検出にはcontent hashまたはidempotency記録を使い、公開logへIDを出しません。私のmonitorは自動返信や再送信ではなく、レビュー警告を作ります。
7. MCP認証情報を書き込み可能として扱い、レビューゲートを設ける
Postizには公式MCP endpointもあります。現在の文書には11個のツールがあり、integrationsとpostsの一覧、schemaの確認、プロバイダー補助ツール、未公開投稿の設定変更、下書き・予約・即時投稿の作成、メディア生成が可能です。コメントを読んだり返信したりすることはできません。
https://api.postiz.com/mcp に Authorization: Bearer ... headerを送れるクライアントを優先します。API keyをURLに含める方式も公式に記載されていますが、URLはブラウザ履歴、proxy log、スクリーンショット、診断情報に残りやすいものです。secretはクライアントの非公開資格情報機構に保存し、露出した場合は交換します。
MCP認証情報は書き込み可能です。promptは行動上の指針であり、アクセス制御ではありません。クライアント側のtool approval、または本番integrationを持たないテストorganizationを使います。Agentへの指示は明確にします。
Before any write call, return the intended account name, UTC time, HTML
content, attachment URLs, provider settings, and unresolved fields.
After explicit approval, call schedulePostTool once with type=draft only.
Do not use type=schedule or type=now, generate media, shorten links, or
modify an existing post.
CLI -c のプレーンテキストと異なり、MCPの投稿内容はHTMLでなければなりません。各行を <p> で囲み、現在のtool referenceで許可されたtagだけを使います。MCPはPostiz操作を呼びやすくしますが、プラットフォーム規則、同意、公開確認を不要にはしません。
8. マネージド版とセルフホスト版
運用に使える注意力が最も不足しているなら、マネージド版Postizを選びます。インフラを自分で制御する必要があり、依存サービス、ストレージ、TLS・reverse proxy、バックアップ、更新、OAuth認証情報、プロバイダーcallbackまで保守できる場合にセルフホストを選びます。
セルフホストでは、現在の公式Docker Composeリポジトリとmigration notesから始めてください。latest が再現可能だと仮定せず、確認済みreleaseを固定します。例のsecretをすべて交換し、データベースとアップロード領域を非公開に保ち、reverse proxy経由のMCP streamingをテストします。セルフホストでも、外部プラットフォームのAPIとポリシーへの依存は残ります。
9. 繰り返し使えるレビュー優先チェックリスト
- 出力を共有せず、認証状態を確認する。
- integrationsを一覧し、正確な宛先を非公開で選ぶ。
- 対象integrationの最新設定とツールを取得する。
- プラットフォーム別の文面を作り、リンクを確認する。
- すべてのメディアを添付前にアップロードして検査する。
- 明示的なUTC時刻で下書きを作る。
- 保存済み下書きと、UIが提供する場合はそのpreviewを確認する。
- 予約または公開は一度だけ行う。
- 正確な公開投稿を確認してから、配信成功を記録する。
- 返信はレビュー警告、分析値はシグナルとして扱い、実際に受け取った金額だけを収益とする。
無確認のクロスポストより遅い方法ですが、小規模ブランドには十分に速く、監査もしやすくなります。
商業・アフィリエイトの境界
この記事は通常の追跡なしリンクだけを使い、Postizのアフィリエイト報酬を生みません。Postiz公式サイトまたはオープンソースリポジトリへ、紹介追跡なしでアクセスできます。
将来追跡付きリンクを追加する場合は、それだけで役立つガイドの後に置き、明確な開示を隣接させ、同じように見やすい通常リンクを残します。申請、正確なプログラム規約、アトリビューション、取り消し、受取経路、発行済みURLを非公開に検証するまでは無効のままにします。自動生成したコミュニティ返信にアフィリエイトリンクを入れません。
