diff --git a/.github/workflows/build-containers-enterprise.yml b/.github/workflows/build-containers-enterprise.yml index 5dda12e3..1b675ba5 100644 --- a/.github/workflows/build-containers-enterprise.yml +++ b/.github/workflows/build-containers-enterprise.yml @@ -16,11 +16,11 @@ jobs: - name: Get Container Version id: getcontainerver run: | - echo "containerver=$(date +'%s')" >> "$GITHUB_OUTPUT" + echo "containerver=${{ github.ref_name }}" >> "$GITHUB_OUTPUT" build-containers: needs: build-containers-common - strategy: + strategy: matrix: include: - runnertags: ubuntu-latest @@ -37,6 +37,13 @@ jobs: submodules: 'true' token: ${{ secrets.PAT_TOKEN }} + - name: Set up QEMU (For ARM64 Builds) + if: matrix.arch == 'arm64' + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to ghcr uses: docker/login-action@v3 with: @@ -44,25 +51,15 @@ jobs: username: ${{ github.actor }} password: ${{ github.token }} - - name: docker build - run: ./var/docker/docker-build.sh - - - name: Print post-build debug info - run: | - docker images - - - name: docker tag - env: + - name: Build and Push Image + env: CONTAINERVER: ${{ needs.build-containers-common.outputs.containerver }} run: | - docker tag localhost/postiz ghcr.io/gitroomhq/postiz-app-enterprise:${{ matrix.arch }}-${{ env.CONTAINERVER }} - docker push ghcr.io/gitroomhq/postiz-app-enterprise:${{ matrix.arch }}-${{ env.CONTAINERVER }} - - docker tag localhost/postiz-devcontainer ghcr.io/gitroomhq/postiz-devcontainer-enterprise:${{ env.CONTAINERVER }} - docker push ghcr.io/gitroomhq/postiz-devcontainer-enterprise:${{ env.CONTAINERVER }} - - docker tag ghcr.io/gitroomhq/postiz-devcontainer-enterprise:${{ env.CONTAINERVER }} ghcr.io/gitroomhq/postiz-devcontainer-enterprise:latest - docker push ghcr.io/gitroomhq/postiz-devcontainer-enterprise:latest + docker buildx build --platform linux/${{ matrix.arch }} \ + -f Dockerfile.dev \ + -t ghcr.io/gitroomhq/postiz-app-enterprise:${{ env.CONTAINERVER }}-${{ matrix.arch }} \ + --provenance=false --sbom=false \ + --output "type=registry,name=ghcr.io/gitroomhq/postiz-app-enterprise:${{ env.CONTAINERVER }}-${{ matrix.arch }}" . build-container-manifest: needs: [build-containers, build-containers-common] @@ -75,13 +72,35 @@ jobs: username: ${{ github.actor }} password: ${{ github.token }} - - name: Create Docker Manifest - env: + - name: Create Docker Manifest + env: CONTAINERVER: ${{ needs.build-containers-common.outputs.containerver }} run: | - docker manifest create \ - ghcr.io/gitroomhq/postiz-app-enterprise:latest \ - ghcr.io/gitroomhq/postiz-app-enterprise:amd64-${{ env.CONTAINERVER }} \ - ghcr.io/gitroomhq/postiz-app-enterprise:arm64-${{ env.CONTAINERVER }} + # Verify the architecture images + echo "Verifying AMD64 image:" + docker buildx imagetools inspect ghcr.io/gitroomhq/postiz-app-enterprise:${{ env.CONTAINERVER }}-amd64 + + echo "Verifying ARM64 image:" + docker buildx imagetools inspect ghcr.io/gitroomhq/postiz-app-enterprise:${{ env.CONTAINERVER }}-arm64 + + # Try to remove any existing manifests first + docker manifest rm ghcr.io/gitroomhq/postiz-app-enterprise:${{ env.CONTAINERVER }} || true + docker manifest rm ghcr.io/gitroomhq/postiz-app-enterprise:latest || true + + # Create and push the version-specific manifest + docker manifest create ghcr.io/gitroomhq/postiz-app-enterprise:${{ env.CONTAINERVER }} \ + --amend ghcr.io/gitroomhq/postiz-app-enterprise:${{ env.CONTAINERVER }}-amd64 \ + --amend ghcr.io/gitroomhq/postiz-app-enterprise:${{ env.CONTAINERVER }}-arm64 + + docker manifest push ghcr.io/gitroomhq/postiz-app-enterprise:${{ env.CONTAINERVER }} + + # Create and push the latest manifest + docker manifest create ghcr.io/gitroomhq/postiz-app-enterprise:latest \ + --amend ghcr.io/gitroomhq/postiz-app-enterprise:${{ env.CONTAINERVER }}-amd64 \ + --amend ghcr.io/gitroomhq/postiz-app-enterprise:${{ env.CONTAINERVER }}-arm64 docker manifest push ghcr.io/gitroomhq/postiz-app-enterprise:latest + + - name: Verify Manifest + run: | + docker manifest inspect ghcr.io/gitroomhq/postiz-app-enterprise:latest diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index a834d2f7..ad50f3e8 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -35,6 +35,13 @@ jobs: with: fetch-depth: 0 + - name: Set up QEMU (For ARM64 Builds) + if: matrix.arch == 'arm64' + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to ghcr uses: docker/login-action@v3 with: @@ -42,22 +49,15 @@ jobs: username: ${{ github.actor }} password: ${{ github.token }} - - name: docker build - run: ./var/docker/docker-build.sh - - - name: Print post-build debug info - run: | - docker images - - - name: docker tag + - name: Build and Push Image env: CONTAINERVER: ${{ needs.build-containers-common.outputs.containerver }} run: | - docker tag localhost/postiz ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-${{ matrix.arch }} - docker push ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-${{ matrix.arch }} - - docker tag localhost/postiz-devcontainer ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }}-${{ matrix.arch }} - docker push ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }}-${{ matrix.arch }} + docker buildx build --platform linux/${{ matrix.arch }} \ + -f Dockerfile.dev \ + -t ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-${{ matrix.arch }} \ + --provenance=false --sbom=false \ + --output "type=registry,name=ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-${{ matrix.arch }}" . build-container-manifest: needs: [build-containers, build-containers-common] @@ -74,16 +74,31 @@ jobs: env: CONTAINERVER: ${{ needs.build-containers-common.outputs.containerver }} run: | - docker manifest create \ - ghcr.io/gitroomhq/postiz-app:latest \ - ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-arm64 \ - ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-amd64 + # Verify the architecture images + echo "Verifying AMD64 image:" + docker buildx imagetools inspect ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-amd64 + + echo "Verifying ARM64 image:" + docker buildx imagetools inspect ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-arm64 + + # Try to remove any existing manifests first + docker manifest rm ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }} || true + docker manifest rm ghcr.io/gitroomhq/postiz-app:latest || true + + # Create and push the version-specific manifest + docker manifest create ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }} \ + --amend ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-amd64 \ + --amend ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-arm64 + + docker manifest push ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }} + + # Create and push the latest manifest + docker manifest create ghcr.io/gitroomhq/postiz-app:latest \ + --amend ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-amd64 \ + --amend ghcr.io/gitroomhq/postiz-app:${{ env.CONTAINERVER }}-arm64 docker manifest push ghcr.io/gitroomhq/postiz-app:latest - docker manifest create \ - ghcr.io/gitroomhq/postiz-devcontainer:latest \ - ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }}-arm64 \ - ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }}-amd64 - - docker manifest push ghcr.io/gitroomhq/postiz-devcontainer:latest + - name: Verify Manifest + run: | + docker manifest inspect ghcr.io/gitroomhq/postiz-app:latest diff --git a/apps/frontend/src/app/global.scss b/apps/frontend/src/app/global.scss index a6f84b97..c919fd42 100644 --- a/apps/frontend/src/app/global.scss +++ b/apps/frontend/src/app/global.scss @@ -301,46 +301,46 @@ html { .mantine-Paper-root { outline: none !important; } +// +//:root { +// --copilot-kit-primary-color: #612ad5 !important; +// --copilot-kit-background-color: #0b0f1c !important; +// --copilot-kit-separator-color: #1f2941 !important; +// --copilot-kit-contrast-color: #ffffff !important; +// --copilot-kit-secondary-contrast-color: #ffffff !important; +// --copilot-kit-secondary-color: #000 !important; +// --copilot-kit-response-button-background-color: #000 !important; +// --copilot-kit-response-button-color: #fff !important; +//} -:root { - --copilot-kit-primary-color: #612ad5 !important; - --copilot-kit-background-color: #0b0f1c !important; - --copilot-kit-separator-color: #1f2941 !important; - --copilot-kit-contrast-color: #ffffff !important; - --copilot-kit-secondary-contrast-color: #ffffff !important; - --copilot-kit-secondary-color: #000 !important; - --copilot-kit-response-button-background-color: #000 !important; - --copilot-kit-response-button-color: #fff !important; -} +//.copilotKitWindow { +// @apply bg-customColor3 #{!important}; +//} -.copilotKitWindow { - @apply bg-customColor3 #{!important}; -} - -.copilotKitButtonIconOpen svg { - display: none !important; -} - -.copilotKitButtonIconOpen:after { - @apply text-textColor; - content: ''; - display: block; - position: relative; - z-index: 1; - object-fit: contain; - background: url('/magic.svg') no-repeat center center / contain; - width: 30px; - height: 30px; -} - -.copilotKitPopup { - right: -2rem !important; - bottom: 2rem !important; -} - -.copilotKitWindow { - /*right: -5rem !important;*/ -} +//.copilotKitButtonIconOpen svg { +// display: none !important; +//} +// +//.copilotKitButtonIconOpen:after { +// @apply text-textColor; +// content: ''; +// display: block; +// position: relative; +// z-index: 1; +// object-fit: contain; +// background: url('/magic.svg') no-repeat center center / contain; +// width: 30px; +// height: 30px; +//} +// +//.copilotKitPopup { +// right: -2rem !important; +// bottom: 2rem !important; +//} +// +//.copilotKitWindow { +// /*right: -5rem !important;*/ +//} .uppy-FileInput-container { @apply cursor-pointer font-[500] flex justify-center items-center gap-[4px] text-[12px] rounded-[4px] w-[107px] h-[25px] text-textColor border-[2px]; diff --git a/apps/frontend/src/app/layout.tsx b/apps/frontend/src/app/layout.tsx index 07ec9365..4ad10d90 100644 --- a/apps/frontend/src/app/layout.tsx +++ b/apps/frontend/src/app/layout.tsx @@ -28,7 +28,7 @@ export default async function AppLayout({ children }: { children: ReactNode }) { - + n, + // @ts-ignore + pluralize: (n: any) => n, }} /> diff --git a/libraries/nestjs-libraries/src/integrations/social/bluesky.provider.ts b/libraries/nestjs-libraries/src/integrations/social/bluesky.provider.ts index 1535b4ec..c0c6151f 100644 --- a/libraries/nestjs-libraries/src/integrations/social/bluesky.provider.ts +++ b/libraries/nestjs-libraries/src/integrations/social/bluesky.provider.ts @@ -191,6 +191,7 @@ export class BlueskyProvider extends SocialAbstract implements SocialProvider { embed: { $type: 'app.bsky.embed.images', images: images.map((p) => ({ + alt: 'picture', // can be an array up to 4 values // alt: 'image', // the alt text - commented this out for now until there is a way to set this from within Postiz image: p.data.blob,