Skip to content

Commit 35a42f9

Browse files
committed
Merge remote-tracking branch 'origin/main'
2 parents 826846e + 86fa415 commit 35a42f9

File tree

4 files changed

+147
-13
lines changed

4 files changed

+147
-13
lines changed

pages/_app.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import Script from "next/script";
12
import "../globals.css";
23
import { AppProps } from "next/app";
34
import { IBM_Plex_Sans } from "next/font/google";
@@ -7,10 +8,16 @@ const plex = IBM_Plex_Sans({
78
weight: ["400", "500", "600", "700"],
89
});
910

10-
export default function App({ Component, pageProps }) {
11+
export default function App({ Component, pageProps }: AppProps) {
1112
return (
1213
<main className={plex.className}>
13-
<Component {...pageProps} />
14+
<Script
15+
src="https://crawlchat.app/embed.js"
16+
id="crawlchat-script"
17+
data-id="68ac269d2961657c4b7924a9"
18+
strategy="afterInteractive"
19+
/>
20+
<Component {...pageProps} />
1421
</main>
1522
);
1623
}

pages/installation/development.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ title: Development Environment
55
import { Cards, Steps } from 'nextra/components';
66
import Prereqs from '../../components/snippets/installation-pre-reqs.mdx';
77

8-
This is currently the recommended option to install Postiz in a supportable configuration. The docker images are in active and heavy development for now.
8+
Only use this method if you cannot use docker or want to develop on Postiz.
9+
(Docker-Compose)[https://docs.postiz.com/installation/docker-compose] is the recommended Method.
910

1011
## Tested configurations
1112

pages/installation/docker-compose.mdx

Lines changed: 129 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ title: Docker Compose
55
import { Callout } from "nextra/components";
66
import DockerEnvvarApps from '../../components/snippets/docker-envvar-apps.mdx';
77
import { Cards } from 'nextra/components';
8-
import Prereqs from '../../components/snippets/installation-pre-reqs.mdx';
98

109
<Callout>
1110
Watch the Tutorial for docker-compose install: https://m.youtube.com/watch?v=A6CjAmJOWvA&t=5s
@@ -17,7 +16,48 @@ This guide assumes that you have docker installed, with a reasonable amount of r
1716

1817
- Virtual Machine, Ubuntu 24.04, 2Gb RAM, 2 vCPUs.
1918

20-
<Prereqs />
19+
## Installation Prerequisites
20+
21+
This section will ask you to install & configure several services exaplained below.
22+
23+
### Network Requirements
24+
25+
#### HTTPS / HTTP Requirement
26+
27+
Postiz marks it's login cookies as Secure, this is called “secure context” in modern web browsers.
28+
29+
If you want to use an secure Login Process, you need to set up an Certificate, which can be done via Reverse Proxy like Caddy or Nginx.
30+
31+
If you cannot use a certificate (HTTPS), add the following environment variable to your `.env` file:
32+
```env
33+
NOT_SECURED=true
34+
```
35+
**Security Warning**: Setting `NOT_SECURED=true` disables secure cookie requirements. This should only be used in development environments or when you fully understand the security implications. Not recommended for production use.
36+
37+
#### Network Ports
38+
39+
- **5000/tcp**: for a single **single entry point** for postiz when running in a container. This is the one port your reverse proxy should talk to.
40+
- **4200/tcp**: for the **Frontend** service (the web interface). Most users **do not** need to expose this port publicly.
41+
- **3000/tcp**: for the **Backend** service (the API). Most users **do not** need to expose this port publicly.
42+
- **5432/tcp**: for the **Postgres** container. Most users **do not** need to expose this port publicly.
43+
- **6379/tcp**: for the **Redis** container. Most users **do not** need to expose this port publicly.
44+
45+
If you are using docker images, we recommend just exposing port 5000 to your external proxy. This will reduce the likelihood of misconfiguration, and make it easier to manage your network.
46+
47+
```mermaid
48+
graph TD;
49+
A[Your Browser] -->|HTTPS 443/tcp| B[Your Reverse Proxy]
50+
B -->|HTTP 5000/tcp| C["Internal Proxy (Caddy)"]
51+
52+
subgraph "Postiz Container"
53+
C -->|4200/tcp| D[Frontend Service]
54+
C -->|3000/tcp| E[Backend Service]
55+
C -->|/api| H[uploads]
56+
end
57+
58+
E -->|5432/tcp| F[Postgres Container]
59+
E -->|6379/tcp| G[Redis Container]
60+
```
2161

2262
### Configuration uses environment variables
2363

@@ -41,24 +81,103 @@ services:
4181
container_name: postiz
4282
restart: always
4383
environment:
44-
# You must change these. Replace `postiz.your-server.com` with your DNS name - this needs to be exactly the URL you're accessing Postiz on.
84+
# === Required Settings
4585
MAIN_URL: "https://postiz.your-server.com"
4686
FRONTEND_URL: "https://postiz.your-server.com"
4787
NEXT_PUBLIC_BACKEND_URL: "https://postiz.your-server.com/api"
4888
JWT_SECRET: "random string that is unique to every install - just type random characters here!"
49-
50-
# These defaults are probably fine, but if you change your user/password, update it in the
51-
# postiz-postgres or postiz-redis services below.
5289
DATABASE_URL: "postgresql://postiz-user:postiz-password@postiz-postgres:5432/postiz-db-local"
5390
REDIS_URL: "redis://postiz-redis:6379"
5491
BACKEND_INTERNAL_URL: "http://localhost:3000"
55-
IS_GENERAL: "true" # Required for self-hosting.
56-
DISABLE_REGISTRATION: "false" # Only allow single registration, then disable signup
57-
# The container images are pre-configured to use /uploads for file storage.
58-
# You probably should not change this unless you have a really good reason!
92+
IS_GENERAL: "true"
93+
DISABLE_REGISTRATION: "false"
94+
95+
# === Storage Settings
5996
STORAGE_PROVIDER: "local"
6097
UPLOAD_DIRECTORY: "/uploads"
6198
NEXT_PUBLIC_UPLOAD_DIRECTORY: "/uploads"
99+
100+
# === Cloudflare (R2) Settings
101+
CLOUDFLARE_ACCOUNT_ID: "your-account-id"
102+
CLOUDFLARE_ACCESS_KEY: "your-access-key"
103+
CLOUDFLARE_SECRET_ACCESS_KEY: "your-secret-access-key"
104+
CLOUDFLARE_BUCKETNAME: "your-bucket-name"
105+
CLOUDFLARE_BUCKET_URL: "https://your-bucket-url.r2.cloudflarestorage.com/"
106+
CLOUDFLARE_REGION: "auto"
107+
108+
# === Social Media API Settings
109+
X_API_KEY: ""
110+
X_API_SECRET: ""
111+
LINKEDIN_CLIENT_ID: ""
112+
LINKEDIN_CLIENT_SECRET: ""
113+
REDDIT_CLIENT_ID: ""
114+
REDDIT_CLIENT_SECRET: ""
115+
GITHUB_CLIENT_ID: ""
116+
GITHUB_CLIENT_SECRET: ""
117+
BEEHIIVE_API_KEY: ""
118+
BEEHIIVE_PUBLICATION_ID: ""
119+
THREADS_APP_ID: ""
120+
THREADS_APP_SECRET: ""
121+
FACEBOOK_APP_ID: ""
122+
FACEBOOK_APP_SECRET: ""
123+
YOUTUBE_CLIENT_ID: ""
124+
YOUTUBE_CLIENT_SECRET: ""
125+
TIKTOK_CLIENT_ID: ""
126+
TIKTOK_CLIENT_SECRET: ""
127+
PINTEREST_CLIENT_ID: ""
128+
PINTEREST_CLIENT_SECRET: ""
129+
DRIBBBLE_CLIENT_ID: ""
130+
DRIBBBLE_CLIENT_SECRET: ""
131+
DISCORD_CLIENT_ID: ""
132+
DISCORD_CLIENT_SECRET: ""
133+
DISCORD_BOT_TOKEN_ID: ""
134+
SLACK_ID: ""
135+
SLACK_SECRET: ""
136+
SLACK_SIGNING_SECRET: ""
137+
MASTODON_URL: "https://mastodon.social"
138+
MASTODON_CLIENT_ID: ""
139+
MASTODON_CLIENT_SECRET: ""
140+
141+
# === OAuth & Authentik Settings
142+
NEXT_PUBLIC_POSTIZ_OAUTH_DISPLAY_NAME: "Authentik"
143+
NEXT_PUBLIC_POSTIZ_OAUTH_LOGO_URL: "https://raw.githubusercontent.com/walkxcode/dashboard-icons/master/png/authentik.png"
144+
POSTIZ_GENERIC_OAUTH: "false"
145+
POSTIZ_OAUTH_URL: "https://auth.example.com"
146+
POSTIZ_OAUTH_AUTH_URL: "https://auth.example.com/application/o/authorize"
147+
POSTIZ_OAUTH_TOKEN_URL: "https://auth.example.com/application/o/token"
148+
POSTIZ_OAUTH_USERINFO_URL: "https://authentik.example.com/application/o/userinfo"
149+
POSTIZ_OAUTH_CLIENT_ID: ""
150+
POSTIZ_OAUTH_CLIENT_SECRET: ""
151+
# POSTIZ_OAUTH_SCOPE: "openid profile email" # Optional: uncomment to override default scope
152+
153+
# === Misc Settings
154+
OPENAI_API_KEY: ""
155+
NEXT_PUBLIC_DISCORD_SUPPORT: ""
156+
NEXT_PUBLIC_POLOTNO: ""
157+
API_LIMIT: 30
158+
159+
# === Payment / Stripe Settings
160+
FEE_AMOUNT: 0.05
161+
STRIPE_PUBLISHABLE_KEY: ""
162+
STRIPE_SECRET_KEY: ""
163+
STRIPE_SIGNING_KEY: ""
164+
STRIPE_SIGNING_KEY_CONNECT: ""
165+
166+
# === Developer Settings
167+
NX_ADD_PLUGINS: false
168+
169+
# === Short Link Service Settings (Optional - leave blank if unused)
170+
# DUB_TOKEN: ""
171+
# DUB_API_ENDPOINT: "https://api.dub.co"
172+
# DUB_SHORT_LINK_DOMAIN: "dub.sh"
173+
# SHORT_IO_SECRET_KEY: ""
174+
# KUTT_API_KEY: ""
175+
# KUTT_API_ENDPOINT: "https://kutt.it/api/v2"
176+
# KUTT_SHORT_LINK_DOMAIN: "kutt.it"
177+
# LINK_DRIP_API_KEY: ""
178+
# LINK_DRIP_API_ENDPOINT: "https://api.linkdrip.com/v1/"
179+
# LINK_DRIP_SHORT_LINK_DOMAIN: "dripl.ink"
180+
62181
volumes:
63182
- postiz-config:/config/
64183
- postiz-uploads:/uploads/

pages/providers/tiktok.mdx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ This integration requires that you have a TikTok developer account. It also requ
1515
TikTok will also not allow http:// for your app redirect URI, so you will need to be accessing Postiz from HTTPS.
1616
</Callout>
1717

18+
<Callout type="warning">
19+
**NOTE:** TikTok fetches media via pull_from_url. Your media files must be publicly reachable over HTTPS; localhost or private routes (e.g., /uploads) will fail.
20+
Expose your uploads via a reverse proxy (e.g., [Caddy](/reverse-proxies/caddy/)) or use object storage/CDN such as [Cloudflare R2](/configuration/r2/) with public access.
21+
22+
Ensure the media domain is listed under your TikTok developer account’s verified sites.
23+
</Callout>
24+
1825
<Steps>
1926

2027
### Create you app

0 commit comments

Comments
 (0)