.env.example
Set these on your host before deploying. Each platform has an “Environment Variables” section in the deploy flow.
OPENAI_API_KEY
secret
AI features (title/tags/slug/summary suggestions, translation, alt text) Optional: without a key the editor works, AI actions are disabled.
BLOG_EDITOR_DRAFTS_KEY
secret
Encrypted SNS-draft sync via git (apps/editor/drafts/*.age) Generate a key and use the SAME key on every device: uv run python -m…
BLOG_EDITOR_SNS_BLUESKY_KO_APP_PASSWORD
secret
bluesky-ko: app password from Settings > Privacy and Security > App Passwords
BLOG_EDITOR_SNS_MASTODON_KO_ACCESS_TOKEN
secret
mastodon-ko: access token from Preferences > Development > New application (scopes: write:statuses write:media read:search)
BLOG_EDITOR_SNS_THREADS_KO_CLIENT_ID
threads-ko: Meta developer app with the Threads API product (scopes: threads_basic, threads_content_publish)
BLOG_EDITOR_SNS_THREADS_KO_CLIENT_SECRET
secret
BLOG_EDITOR_SNS_LINKEDIN_EN_CLIENT_ID
linkedin-en: developer app with "Share on LinkedIn" + "Sign In with LinkedIn using OpenID Connect" products. Register…
BLOG_EDITOR_SNS_LINKEDIN_EN_CLIENT_SECRET
secret
brew install flyctl && fly launch --from https://github.com/darjeeling/darjeeling.github.io
curl -L https://fly.io/install.sh | sh && fly launch --from https://github.com/darjeeling/darjeeling.github.io
iwr https://fly.io/install.ps1 -useb | iex; fly launch --from https://github.com/darjeeling/darjeeling.github.io