generated from DAM/ts-TEMPLATE
177 lines
5.5 KiB
YAML
177 lines
5.5 KiB
YAML
services:
|
|
postiz-ts:
|
|
image: tailscale/tailscale:latest
|
|
hostname: postiz
|
|
container_name: postiz-ts
|
|
environment:
|
|
- TS_AUTHKEY={{YOUR_TAILSCALE_AUTHKEY}}
|
|
- TS_STATE_DIR=/var/lib/tailscale
|
|
- TS_SERVE_CONFIG=/config/serve.json
|
|
volumes:
|
|
- ./tailscale/tailscale-data:/var/lib/tailscale
|
|
- ./tailscale/config:/config
|
|
- /dev/net/tun:/dev/net/tun
|
|
cap_add:
|
|
- net_admin
|
|
- sys_module
|
|
restart: unless-stopped
|
|
postiz:
|
|
image: ghcr.io/gitroomhq/postiz-app:latest
|
|
container_name: postiz
|
|
restart: always
|
|
environment:
|
|
# === Required Settings
|
|
MAIN_URL: "https://postiz.your-server.com"
|
|
FRONTEND_URL: "https://postiz.your-server.com"
|
|
NEXT_PUBLIC_BACKEND_URL: "https://postiz.your-server.com/api"
|
|
JWT_SECRET: "random string that is unique to every install - just type random characters here!"
|
|
DATABASE_URL: "postgresql://postiz-user:postiz-password@localhost:5432/postiz-db-local"
|
|
REDIS_URL: "redis://localhost:6379"
|
|
BACKEND_INTERNAL_URL: "http://localhost:3000"
|
|
IS_GENERAL: "true"
|
|
DISABLE_REGISTRATION: "false"
|
|
|
|
# === Storage Settings
|
|
STORAGE_PROVIDER: "local"
|
|
UPLOAD_DIRECTORY: "/uploads"
|
|
NEXT_PUBLIC_UPLOAD_DIRECTORY: "/uploads"
|
|
|
|
# === Cloudflare (R2) Settings
|
|
CLOUDFLARE_ACCOUNT_ID: "your-account-id"
|
|
CLOUDFLARE_ACCESS_KEY: "your-access-key"
|
|
CLOUDFLARE_SECRET_ACCESS_KEY: "your-secret-access-key"
|
|
CLOUDFLARE_BUCKETNAME: "your-bucket-name"
|
|
CLOUDFLARE_BUCKET_URL: "https://your-bucket-url.r2.cloudflarestorage.com/"
|
|
CLOUDFLARE_REGION: "auto"
|
|
|
|
# === Social Media API Settings
|
|
X_API_KEY: ""
|
|
X_API_SECRET: ""
|
|
LINKEDIN_CLIENT_ID: ""
|
|
LINKEDIN_CLIENT_SECRET: ""
|
|
REDDIT_CLIENT_ID: ""
|
|
REDDIT_CLIENT_SECRET: ""
|
|
GITHUB_CLIENT_ID: ""
|
|
GITHUB_CLIENT_SECRET: ""
|
|
BEEHIIVE_API_KEY: ""
|
|
BEEHIIVE_PUBLICATION_ID: ""
|
|
THREADS_APP_ID: ""
|
|
THREADS_APP_SECRET: ""
|
|
FACEBOOK_APP_ID: ""
|
|
FACEBOOK_APP_SECRET: ""
|
|
YOUTUBE_CLIENT_ID: ""
|
|
YOUTUBE_CLIENT_SECRET: ""
|
|
TIKTOK_CLIENT_ID: ""
|
|
TIKTOK_CLIENT_SECRET: ""
|
|
PINTEREST_CLIENT_ID: ""
|
|
PINTEREST_CLIENT_SECRET: ""
|
|
DRIBBBLE_CLIENT_ID: ""
|
|
DRIBBBLE_CLIENT_SECRET: ""
|
|
DISCORD_CLIENT_ID: ""
|
|
DISCORD_CLIENT_SECRET: ""
|
|
DISCORD_BOT_TOKEN_ID: ""
|
|
SLACK_ID: ""
|
|
SLACK_SECRET: ""
|
|
SLACK_SIGNING_SECRET: ""
|
|
MASTODON_URL: "https://mastodon.social"
|
|
MASTODON_CLIENT_ID: ""
|
|
MASTODON_CLIENT_SECRET: ""
|
|
|
|
# === OAuth & Authentik Settings
|
|
NEXT_PUBLIC_POSTIZ_OAUTH_DISPLAY_NAME: "Authentik"
|
|
NEXT_PUBLIC_POSTIZ_OAUTH_LOGO_URL: "https://raw.githubusercontent.com/walkxcode/dashboard-icons/master/png/authentik.png"
|
|
POSTIZ_GENERIC_OAUTH: "false"
|
|
POSTIZ_OAUTH_URL: "https://auth.example.com"
|
|
POSTIZ_OAUTH_AUTH_URL: "https://auth.example.com/application/o/authorize"
|
|
POSTIZ_OAUTH_TOKEN_URL: "https://auth.example.com/application/o/token"
|
|
POSTIZ_OAUTH_USERINFO_URL: "https://authentik.example.com/application/o/userinfo"
|
|
POSTIZ_OAUTH_CLIENT_ID: ""
|
|
POSTIZ_OAUTH_CLIENT_SECRET: ""
|
|
# POSTIZ_OAUTH_SCOPE: "openid profile email" # Optional: uncomment to override default scope
|
|
|
|
NEXT_PUBLIC_SENTRY_DSN: "http://spotlight:8969/stream"
|
|
SENTRY_SPOTLIGHT: "1"
|
|
|
|
# === Misc Settings
|
|
OPENAI_API_KEY: ""
|
|
NEXT_PUBLIC_DISCORD_SUPPORT: ""
|
|
NEXT_PUBLIC_POLOTNO: ""
|
|
API_LIMIT: 30
|
|
|
|
# === Payment / Stripe Settings
|
|
FEE_AMOUNT: 0.05
|
|
STRIPE_PUBLISHABLE_KEY: ""
|
|
STRIPE_SECRET_KEY: ""
|
|
STRIPE_SIGNING_KEY: ""
|
|
STRIPE_SIGNING_KEY_CONNECT: ""
|
|
|
|
# === Developer Settings
|
|
NX_ADD_PLUGINS: false
|
|
|
|
# === Short Link Service Settings (Optional - leave blank if unused)
|
|
# DUB_TOKEN: ""
|
|
# DUB_API_ENDPOINT: "https://api.dub.co"
|
|
# DUB_SHORT_LINK_DOMAIN: "dub.sh"
|
|
# SHORT_IO_SECRET_KEY: ""
|
|
# KUTT_API_KEY: ""
|
|
# KUTT_API_ENDPOINT: "https://kutt.it/api/v2"
|
|
# KUTT_SHORT_LINK_DOMAIN: "kutt.it"
|
|
# LINK_DRIP_API_KEY: ""
|
|
# LINK_DRIP_API_ENDPOINT: "https://api.linkdrip.com/v1/"
|
|
# LINK_DRIP_SHORT_LINK_DOMAIN: "dripl.ink"
|
|
|
|
volumes:
|
|
- ./postiz-config:/config/
|
|
- ./postiz-uploads:/uploads/
|
|
# ports:
|
|
# - 5000:5000
|
|
network_mode: service:postiz-ts
|
|
depends_on:
|
|
postiz-postgres:
|
|
condition: service_healthy
|
|
postiz-redis:
|
|
condition: service_healthy
|
|
|
|
postiz-postgres:
|
|
image: postgres:17-alpine
|
|
container_name: postiz-postgres
|
|
restart: always
|
|
environment:
|
|
POSTGRES_PASSWORD: postiz-password
|
|
POSTGRES_USER: postiz-user
|
|
POSTGRES_DB: postiz-db-local
|
|
volumes:
|
|
- ./postgres-volume:/var/lib/postgresql/data
|
|
network_mode: service:postiz-ts
|
|
depends_on:
|
|
- postiz-ts
|
|
healthcheck:
|
|
test: pg_isready -U postiz-user -d postiz-db-local
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 3
|
|
postiz-redis:
|
|
image: redis:7.2
|
|
container_name: postiz-redis
|
|
restart: always
|
|
healthcheck:
|
|
test: redis-cli ping
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 3
|
|
volumes:
|
|
- ./postiz-redis-data:/data
|
|
network_mode: service:postiz-ts
|
|
depends_on:
|
|
- postiz-ts
|
|
|
|
# For Application Monitoring / Debugging
|
|
spotlight:
|
|
pull_policy: always
|
|
container_name: spotlight
|
|
# ports:
|
|
# - 8969:8969/tcp
|
|
image: ghcr.io/getsentry/spotlight:latest
|
|
network_mode: service:postiz-ts
|
|
depends_on:
|
|
- postiz-ts |