doc: Docker, and various doc cleanup
This commit is contained in:
parent
db2732e180
commit
42e4468ef1
|
|
@ -169,4 +169,4 @@ You can look at the other integration to understand what data to put inside.
|
|||
And add the new provider to the list.
|
||||
```typescript show.all.providers.tsx
|
||||
{identifier: 'providerName', component: DefaultImportFromHighOrderProvider},
|
||||
```
|
||||
```
|
||||
|
|
@ -0,0 +1,144 @@
|
|||
---
|
||||
title: Development Environment
|
||||
---
|
||||
|
||||
This is currently the recommended option to install Postiz in a supportable configuration. The docker images are in active and heavy development for now.
|
||||
|
||||
## Tested configurations
|
||||
|
||||
- MacOS
|
||||
- Linux (Fedora 40)
|
||||
|
||||
Naturally you can use these instructions to setup a development environment on any platform, but there may not be much experience in the community to help you with any issues you may encounter.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
This guide will ask you to install & configure several services exaplained below.
|
||||
|
||||
### Prerequisite Cloud Services
|
||||
|
||||
- **[Resend account](https://resend.com)** - for user activation and email notifications.
|
||||
- **[Cloudflare R2](https://cloudfalre.com)** - for uploads (optional, can use local machine), and storing account data.
|
||||
- **Social Media API details** - various API keys and secrets (more details later) for services you want to use; reddit, X, Instagram, etc..
|
||||
|
||||
### Prerequisite Local Services
|
||||
|
||||
- **Node.js** - for running the code! (version 18+)
|
||||
- **PostgreSQL** - or any other SQL database (instructions beleow suggest Docker)
|
||||
- **Redis** - for handling worker queues (instructions below suggest Docker)
|
||||
|
||||
We have some messages from users who are using Windows, which should work, but they are not tested well yet.
|
||||
|
||||
## Installation Instructions
|
||||
|
||||
### NodeJS (version 18+)
|
||||
|
||||
A complete guide of how to install NodeJS can be found [here](https://nodejs.org/en/download/).
|
||||
|
||||
### PostgreSQL (or any other SQL database) & Redis
|
||||
|
||||
You can choose **Option A** to **Option B** to install the database.
|
||||
|
||||
#### Option A) Postgres and Redis as Single containers
|
||||
|
||||
You can install [Docker](https://www.docker.com/products/docker-desktop) and run:
|
||||
|
||||
```bash Terminal
|
||||
docker run -e POSTGRES_USER=root -e POSTGRES_PASSWORD=your_password --name postgres -p 5432:5432 -d postgres
|
||||
docker run --name redis -p 6379:6379 -d redis
|
||||
```
|
||||
|
||||
#### Option B) Postgres and Redis as docker-compose
|
||||
|
||||
Download the [docker-compose.yaml file here](https://raw.githubusercontent.com/gitroomhq/postiz-app/main/docker-compose.dev.yaml),
|
||||
or grab it from the repository in the next step.
|
||||
|
||||
```bash Terminal
|
||||
docker compose -f "docker-compose.dev.yaml" up
|
||||
```
|
||||
|
||||
## Build Postiz
|
||||
|
||||
<Steps>
|
||||
<Step title="Clone the repository">
|
||||
```bash Terminal
|
||||
git clone https://github.com/gitroomhq/gitroom
|
||||
```
|
||||
</Step>
|
||||
|
||||
<Step title="Set environment variables">
|
||||
Copy the `.env.example` file to `.env` and fill in the values
|
||||
|
||||
```bash .env
|
||||
# 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"
|
||||
|
||||
# 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"
|
||||
RESEND_API_KEY="Resend API KEY"
|
||||
UPLOAD_DIRECTORY="optional: your upload directory path if you host your files locally"
|
||||
NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY="optional: your upload directory slug if you host your files locally"
|
||||
CLOUDFLARE_ACCOUNT_ID="Cloudflare R2 Account ID"
|
||||
CLOUDFLARE_ACCESS_KEY="Cloudflare R2 Access Key"
|
||||
CLOUDFLARE_SECRET_ACCESS_KEY="Cloudflare R2 Secret Access Key"
|
||||
CLOUDFLARE_BUCKETNAME="Cloudflare R2 Bucket Name"
|
||||
CLOUDFLARE_BUCKET_URL="Cloudflare R2 Backet URL"
|
||||
|
||||
# Developer Settings
|
||||
NX_ADD_PLUGINS=false
|
||||
IS_GENERAL="true" # required for now
|
||||
```
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Install the dependencies">
|
||||
```bash Terminal
|
||||
npm install
|
||||
```
|
||||
</Step>
|
||||
|
||||
<Step title="Generate the prisma client and run the migrations">
|
||||
```bash Terminal
|
||||
npm run prisma-db-push
|
||||
```
|
||||
</Step>
|
||||
|
||||
<Step title="Run the project">
|
||||
```bash Terminal
|
||||
npm run dev
|
||||
```
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
If everything is running successfully, open http://localhost:4200 in your browser!
|
||||
|
||||
If everything is not running - you had errors in the steps above, please head over to our [support](/support) page.
|
||||
|
||||
## Next Steps
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="How it works" icon="screwdriver-wrench" href="/howitworks">
|
||||
Learn the architecture of the project
|
||||
</Card>
|
||||
<Card title="Email notifications" icon="envelope" href="/emails">
|
||||
Set up email for notifications
|
||||
</Card>
|
||||
<Card title="GitHub" icon="code-branch" href="/github">
|
||||
Set up github for authentication and sync
|
||||
</Card>
|
||||
<Card title="Providers" icon="linkedin" href="/providers/x/x">
|
||||
Set up providers such as Linkedin, X and Reddit
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
---
|
||||
title: Docker Compose
|
||||
---
|
||||
|
||||
import EarlyDoc from '/snippets/earlydoc.mdx';
|
||||
import DockerDatabase from '/snippets/docker-database.mdx';
|
||||
import DockerEnvvarApps from '/snippets/docker-envvar-apps.mdx';
|
||||
|
||||
<EarlyDoc />
|
||||
<DockerDatabase />
|
||||
|
||||
# Example `docker-compose.yml` file
|
||||
|
||||
```yaml
|
||||
services:
|
||||
postiz:
|
||||
image: ghcr.io/gitroomhq/postiz-app:latest
|
||||
container_name: postiz
|
||||
restart: always
|
||||
volumes:
|
||||
- ./config:/config/ # Should contain your .env file
|
||||
ports:
|
||||
- 4200:4200
|
||||
- 3000:3000
|
||||
networks:
|
||||
- postiz-network
|
||||
|
||||
postiz-postgres:
|
||||
image: postgres:14.5
|
||||
container_name: postiz-postgres
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_PASSWORD: postiz-local-pwd
|
||||
POSTGRES_USER: postiz-local
|
||||
POSTGRES_DB: postiz-db-local
|
||||
volumes:
|
||||
- postgres-volume:/var/lib/postgresql/data
|
||||
ports:
|
||||
- 5432:5432
|
||||
networks:
|
||||
- postiz-network
|
||||
postiz-pg-admin:
|
||||
image: dpage/pgadmin4
|
||||
container_name: postiz-pg-admin
|
||||
restart: always
|
||||
ports:
|
||||
- 8081:80
|
||||
environment:
|
||||
PGADMIN_DEFAULT_EMAIL: admin@admin.com
|
||||
PGADMIN_DEFAULT_PASSWORD: admin
|
||||
networks:
|
||||
- postiz-network
|
||||
postiz-redis:
|
||||
image: redis:7.2
|
||||
container_name: postiz-redis
|
||||
restart: always
|
||||
ports:
|
||||
- 6379:6379
|
||||
|
||||
volumes:
|
||||
postgres-volume:
|
||||
external: false
|
||||
|
||||
networks:
|
||||
postiz-network:
|
||||
external: false
|
||||
```
|
||||
|
||||
<DockerEnvvarApps />
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
title: Docker
|
||||
---
|
||||
|
||||
import EarlyDoc from '/snippets/earlydoc.mdx';
|
||||
import DockerDatabase from '/snippets/docker-database.mdx';
|
||||
import DockerEnvvarApps from '/snippets/docker-envvar-apps.mdx';
|
||||
|
||||
<EarlyDoc />
|
||||
|
||||
<DockerDatabase />
|
||||
|
||||
|
||||
# Create the container on command line
|
||||
|
||||
```bash
|
||||
docker create --name postiz -v ./config:/config -p 4200:4200 -p 3000:3000 ghcr.io/postiz/postiz:latest
|
||||
```
|
||||
|
||||
<DockerEnvvarApps />
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
title: Helm
|
||||
---
|
||||
|
||||
import EarlyDoc from '/snippets/earlydoc.mdx';
|
||||
import DockerDatabase from '/snippets/docker-database.mdx';
|
||||
|
||||
<EarlyDoc />
|
||||
<DockerDatabase />
|
||||
|
||||
Postiz has a helm chart that is in very active development. You can find it here;
|
||||
|
||||
https://github.com/gitroomhq/postiz-helmchart
|
||||
|
|
@ -61,6 +61,15 @@
|
|||
"pages": [
|
||||
"introduction",
|
||||
"quickstart",
|
||||
{
|
||||
"group": "Install",
|
||||
"pages": [
|
||||
"installation/development",
|
||||
"installation/docker",
|
||||
"installation/docker-compose",
|
||||
"installation/kubernetes-helm"
|
||||
]
|
||||
},
|
||||
"howitworks",
|
||||
"emails",
|
||||
"github",
|
||||
|
|
@ -73,9 +82,15 @@
|
|||
"providers/articles"
|
||||
]
|
||||
},
|
||||
"providers/how-to-add-provider"
|
||||
"support"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "Developer Guide",
|
||||
"pages": [
|
||||
"developer-guide/how-to-add-provider"
|
||||
]
|
||||
}
|
||||
],
|
||||
"footerSocials": {
|
||||
"twitter": "https://twitter.com/nevodavid",
|
||||
|
|
|
|||
|
|
@ -6,115 +6,13 @@ At the moment it is necessary to build the project locally - some dependencies
|
|||
like redis and postgres can run as docker containers, but there is no docker
|
||||
container for Postiz just yet.
|
||||
|
||||
## Prerequisites
|
||||
## Self Hosted installation options
|
||||
|
||||
To run the project you need to have multiple things:
|
||||
You can choose between the following installation options;
|
||||
|
||||
- Node.js (version 18+)
|
||||
- PostgreSQL (or any other SQL database)
|
||||
- Redis
|
||||
- Resend account
|
||||
- Cloudflare R2 for uploads (optional, can use local machine)
|
||||
- Social Media Client and Secret (more details later)
|
||||
* [Development](/installation/development) - The only installation option that is offically supported at the moment.
|
||||
* [Docker (standalone)](/installation/docker) - Run from the command line with Docker.
|
||||
* [Docker Compose](/installation/docker-compose) - Run with Docker Compose.
|
||||
* [Helm](/installation/kubernetes-helm) - Run with Kubernetes + Helm.
|
||||
|
||||
### NodeJS (version 18+)
|
||||
|
||||
A complete guide of how to install NodeJS can be found [here](https://nodejs.org/en/download/).
|
||||
|
||||
### PostgreSQL (or any other SQL database) & Redis
|
||||
|
||||
Make sure you have PostgreSQL installed on your machine.
|
||||
|
||||
#### Option A) Postgres and Redis as Single containers
|
||||
|
||||
You can install [Docker](https://www.docker.com/products/docker-desktop) and run:
|
||||
|
||||
```bash Terminal
|
||||
docker run -e POSTGRES_USER=root -e POSTGRES_PASSWORD=your_password --name postgres -p 5432:5432 -d postgres
|
||||
docker run --name redis -p 6379:6379 -d redis
|
||||
```
|
||||
|
||||
#### Option B) Postgres and Redis as docker-compose
|
||||
|
||||
Download the [docker-compose.yaml file here](https://raw.githubusercontent.com/gitroomhq/postiz-app/main/docker-compose.dev.yaml),
|
||||
or grab it from the repository in the next step.
|
||||
|
||||
```bash Terminal
|
||||
docker compose -f "docker-compose.dev.yaml" up
|
||||
```
|
||||
|
||||
## Build Postiz
|
||||
|
||||
<Steps>
|
||||
<Step title="Clone the repository">
|
||||
```bash Terminal
|
||||
git clone https://github.com/gitroomhq/gitroom
|
||||
```
|
||||
</Step>
|
||||
|
||||
<Step title="Set environment variables">
|
||||
Copy the `.env.example` file to `.env` and fill in the values
|
||||
|
||||
```bash .env
|
||||
DATABASE_URL="postgres database URL i.g. postgresql://postiz-local:postiz-local-pwd@0.0.0.0:5432/postiz-db-local"
|
||||
REDIS_URL="redis database URL"
|
||||
JWT_SECRET="random string for your JWT secret, make it long"
|
||||
FRONTEND_URL="By default: http://localhost:4200"
|
||||
NEXT_PUBLIC_BACKEND_URL="By default: http://localhost:3000"
|
||||
BACKEND_INTERNAL_URL="If you use docker, you might want something like: http://backend:3000"
|
||||
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"
|
||||
RESEND_API_KEY="Resend API KEY"
|
||||
UPLOAD_DIRECTORY="optional: your upload directory path if you host your files locally"
|
||||
NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY="optional: your upload directory slug if you host your files locally"
|
||||
CLOUDFLARE_ACCOUNT_ID="Cloudflare R2 Account ID"
|
||||
CLOUDFLARE_ACCESS_KEY="Cloudflare R2 Access Key"
|
||||
CLOUDFLARE_SECRET_ACCESS_KEY="Cloudflare R2 Secret Access Key"
|
||||
CLOUDFLARE_BUCKETNAME="Cloudflare R2 Bucket Name"
|
||||
CLOUDFLARE_BUCKET_URL="Cloudflare R2 Backet URL"
|
||||
NX_ADD_PLUGINS=false
|
||||
IS_GENERAL="true" # required for now
|
||||
```
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Install the dependencies">
|
||||
```bash Terminal
|
||||
npm install
|
||||
```
|
||||
</Step>
|
||||
|
||||
<Step title="Generate the prisma client and run the migrations">
|
||||
```bash Terminal
|
||||
npm run prisma-db-push
|
||||
```
|
||||
</Step>
|
||||
|
||||
<Step title="Run the project">
|
||||
```bash Terminal
|
||||
npm run dev
|
||||
```
|
||||
</Step>
|
||||
</Steps>
|
||||
You have to follow all the tabs in the "Developers" menu to install Gitroom
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="How it works" icon="screwdriver-wrench" href="/howitworks">
|
||||
Learn the architecture of the project
|
||||
</Card>
|
||||
<Card title="Email notifications" icon="envelope" href="/emails">
|
||||
Set up email for notifications
|
||||
</Card>
|
||||
<Card title="GitHub" icon="code-branch" href="/github">
|
||||
Set up github for authentication and sync
|
||||
</Card>
|
||||
<Card title="Providers" icon="linkedin" href="/providers/x/x">
|
||||
Set up providers such as Linkedin, X and Reddit
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
<Warning>
|
||||
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.
|
||||
</Warning>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
## Controlling container services
|
||||
The environment variable POSTIZ_APPS defaults to "", which means that all
|
||||
services will be started in a single container. However, you can only start
|
||||
specific services within the docker container by changing this environement variable.
|
||||
|
||||
For most deployments, starting all services is fine. To scale out, you might want
|
||||
to start individual containers for "frontend", "backend", "worker" and "cron".
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<Info>
|
||||
**NOTE:** This page is marked "earlydoc", or "early documentation", which means it might
|
||||
be brief, or contain information about parts of the app that are under heavy development.
|
||||
If you encounter issues with instructions found here, please check out the [support](/support)
|
||||
page for options.
|
||||
</Info>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
## My Snippet
|
||||
|
||||
<Info>This is an example of a reusable snippet</Info>
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
title: Support
|
||||
---
|
||||
|
||||
Sometimes, things can go wrong, or you need some help!
|
||||
|
||||
Note that the Self Hosted version of Postiz is supported by the community in their
|
||||
free time, on a best-efforts basis. Please post your question and be patient.
|
||||
|
||||
- [Discord](https://discord.com/invite/sf7QjTcX37) - Flexible chat, with screenshots and screen sharing, probably the best option for support.
|
||||
- [GitHub issue](https://github.com/gitroomhq/postiz-app/issues/new/choose) - backup option if you are unable to use Discord.
|
||||
|
||||
## How to effectively ask for support
|
||||
|
||||
Try to follow this guide when asking for support, in this order; **Goal, Environment, Changes, Results**.
|
||||
|
||||
- **Goal:** Start off by explaining what you were trying to do
|
||||
- _I want to schedule a post on Reddit at 6pm_
|
||||
- _I want to run in a Linux container on a Raspberry Pi_
|
||||
- _I want to use a custom domain name_
|
||||
|
||||
- **Environment:** - Share the relevant parts about your environment. Web App issues; Are you using Firefox, Chrome, etc? Installation/Other issues; a Mac, Linux, Windows, how did you install?
|
||||
- _I'm using Firefox on Windows 10_
|
||||
- _I'm using a Raspberry Pi 4 with Ubuntu 20.04, and Node version 18_
|
||||
- _This is a new installation on a Mac_
|
||||
|
||||
- **Changed:** - Most likely something has changed, what is it?
|
||||
- _I updated my browser to the latest version and now ..._
|
||||
- _I found a change in the latest version and now ..._
|
||||
- _I think this used to work, but now..._
|
||||
|
||||
- **Results:** - What happened? What did you expect to happen?
|
||||
- _I see a blank screen_
|
||||
- _I see an error message_
|
||||
- _I see a 404 page_
|
||||
Loading…
Reference in New Issue