- JWT auth with bcrypt password hashing, cookie sessions, forgot/reset password - Per-user encrypted credential storage (Redis + AES-256-GCM) for all 9 platforms - Usage tracking with monthly limits per plan (free/starter/growth/enterprise) - Invoice generation and retrieval (admin + user views) - Admin panel with customer listing (role-based access) - Web app UI at app.squaremcp.com — login, dashboard, connections, usage, invoices - Unified auth middleware: API key, OAuth Bearer, and JWT cookie support - Facebook Graph API fixes: published_posts endpoint, photo/video post support - TikTok sandbox compliance: SELF_ONLY privacy for unaudited apps - URL verification files for TikTok app review
101 lines
6.3 KiB
Plaintext
101 lines
6.3 KiB
Plaintext
# ── Yahoo Mail ───────────────────────────────────────────────────────────────
|
|
# Generate an App Password at: https://myaccount.yahoo.com/security → App passwords
|
|
YAHOO_EMAIL=you@yahoo.com
|
|
YAHOO_APP_PASSWORD=xxxx xxxx xxxx xxxx
|
|
|
|
# ── Gmail ────────────────────────────────────────────────────────────────────
|
|
# Generate an App Password at: https://myaccount.google.com/apppasswords
|
|
# Requires 2-Step Verification to be enabled on your Google account
|
|
GMAIL_EMAIL=you@gmail.com
|
|
GMAIL_APP_PASSWORD=xxxx xxxx xxxx xxxx
|
|
|
|
# ── Optional: Custom IMAP/SMTP Server ────────────────────────────────────────
|
|
# Uncomment and configure these if you want to use a second email account
|
|
# CUSTOM_EMAIL=you@yourdomain.com
|
|
# CUSTOM_PASSWORD=yourpassword
|
|
# CUSTOM_IMAP_HOST=mail.yourdomain.com
|
|
# CUSTOM_IMAP_PORT=993
|
|
# CUSTOM_SMTP_HOST=mail.yourdomain.com
|
|
# CUSTOM_SMTP_PORT=587
|
|
|
|
# ── MySQL ────────────────────────────────────────────────────────────────────
|
|
MYSQL_HOST=127.0.0.1
|
|
MYSQL_PORT=3306
|
|
MYSQL_USER=root
|
|
MYSQL_PASSWORD=your-mysql-password
|
|
|
|
# ── Server ───────────────────────────────────────────────────────────────────
|
|
PORT=3456
|
|
MCP_API_KEY=your-secret-api-key
|
|
|
|
# ── Obsidian Vault ───────────────────────────────────────────────────────────
|
|
# Path to the vault directory inside the container (mount in docker-compose.yml)
|
|
OBSIDIAN_VAULT_PATH=/vaults
|
|
# Syncthing GUI URL (accessible from within the container via host.docker.internal)
|
|
SYNCTHING_URL=http://host.docker.internal:8384
|
|
# API key from ~/.config/syncthing/config.xml → <apikey>
|
|
SYNCTHING_API_KEY=your-syncthing-api-key
|
|
# Folder ID as set in Syncthing config
|
|
SYNCTHING_FOLDER_ID=obsidian-vault
|
|
|
|
# ── WhatsApp Business API (Meta Cloud API) ───────────────────────────────────
|
|
# Get these from https://business.facebook.com/settings/whatsapp-business-accounts
|
|
# For default account:
|
|
WHATSAPP_DEFAULT_PHONE_NUMBER_ID=your-phone-number-id
|
|
WHATSAPP_DEFAULT_ACCESS_TOKEN=your-permanent-access-token
|
|
WHATSAPP_DEFAULT_BUSINESS_ACCOUNT_ID=your-business-account-id
|
|
# For additional accounts, duplicate with WHATSAPP_{ACCOUNT}_*
|
|
|
|
# ── LinkedIn ─────────────────────────────────────────────────────────────────
|
|
# Get an access token from LinkedIn Developer Portal: https://www.linkedin.com/developers/
|
|
# Required scopes: r_liteprofile, w_member_social
|
|
# For default account:
|
|
LINKEDIN_DEFAULT_ACCESS_TOKEN=your-linkedin-access-token
|
|
LINKEDIN_DEFAULT_CLIENT_ID=your-linkedin-client-id
|
|
LINKEDIN_DEFAULT_CLIENT_SECRET=your-linkedin-client-secret
|
|
# For additional accounts, duplicate with LINKEDIN_{ACCOUNT}_*
|
|
|
|
# ── Telegram Bot API ─────────────────────────────────────────────────────────
|
|
# Create a bot via @BotFather on Telegram and copy the token
|
|
# For default account:
|
|
TELEGRAM_DEFAULT_BOT_TOKEN=your-telegram-bot-token
|
|
# For additional accounts, duplicate with TELEGRAM_{ACCOUNT}_*
|
|
|
|
# ── Discord Bot API ──────────────────────────────────────────────────────────
|
|
# Create a bot at https://discord.com/developers/applications → New Application → Bot → Copy Token
|
|
# For default account:
|
|
DISCORD_DEFAULT_BOT_TOKEN=your-discord-bot-token
|
|
# For additional accounts, duplicate with DISCORD_{ACCOUNT}_*
|
|
|
|
# ── Instagram Graph API ──────────────────────────────────────────────────────
|
|
# Requires Instagram Business/Creator account connected to Facebook Page
|
|
# Get token from Facebook Developer Console with instagram_basic + instagram_content_publish scopes
|
|
# For default account:
|
|
INSTAGRAM_DEFAULT_ACCESS_TOKEN=your-instagram-access-token
|
|
INSTAGRAM_DEFAULT_BUSINESS_ACCOUNT_ID=your-instagram-business-account-id
|
|
# For additional accounts, duplicate with INSTAGRAM_{ACCOUNT}_*
|
|
|
|
# ── Twitter/X API ────────────────────────────────────────────────────────────
|
|
# Get a Bearer Token from https://developer.twitter.com/en/portal/dashboard
|
|
# Free tier: 500 tweets/month read-only. Paid tiers required for posting.
|
|
# For default account:
|
|
TWITTER_DEFAULT_BEARER_TOKEN=your-twitter-bearer-token
|
|
# For additional accounts, duplicate with TWITTER_{ACCOUNT}_*
|
|
|
|
# ── TikTok Content Posting API ───────────────────────────────────────────────
|
|
# Get an access token from the TikTok developer app with Content Posting scopes
|
|
# Login Kit / OAuth app credentials:
|
|
TIKTOK_CLIENT_KEY=your-tiktok-client-key
|
|
TIKTOK_CLIENT_SECRET=your-tiktok-client-secret
|
|
TIKTOK_REDIRECT_URI=https://tiktok.squaremcp.com/auth/tiktok/callback
|
|
# For default account:
|
|
TIKTOK_DEFAULT_ACCESS_TOKEN=your-tiktok-access-token
|
|
# For additional accounts, duplicate with TIKTOK_{ACCOUNT}_*
|
|
|
|
# ── Facebook Graph API ───────────────────────────────────────────────────────
|
|
# Use a Page access token with pages_manage_posts + pages_read_engagement
|
|
# For default account:
|
|
FACEBOOK_DEFAULT_ACCESS_TOKEN=your-facebook-page-access-token
|
|
FACEBOOK_DEFAULT_PAGE_ID=your-facebook-page-id
|
|
# For additional accounts, duplicate with FACEBOOK_{ACCOUNT}_*
|