diff --git a/.env.example b/.env.example index d06208b6..7528cf44 100644 --- a/.env.example +++ b/.env.example @@ -1,38 +1,44 @@ -DATABASE_URL="" -REDIS_URL="" -UPLOAD_DIRECTORY="" -NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY="" -STRIPE_PUBLISHABLE_KEY="" -STRIPE_SECRET_KEY="" -STRIPE_SIGNING_KEY="" -JWT_SECRET="" -FRONTEND_URL="" -MAIN_URL="" -NEXT_PUBLIC_BACKEND_URL="" -BACKEND_INTERNAL_URL="" -X_API_KEY="" -X_API_SECRET="" -X_CLIENT="" -X_SECRET="" -LINKEDIN_CLIENT_ID="" -LINKEDIN_CLIENT_SECRET="" -REDDIT_CLIENT_ID="" -REDDIT_CLIENT_SECRET="" -GITHUB_CLIENT_ID="" -GITHUB_CLIENT_SECRET="" -RESEND_API_KEY="" +# Required Settings +DATABASE_URL="postgresql://postiz-user:postiz-password@localhost:5432/postiz-db-local" +REDIS_URL="redis://localhost:6379" +JWT_SECRET="random string for your JWT secret, make it long" +FRONTEND_URL="http://localhost:4200" +NEXT_PUBLIC_BACKEND_URL="http://localhost:3000" +BACKEND_INTERNAL_URL="http://localhost:3000" + +# Optional. Your upload directory path if you host your files locally. +UPLOAD_DIRECTORY="/opt/postiz/uploads/" + +# Optional: your upload directory slug if you host your files locally. +NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY="/opt/postiz/uploads/" + +## This is a dummy key, you must create your own from Resend. +## If this variable exists, user activation is required. +## If it is commented out, users are activated automatically. +#RESEND_API_KEY="RzeTwHijvxvPUerScFcenUZUALuQJzSaGSMJ" +#EMAIL_FROM_ADDRESS="" +#EMAIL_FROM_NAME="" + +## These are dummy values, you must create your own from Cloudflare. +## Remember to set your public internet IP address in the allow-list for the API token. +CLOUDFLARE_ACCOUNT_ID="QhcMSXQyPuMCRpSQcSYdEuTYgHeCXHbu" +CLOUDFLARE_ACCESS_KEY="dcfCMSuFEeCNfvByUureMZEfxWJmDqZe" +CLOUDFLARE_SECRET_ACCESS_KEY="zTTMXBmtyLPwHEdpACGHgDgzRTNpTJewiNriLnUS" +CLOUDFLARE_BUCKETNAME="postiz" +CLOUDFLARE_BUCKET_URL="https://QhcMSXQyPuMCRpSQcSYdEuTYgHeCXHbu.r2.cloudflarestorage.com/" +CLOUDFLARE_REGION="auto" + +# Social Media API Settings +X_API_KEY="Twitter API key for normal oAuth not oAuth2" +X_API_SECRET="Twitter API secret for normal oAuth not oAuth2" +LINKEDIN_CLIENT_ID="Linkedin Client ID" +LINKEDIN_CLIENT_SECRET="Linkedin Client Secret" +REDDIT_CLIENT_ID="Reddit Client ID" +REDDIT_CLIENT_SECRET="Linkedin Client Secret" +GITHUB_CLIENT_ID="GitHub Client ID" +GITHUB_CLIENT_SECRET="GitHub Client Secret" BEEHIIVE_API_KEY="" BEEHIIVE_PUBLICATION_ID="" -NX_ADD_PLUGINS=false -CLOUDFLARE_ACCOUNT_ID="" -CLOUDFLARE_ACCESS_KEY="" -CLOUDFLARE_SECRET_ACCESS_KEY="" -CLOUDFLARE_BUCKETNAME="" -CLOUDFLARE_BUCKET_URL="" -CLOUDFLARE_REGION="" -FEE_AMOUNT=0.05 -OPENAI_API_KEY="" -NEXT_PUBLIC_DISCORD_SUPPORT="" THREADS_APP_ID="" THREADS_APP_SECRET="" FACEBOOK_APP_ID="" @@ -45,7 +51,19 @@ PINTEREST_CLIENT_ID="" PINTEREST_CLIENT_SECRET="" DRIBBBLE_CLIENT_ID="" DRIBBBLE_CLIENT_SECRET="" -IS_GENERAL="true" -EMAIL_FROM_ADDRESS="" -EMAIL_FROM_NAME="" + + +# Misc Settings +OPENAI_API_KEY="" +NEXT_PUBLIC_DISCORD_SUPPORT="" NEXT_PUBLIC_POLOTNO="Polotno key for the gallery" + +# Payment settings +FEE_AMOUNT=0.05 +STRIPE_PUBLISHABLE_KEY="" +STRIPE_SECRET_KEY="" +STRIPE_SIGNING_KEY="" + +# Developer Settings +NX_ADD_PLUGINS=false +IS_GENERAL="true" # required for now diff --git a/apps/docs/installation/docker-compose.mdx b/apps/docs/installation/docker-compose.mdx index 21b01799..d4e009b7 100644 --- a/apps/docs/installation/docker-compose.mdx +++ b/apps/docs/installation/docker-compose.mdx @@ -3,11 +3,9 @@ title: Docker Compose --- import EarlyDoc from '/snippets/earlydoc.mdx'; -import DockerDatabase from '/snippets/docker-database.mdx'; import DockerEnvvarApps from '/snippets/docker-envvar-apps.mdx'; - # Example `docker-compose.yml` file diff --git a/apps/docs/installation/docker.mdx b/apps/docs/installation/docker.mdx index 2c9484ac..154cdea6 100644 --- a/apps/docs/installation/docker.mdx +++ b/apps/docs/installation/docker.mdx @@ -3,18 +3,25 @@ title: Docker --- import EarlyDoc from '/snippets/earlydoc.mdx'; -import DockerDatabase from '/snippets/docker-database.mdx'; import DockerEnvvarApps from '/snippets/docker-envvar-apps.mdx'; - +# Set environment variables +Postiz configuration is entirely via environment variables for now. You might be used to setting environment variables when starting containers, +however postiz needs a LOT of environment variables, so setting these on command line or in a docker-compose is probably not practical for long +term maintainability. + +It is recommended to use a `.env` file, which the Postiz containers look for in /config. Docker will automatically create this file for you on a +docker volume the first time you start up Postiz. + +The default .env file can be found here; [example .env file](https://raw.githubusercontent.com/gitroomhq/postiz-app/main/.env.example) # Create the container on command line ```bash -docker create --name postiz -v ./config:/config -p 4200:4200 -p 3000:3000 ghcr.io/postiz/postiz-app:latest +docker create --name postiz -v ./config:/config -p 4200:4200 -p 3000:3000 ghcr.io/gitroomhq/postiz-app:latest ``` diff --git a/apps/docs/snippets/docker-database.mdx b/apps/docs/snippets/docker-database.mdx deleted file mode 100644 index babd2cf5..00000000 --- a/apps/docs/snippets/docker-database.mdx +++ /dev/null @@ -1,6 +0,0 @@ - -The container images do not yet provide automatic database "installation" -(migrations). This must be done manually outside of the docker containers for now. - -This is being worked on with a high priority. - diff --git a/var/docker/entrypoint.sh b/var/docker/entrypoint.sh index 2e98950e..f896d960 100755 --- a/var/docker/entrypoint.sh +++ b/var/docker/entrypoint.sh @@ -15,6 +15,9 @@ if [[ "$POSTIZ_APPS" -eq "" ]]; then POSTIZ_APPS="frontend workers cron backend" fi +echo "Running database migrations" +npm run prisma-db-push + mkdir -p /etc/supervisor.d/ if [[ "$POSTIZ_APPS" == *"frontend"* ]]; then