diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4dd75430..9280e5c4 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,3 +1,4 @@ +--- name: Build on: @@ -23,5 +24,16 @@ jobs: cache-dependency-path: | **/package-lock.json + # https://nextjs.org/docs/pages/building-your-application/deploying/ci-build-caching#github-actions + - uses: actions/cache@v4 + with: + path: | + ~/.npm + ${{ github.workspace }}/.next/cache + + key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx') }} + restore-keys: | + ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}- + - run: npm ci - run: npm run build diff --git a/apps/docs/emails.mdx b/apps/docs/emails.mdx index 1e45b704..e7c7ea45 100644 --- a/apps/docs/emails.mdx +++ b/apps/docs/emails.mdx @@ -3,14 +3,16 @@ title: Email Notifications description: How to send notifications to users --- -At the moment we are using Resend to send email notifications to users, and might be changed the Novu later. +Postiz uses Resend to send email notifications to users. Emails are currently +required as part of the new-user creation process, which sends an activation +email. -Register to [Resend](https://resend.com) connect your domain. -Copy your API Key. -Head over to .env file and add the following line. +* Register to [Resend](https://resend.com), and connect your domain. +* Copy your API Key from the Resend control panel. +* Open the .env file and edit the following line. ```env -RESEND_API_KEY="" +RESEND_API_KEY="" ``` -Feel free to contribute other providers to send email notifications. \ No newline at end of file +Feel free to contribute other providers to send email notifications. diff --git a/apps/docs/howitworks.mdx b/apps/docs/howitworks.mdx index 8232d9d8..aa1fa7dc 100644 --- a/apps/docs/howitworks.mdx +++ b/apps/docs/howitworks.mdx @@ -8,13 +8,13 @@ Unlike other NX project, this project has one `.env` file that is shared between It makes it easier to develop and deploy the project.

When deploying to websites like [Railway](https://railway.app) or [Heroku](https://heroku.com), you can use a shared environment variables for all the apps.

-**At the moment it has 6 project:** +**At the moment it has 6 projects:** -- **Backend** - NestJS based system -- **Workers** - NestJS based workers connected to a Redis Queue. -- **Cron** - NestJS scheduler to run cron jobs. -- **Frontend** - NextJS based control panel. -- **Docs** - Mintlify based documentation website. +- [Frontend](#frontend) - Provides the Web user interface, talks to the Backend. +- [Backend](#backend) - Does all the real work, provides an API for the frontend, and posts work to the redis queue. +- [Workers](#worker) - Consumes work from the Redis Queue. +- [Cron](#cron) - Run jobs at scheduled times. +- [Docs](#docs) - This documentation site! -If you don't, you can install [Docker](https://www.docker.com/products/docker-desktop) and run: +Make sure you have PostgreSQL installed on your machine. -```bash +#### 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 -``` - -### Redis - -Make sure you have Redis installed on your machine.
-If you don't, you can install [Docker](https://www.docker.com/products/docker-desktop) and run: - -```bash docker run --name redis -p 6379:6379 -d redis ``` -## Installation +#### 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 @@ -44,11 +52,11 @@ git clone https://github.com/gitroomhq/gitroom ``` - + Copy the `.env.example` file to `.env` and fill in the values ```bash .env -DATABASE_URL="postgres database URL" +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" @@ -73,21 +81,15 @@ CLOUDFLARE_BUCKET_URL="Cloudflare R2 Backet URL" NX_ADD_PLUGINS=false IS_GENERAL="true" # required for now ``` + - ```bash Terminal npm install ``` - -```bash Terminal -docker compose -f "docker-compose.dev.yaml" up -``` - - ```bash Terminal npm run prisma-db-push diff --git a/docker-compose.dev.yaml b/docker-compose.dev.yaml index 5948c53f..55641b1b 100644 --- a/docker-compose.dev.yaml +++ b/docker-compose.dev.yaml @@ -1,26 +1,40 @@ -version: '3.9' - services: - gitroom-postgres: + postiz-postgres: image: postgres:14.5 - container_name: gitroom-postgres + container_name: postiz-postgres restart: always environment: - POSTGRES_PASSWORD: gitroom-local-pwd - POSTGRES_USER: gitroom-local - POSTGRES_DB: gitroom-db-local + POSTGRES_PASSWORD: postiz-local-pwd + POSTGRES_USER: postiz-local + POSTGRES_DB: postiz-db-local volumes: - postgres-volume:/var/lib/postgresql/data ports: - 5432:5432 - gitroom-redis: + 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: gitroom-redis + container_name: postiz-redis restart: always ports: - 6379:6379 - volumes: postgres-volume: external: false + +networks: + postiz-network: + external: false