Postiz One click app

The one click setup for open source social media scheduler postiz
This commit is contained in:
Alexandru (The) Serban
2024-11-08 05:27:05 +02:00
parent addc720409
commit af057f9e0e
2 changed files with 130 additions and 47 deletions

View File

@@ -1,59 +1,129 @@
# ignore: true
# documentation: https://docs.postiz.com/introduction
# slogan:
# tags:
# logo:
# port: 4200
# documentation: https://docs.postiz.com
# slogan: Social media scheduling tool.
# tags: post everywhere, social media, planning
# logo: svgs/postiz.svg
version: "3.8"
services:
postiz:
image: "ghcr.io/gitroomhq/postiz-app:latest"
container_name: postiz
restart: always
environment:
- SERVICE_FQDN_POSTIZ_4200
- MAIN_URL=${SERVICE_FQDN_POSTIZ}
- FRONTEND_URL=${SERVICE_FQDN_POSTIZ}
- NEXT_PUBLIC_BACKEND_URL=${SERVICE_FQDN_POSTIZAPI_3000}
- JWT_SECRET=${SERVICE_REALBASE64_JWTSECRET}
- DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-postiz}?schema=public
- REDIS_URL=redis://redis:6379
- BACKEND_INTERNAL_URL=http://localhost:3000/
- SERVICE_FQDN_POSTIZ_5000
- "MAIN_URL=${SERVICE_FQDN_POSTIZ}"
- "FRONTEND_URL=${SERVICE_FQDN_POSTIZ}"
- "NEXT_PUBLIC_BACKEND_URL=${SERVICE_FQDN_POSTIZ}/api"
- "JWT_SECRET=${SERVICE_PASSWORD_JWTSECRET}"
- "DATABASE_URL=postgresql://postiz-user:postiz-password@postiz-postgres:5432/postiz-db-local"
- "REDIS_URL=redis://postiz-redis:6379"
- "BACKEND_INTERNAL_URL=http://localhost:3000"
- IS_GENERAL=true
- CLOUDFLARE_ACCOUNT_ID=${CLOUDFLARE_ACCOUNT_ID}
- CLOUDFLARE_ACCESS_KEY=${CLOUDFLARE_ACCESS_KEY}
- CLOUDFLARE_SECRET_ACCESS_KEY=${CLOUDFLARE_SECRET_ACCESS_KEY}
- CLOUDFLARE_BUCKETNAME=${CLOUDFLARE_BUCKETNAME}
- CLOUDFLARE_BUCKET_URL=${CLOUDFLARE_BUCKET_URL}
- CLOUDFLARE_REGION=${CLOUDFLARE_REGION}
- RESEND_API_KEY=${RESEND_API_KEY}
- EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS}
- EMAIL_FROM_NAME=${EMAIL_FROM_NAME}
- STORAGE_PROVIDER=local
- UPLOAD_DIRECTORY=/uploads
- NEXT_PUBLIC_UPLOAD_DIRECTORY=/uploads
- "X_API_KEY=${SERVICE_X_API}"
- "X_API_SECRET=${SERVICE_X_SECRET}"
- "REDDIT_CLIENT_ID=${SERVICE_REDDIT_API}"
- "REDDIT_CLIENT_SECRET=${SERVICE_REDDIT_SECRET}"
- "TIKTOK_CLIENT_ID=${SERVICE_TIKTOK_ID}"
- "TIKTOK_CLIENT_SECRET=${SERVICE_TIKTOK_SECRET}"
- "SLACK_ID=${SERVICE_SLACK_ID}"
- "SLACK_SECRET=${SERVICE_SLACK_SECRET}"
- "PINTEREST_CLIENT_ID=${SERVICE_PINTEREST_ID}"
- "PINTEREST_CLIENT_SECRET=${SERVICE_PINTEREST_SECRET}"
- "DRIBBLE_CLIENT_ID=${SERVICE_DRIBBLE_ID}"
- "DRIBBLE_CLIENT_SECRET=${SERVICE_DRIBBLE_SECRET}"
- "DISCORD_CLIENT_ID=${SERVICE_DISCORD_ID}"
- "DISCORD_CLIENT_SECRET=${SERVICE_DISCORD_SECRET}"
- "DISCORD_BOT_TOKEN_ID=${SERVICE_DISCORD_TOKEN}"
- "YOUTUBE_CLIENT_ID=${SERVICE_YOUTUBE_ID}"
- "YOUTUBE_CLIENT_SECRET=${SERVICE_YOUTUBE_SECRET}"
- "MASTODON_CLIENT_ID=${SERVICE_MASTODON_ID}"
- "MASTODON_CLIENT_SECRET=${SERVICE_MASTODON_SECRET}"
- "LINKEDIN_CLIENT_ID=${SERVICE_LINKEDIN_ID}"
- "LINKEDIN_CLIENT_SECRET=${SERVICE_LINKEDIN_SECRET}"
- "INSTAGRAM_APP_ID=${SERVICE_INSTAGRAM_ID}"
- "INSTAGRAM_APP_SECRET=${SERVICE_INSTAGRAM_SECRET}"
- "FACEBOOK_APP_ID=${SERVICE_FACEBOOK_ID}"
- "FACEBOOK_APP_SECRET=${SERVICE_FACEBOOK_SECRET}"
- "THREADS_APP_ID=${SERVICE_THREADS_ID}"
- "THREADS_APP_SECRET=${SERVICE_THREADS_SECRET}"
- "GITHUB_CLIENT_ID=${SERVICE_GITHUB_ID}"
- "GITHUB_CLIENT_SECRET=${SERVICE_GITHUB_SECRET}"
- "BEEHIIVE_API_KEY=${SERVICE_BEEHIIVE_KEY}"
- "BEEHIIVE_PUBLICATION_ID=${SERVICE_BEEHIIVE_PUBID}"
- "OPENAI_API_KEY=${SERVICE_OPENAI_KEY}"
volumes:
- "postiz-config:/config/"
- "postiz-uploads:/uploads/"
ports:
- "5000:5000"
networks:
- postiz-network
labels:
- traefik.enable=true
- "traefik.http.routers.postiz.rule=Host(your.url) && PathPrefix(/)"
- traefik.http.routers.postiz.entryPoints=http
- traefik.http.routers.postiz.tls=true
- traefik.http.routers.postiz.tls.certresolver=letsencrypt
- traefik.http.services.postiz.loadbalancer.server.port=5000
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
volumes:
- "postiz_config:/config"
postgres:
image: "postgres:latest"
- postiz-postgres
- postiz-redis
postiz-postgres:
image: "postgres:14.5"
container_name: postiz-postgres
restart: always
environment:
- POSTGRES_DB=${POSTGRES_DB:-postiz}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PORT=${POSTGRES_PORT:-5432}
- POSTGRES_PASSWORD=postiz-password
- POSTGRES_USER=postiz-user
- POSTGRES_DB=postiz-db-local
volumes:
- "pg-data:/var/lib/postgresql/data"
- "postgres-volume:/var/lib/postgresql/data"
ports:
- "5432:5432"
networks:
- postiz-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 20s
retries: 10
redis:
test:
- CMD
- pg_isready
- "-U"
- postiz-user
- "-d"
- postiz-db-local
interval: 10s
timeout: 3s
retries: 3
postiz-redis:
image: "redis:7.2"
volumes:
- "redis_data:/data"
container_name: postiz-redis
restart: always
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 20s
retries: 10
test:
- CMD
- redis-cli
- ping
interval: 10s
timeout: 3s
retries: 3
volumes:
- "postiz-redis-data:/data"
networks:
- postiz-network
volumes:
postgres-volume:
external: false
postiz-redis-data:
external: false
postiz-config:
external: false
postiz-uploads:
external: false
networks:
postiz-network:
external: false