Skip to content

Configuration

Zirelia is configured via two main files: 1. .env (Secrets & API Keys) 2. config/persona.yaml (Personality, Behavior, Appearance)


🔐 Environment Variables (.env)

Create a .env file in the project root directory by copying .env.template.

Core APIs

Variable Description Required?
OPENAI_API_KEY Used for the "Brain" (text generation). ✅ Yes
REPLICATE_API_TOKEN Used for the "Imagination" (image generation). ✅ Yes
REPLICATE_MODEL_VERSION The specific model version (e.g., FLUX.1 Pro or your Custom LoRA). ✅ Yes

Twitter / X

Variable Description Required?
TWITTER_API_KEY Consumer Key from Developer Portal. ✅ Yes
TWITTER_API_SECRET Consumer Secret. ✅ Yes
TWITTER_ACCESS_TOKEN OAuth 1.0a Access Token (Read/Write). ✅ Yes
TWITTER_ACCESS_TOKEN_SECRET OAuth 1.0a Secret. ✅ Yes

Meta (Facebook & Instagram)

Variable Description Required?
META_APP_ID Facebook Developer App ID. 🔹 If using FB/IG
META_APP_SECRET Facebook Developer App Secret. 🔹 If using FB/IG
META_ACCESS_TOKEN Permanent Page Access Token. 🔹 If using FB/IG
FACEBOOK_PAGE_ID The ID of the bridging Facebook Page. 🔹 If using FB/IG
INSTAGRAM_ACCOUNT_ID The ID of the linked Professional Instagram. 🔹 If using Instagram

Threads

Separate App Required

Threads requires a completely separate Meta App from Facebook/Instagram. See the Meta Setup Guide for details.

Variable Description Required?
THREADS_ACCESS_TOKEN Long-lived Threads API Token (60-day, auto-renewed). 🔹 If using Threads
THREADS_USER_ID Threads User ID (fetch via graph.threads.net/v1.0/me). 🔹 If using Threads
THREADS_APP_SECRET Threads App Secret (needed for token auto-renewal). 🔹 If using Threads

Threads Content Strategy

Variable Description Default
THREADS_TEXT_ONLY_RATIO Ratio of text-only posts on Threads (0.0 = always image, 1.0 = always text-only). 0.7

Automation Settings

Variable Description Default
MAX_DAILY_POSTS Maximum posts per day (1-3). 1
ACTIVE_PLATFORMS Comma-separated list of platforms to post to. instagram,facebook,threads

Database & Redis (Docker handles these automatically)

Variable Description Default (Docker)
DATABASE_URL PostgreSQL Connection String. postgresql://user:password@db:5432/influencer_db
REDIS_URL Redis Connection String. redis://redis:6379/0

🧠 Persona Configuration (persona.yaml)

This YAML file defines who the bot is. Editing this changes the bot's entire behavior without touching code.

Location: config/persona.yaml

Structure

name: "Sienna Fox"
age: 23
nationality: "American (Los Angeles, CA)"

# Physical Appearance (Used by Image Generator)
physical_traits:
  hair: "Light Brown / Dirty Blonde (Wavy)"
  eyes: "Hazel / Warm Brown"
  body: "Slim-Thick / Hourglass / Athletic"
  vibe: "Natural, Sun-kissed"

# Psychological Traits (Used by Text Generator)
traits:
  - "Confident"
  - "Playful / Flirty"
  - "Witty"

# Voice & Tone
voice:
  tone: "Seductive but friendly"
  style: "Short, punchy, uses emojis naturally (✨, 😉)"

# Platform-Specific Styles
platforms:
  twitter:
    style: "Teasing, unpredictable, short thoughts"
  instagram:
    style: "High-value aesthetic, golden hour, lifestyle with class"
  threads:
    style: "Unfiltered thoughts, group chat energy, bold opinions, engagement bait"
    hashtag_density: "None"
    cross_promo: "Occasional subtle teases pointing to Instagram content"

# Daily Routine (Used by Smart Scheduler)
routine:
  morning:
    - "Waking up in silk sheets"
    - "Morning stretch / Yoga"
  afternoon:
    - "Working from a cafe"
    - "Gym workout"
  evening:
    - "Sunset at the beach"
    - "Glass of wine"

How to update

  1. Edit the file.
  2. Restart the container: docker compose restart scheduler