Compare commits

..
Author SHA1 Message Date
tma f059ca37da Move posts page
continuous-integration/drone/push Build is passing
2024-04-05 10:59:48 +02:00
tma 3b359dd3cc Reorganize pages/components
continuous-integration/drone/push Build is failing
2024-04-05 10:59:09 +02:00
tma 318db9322f Update readme
continuous-integration/drone/push Build is passing
2024-04-05 09:45:04 +02:00
3wordchant 9d3e600eae Fix depends_on
continuous-integration/drone/push Build is passing
2024-04-04 12:00:57 -03:00
3wordchant 2184c11448 Add docker stack auto-deployment to lumbung server
continuous-integration/drone/push Build encountered an error
2024-04-04 11:59:14 -03:00
3wordchant a57206f8b2 Set nginx mime types
continuous-integration/drone/push Build is passing
2024-04-04 11:50:41 -03:00
3wordchant 35afa4a755 Make docker entrypoint executable
continuous-integration/drone/push Build is passing
2024-04-04 11:39:11 -03:00
3wordchant a1f3187bc7 Move entrypoint to right location 😳
continuous-integration/drone/push Build is passing
2024-04-04 11:31:48 -03:00
3wordchant a5cac66c3f Further entrypoint tweak
continuous-integration/drone/push Build is failing
2024-04-04 11:30:34 -03:00
3wordchant 509b6b5e8b Add docker entrypoint for loading secrets
continuous-integration/drone/push Build is failing
2024-04-04 11:29:05 -03:00
3wordchant 7f508fc04b Switch to ruangrupa org for image publishing
continuous-integration/drone/push Build is passing
2024-04-04 10:49:40 -03:00
tma 974cee1cf4 Disable pre-ssg getPosts
continuous-integration/drone/push Build was killed
2024-04-04 15:24:43 +02:00
tma 6240a4104a Fix client:only directive
continuous-integration/drone/push Build is failing
2024-04-04 14:58:18 +02:00
tma f51f6daad3 Add payload url to astro docker-compose
continuous-integration/drone/push Build is failing
2024-04-04 14:46:29 +02:00
3wordchant c72685679c Re-add drone.yml
continuous-integration/drone/push Build is failing
2024-04-04 09:31:36 -03:00
tma 15700ae304 Update types 2024-04-04 14:28:24 +02:00
tma 174a163cd3 Restructure types for retailer-centric flow 2024-04-04 12:45:26 +02:00
tma 2ebb81a981 Basic map works 2024-04-03 19:39:05 +02:00
tma 225d45307a Fix queries 2024-04-03 19:11:33 +02:00
tma cb26b8edcd QueryClient setup 2024-04-03 16:23:28 +02:00
tma 4a95f6e2d1 Start kios map vanilla -> react conversion 2024-04-03 15:31:56 +02:00
tma d8438e2d84 Add sample form 2024-04-03 14:23:08 +02:00
tma 95243557c6 Update react/ts version 2024-04-03 14:22:56 +02:00
tma 4be030ec28 Import payload config 2024-04-03 12:18:03 +02:00
tma 816eac8470 Upgrade to astro v4 2024-04-02 16:28:04 +02:00
tma 37d0359dae Add shadcn: form & input 2024-04-02 15:26:21 +02:00
tma 75fe3cdcf5 Add react 2024-04-02 14:16:28 +02:00
tma dc4618383e Include global styles 2024-04-02 13:22:20 +02:00
tma 2c79904102 Add shadcn 2024-04-02 13:08:24 +02:00
Max Schmidt 12788566f5 use the non alpine version for payload
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-12-19 13:04:27 +01:00
Max Schmidt 2234ce1517 Remove default_type directive and optimize gzip settings 2023-10-25 18:44:30 +02:00
Max Schmidt 2e6cfc7107 Remove unnecessary mime types and 404 page 2023-10-24 10:28:06 +02:00
Max Schmidt f260c33f97 Fix include directive duplication in nginx.conf 2023-10-24 10:26:58 +02:00
Max Schmidt fe6e0368fc Update default_type in nginx.conf 2023-10-24 10:25:46 +02:00
Max Schmidt d64bf301dd Update nginx.conf with new root directory and error page 2023-10-24 10:24:59 +02:00
Max Schmidt 46e53c7623 Update nginx.conf with simplified file paths and error page configurations 2023-10-24 10:23:36 +02:00
Max Schmidt 5400495176 Update nginx.conf with new gzip configuration and remove duplicate default_type and include directives 2023-10-24 10:22:01 +02:00
Max Schmidt 499928753c Update nginx.conf with default_type and include directives 2023-10-24 10:17:48 +02:00
Max Schmidt 3e5c6d707b Add mime.types to nginx.conf for root location 2023-10-24 10:16:05 +02:00
Max Schmidt 7d2e4f6598 Remove unnecessary default_type directive 2023-10-24 10:14:43 +02:00
Max Schmidt 92fdc3489e Add mime types to nginx.conf 2023-10-24 10:13:44 +02:00
Max Schmidt 9b3f159a09 Add default_type for nginx.conf 2023-10-24 10:12:59 +02:00
Max Schmidt ab1f54d573 Update static file caching and error page configuration 2023-10-24 10:10:13 +02:00
Max Schmidt f6debe5f56 Change server listen port to 80 and update 404 error page 2023-10-24 10:08:50 +02:00
Max Schmidt 36703434d4 Change nginx.conf to listen on port 3000 and fix error_page 2023-10-24 10:07:50 +02:00
Max Schmidt ca7e679ebb Optimize caching for static files 2023-10-24 10:05:51 +02:00
Max Schmidt d8429c43a6 Remove ViewTransitions component from Layout 2023-10-24 10:05:20 +02:00
Max Schmidt 2a5dd51d5b Update error page to display 404.html 2023-10-24 10:03:23 +02:00
Max Schmidt 5e9cbcf5c8 Add 404 page layout 2023-10-24 10:01:33 +02:00
Max Schmidt 496702f2ab Update nginx.conf with new gzip and caching settings 2023-10-24 10:01:24 +02:00
Max Schmidt 07a19d407e Update error page to /index.html 2023-10-24 09:55:04 +02:00
Max Schmidt 5df7cd72c8 Update nginx.conf to listen on port 80 2023-10-24 09:53:24 +02:00
Max Schmidt 9793bdaab9 Add error_page.html for 404 errors 2023-10-24 09:50:08 +02:00
Max Schmidt e062d42e66 Update nginx.conf with gzip configurations and server block for static file caching and serving 2023-10-24 09:46:18 +02:00
Max Schmidt 254cdcfda7 Increase worker connections to 1024 2023-10-24 09:43:46 +02:00
Max Schmidt ccd03f11c7 Add nginx.conf for production environment 2023-10-24 09:40:04 +02:00
Max Schmidt 12cb58b891 test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-10-24 09:38:55 +02:00
Max SchmidtandGitHub 80a6430dca Merge pull request #109 from mooxl/dependabot/npm_and_yarn/payload/types/express-4.17.18
Bump @types/express from 4.17.17 to 4.17.18 in /payload
2023-09-28 17:47:46 +02:00
dependabot[bot]andGitHub aae8684fcb Bump @types/express from 4.17.17 to 4.17.18 in /payload
Bumps [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) from 4.17.17 to 4.17.18.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express)

---
updated-dependencies:
- dependency-name: "@types/express"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-25 10:48:13 +00:00
Max SchmidtandGitHub bd3c55cba7 Merge pull request #101 from mooxl/dependabot/npm_and_yarn/astro/prettier-plugin-tailwindcss-0.5.4
Bump prettier-plugin-tailwindcss from 0.5.3 to 0.5.4 in /astro
2023-09-24 11:18:21 +02:00
Max SchmidtandGitHub bdbc6eea71 Merge pull request #105 from mooxl/dependabot/npm_and_yarn/payload/payload-1.15.6
Bump payload from 1.14.0 to 1.15.6 in /payload
2023-09-24 11:18:13 +02:00
Max SchmidtandGitHub 587c1584d9 Merge pull request #107 from mooxl/dependabot/npm_and_yarn/astro/sharp-0.32.6
Bump sharp from 0.32.5 to 0.32.6 in /astro
2023-09-24 11:17:58 +02:00
Max SchmidtandGitHub d3ae275d8c Merge pull request #108 from mooxl/dependabot/npm_and_yarn/payload/graphql-16.8.1
Bump graphql from 16.7.1 to 16.8.1 in /payload
2023-09-24 11:17:50 +02:00
dependabot[bot]andGitHub a616c40a64 Bump graphql from 16.7.1 to 16.8.1 in /payload
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.7.1 to 16.8.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](https://github.com/graphql/graphql-js/compare/v16.7.1...v16.8.1)

---
updated-dependencies:
- dependency-name: graphql
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-21 18:44:14 +00:00
dependabot[bot]andGitHub d836455d64 Bump sharp from 0.32.5 to 0.32.6 in /astro
Bumps [sharp](https://github.com/lovell/sharp) from 0.32.5 to 0.32.6.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.32.5...v0.32.6)

---
updated-dependencies:
- dependency-name: sharp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-19 11:04:45 +00:00
dependabot[bot]andGitHub e5daed0aa8 Bump payload from 1.14.0 to 1.15.6 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.14.0 to 1.15.6.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.14.0...v1.15.6)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-14 10:30:15 +00:00
dependabot[bot]andGitHub 262be0bf04 Bump prettier-plugin-tailwindcss from 0.5.3 to 0.5.4 in /astro
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.3 to 0.5.4.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.3...v0.5.4)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-01 10:37:34 +00:00
Max SchmidtandGitHub 08eac2834d Merge pull request #90 from mooxl/dependabot/npm_and_yarn/astro/astro-2.10.12
Bump astro from 2.10.9 to 2.10.12 in /astro
2023-08-21 19:15:37 +02:00
dependabot[bot]andGitHub 892bbe0726 Bump astro from 2.10.9 to 2.10.12 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.10.9 to 2.10.12.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.10.12/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 10:11:56 +00:00
Max SchmidtandGitHub 9eaf677a81 Merge pull request #88 from mooxl/dependabot/npm_and_yarn/payload/payload-1.14.0
Bump payload from 1.13.4 to 1.14.0 in /payload
2023-08-18 09:51:32 +02:00
dependabot[bot]andGitHub a5536dcaf2 Bump payload from 1.13.4 to 1.14.0 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.13.4 to 1.14.0.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.13.4...v1.14.0)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-17 10:17:56 +00:00
Max SchmidtandGitHub c9f89cbfa5 Merge pull request #86 from mooxl/dependabot/npm_and_yarn/astro/sharp-0.32.5
Bump sharp from 0.32.4 to 0.32.5 in /astro
2023-08-17 10:01:34 +02:00
Max SchmidtandGitHub 266cefce0d Merge pull request #87 from mooxl/dependabot/npm_and_yarn/astro/astro-2.10.9
Bump astro from 2.10.8 to 2.10.9 in /astro
2023-08-17 10:01:28 +02:00
dependabot[bot]andGitHub cb905ece81 Bump astro from 2.10.8 to 2.10.9 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.10.8 to 2.10.9.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.10.9/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-16 11:07:47 +00:00
dependabot[bot]andGitHub f8b81ed520 Bump sharp from 0.32.4 to 0.32.5 in /astro
Bumps [sharp](https://github.com/lovell/sharp) from 0.32.4 to 0.32.5.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.32.4...v0.32.5)

---
updated-dependencies:
- dependency-name: sharp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-16 11:07:31 +00:00
Max Schmidt 56d817ed34 declare prefetch only once
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-15 21:12:30 +02:00
Max Schmidt 7bd3a6f06a prefetch all links
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-15 21:10:50 +02:00
Max Schmidt 5ac061ca7d prefetch posts
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-15 21:09:46 +02:00
Max Schmidt fd20d085ba update styling
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-15 21:08:39 +02:00
Max Schmidt a6d794000a add astro prettier plugin
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-15 21:06:28 +02:00
Max Schmidt c353c228c8 remove global.css
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-15 21:01:58 +02:00
Max Schmidt 7872c6dbd6 upgrade dependencies
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-15 21:01:50 +02:00
Max Schmidt b82c608838 remove fade transition
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-14 18:52:07 +02:00
Max Schmidt 51f8971604 morph title
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-14 18:33:01 +02:00
Max Schmidt 3363396db3 remove fade transition
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-14 18:22:05 +02:00
Max Schmidt 4987d40678 add slash behind link
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-14 18:13:20 +02:00
Max Schmidt 2e2aa10362 add .env
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-14 18:10:09 +02:00
mooxlandMax Schmidt 5b21612005 uff
Signed-off-by: mooxl <you@example.com>
2023-08-14 18:09:52 +02:00
Max Schmidt 6478140b11 typo
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-14 18:09:52 +02:00
Max Schmidt e040b61482 add REPOSITORY to .env and replace it in workflow
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-14 17:42:05 +02:00
Max SchmidtandGitHub 7f257d9027 Merge pull request #85 from mooxl/dependabot/npm_and_yarn/astro/prettier-plugin-tailwindcss-0.5.2
Bump prettier-plugin-tailwindcss from 0.5.1 to 0.5.2 in /astro
2023-08-14 16:09:11 +02:00
Max SchmidtandGitHub f84728ba74 Merge pull request #84 from mooxl/dependabot/npm_and_yarn/astro/astro-2.10.7
Bump astro from 2.10.5 to 2.10.7 in /astro
2023-08-14 16:09:01 +02:00
dependabot[bot]andGitHub 736cfc63f1 Bump prettier-plugin-tailwindcss from 0.5.1 to 0.5.2 in /astro
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.1 to 0.5.2.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.1...v0.5.2)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 10:46:41 +00:00
dependabot[bot]andGitHub d67f6edfc1 Bump astro from 2.10.5 to 2.10.7 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.10.5 to 2.10.7.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.10.7/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 10:46:16 +00:00
Max SchmidtandGitHub f2ee5feaf4 Merge pull request #82 from mooxl/dependabot/npm_and_yarn/astro/prettier-plugin-tailwindcss-0.5.1
Bump prettier-plugin-tailwindcss from 0.4.1 to 0.5.1 in /astro
2023-08-13 13:58:37 +02:00
Max SchmidtandGitHub 0030eb5a9e Merge pull request #83 from mooxl/dependabot/npm_and_yarn/astro/astro-2.10.5
Bump astro from 2.10.4 to 2.10.5 in /astro
2023-08-13 13:58:32 +02:00
Max Schmidt 7b177bcdc7 upgrade dependencies
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-12 12:04:54 +02:00
dependabot[bot]andGitHub 35c5feb7c9 Bump astro from 2.10.4 to 2.10.5 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.10.4 to 2.10.5.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.10.5/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-11 10:59:03 +00:00
dependabot[bot]andGitHub 87fb54aeae Bump prettier-plugin-tailwindcss from 0.4.1 to 0.5.1 in /astro
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.4.1 to 0.5.1.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.4.1...v0.5.1)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-11 10:58:37 +00:00
Max Schmidt aa3dda41b5 no dir listing
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-11 11:05:18 +02:00
Max Schmidt b55df10410 experiment to use fileserver from deno instead of nginx
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-08-11 11:05:01 +02:00
Max Schmidt 5ccf5071fa Refactor Dockerfile commands for astro and payload folders 2023-08-11 00:33:40 +02:00
Max SchmidtandGitHub c9574334a4 Merge pull request #80 from mooxl/dependabot/npm_and_yarn/astro/astro-2.10.4
Bump astro from 2.10.3 to 2.10.4 in /astro
2023-08-10 23:10:28 +02:00
dependabot[bot]andGitHub dad604fed6 Bump astro from 2.10.3 to 2.10.4 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.10.3 to 2.10.4.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.10.4/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-10 11:12:52 +00:00
Max SchmidtandGitHub 2b5eacb477 Merge pull request #77 from mooxl/dependabot/npm_and_yarn/astro/astrojs/image-0.17.3
Bump @astrojs/image from 0.17.2 to 0.17.3 in /astro
2023-08-10 10:10:48 +02:00
Max SchmidtandGitHub 1cc9614e34 Merge pull request #78 from mooxl/dependabot/npm_and_yarn/astro/astro-2.10.3
Bump astro from 2.10.1 to 2.10.3 in /astro
2023-08-10 10:10:41 +02:00
Max SchmidtandGitHub 90d3e393ea Merge pull request #79 from mooxl/dependabot/npm_and_yarn/payload/payload-1.13.1
Bump payload from 1.12.0 to 1.13.1 in /payload
2023-08-10 10:10:35 +02:00
dependabot[bot]andGitHub bcff4c1c01 Bump payload from 1.12.0 to 1.13.1 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.12.0 to 1.13.1.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.12.0...v1.13.1)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-09 11:13:49 +00:00
dependabot[bot]andGitHub c8c3d8b32a Bump astro from 2.10.1 to 2.10.3 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.10.1 to 2.10.3.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.10.3/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-08 10:55:06 +00:00
dependabot[bot]andGitHub 858f649af1 Bump @astrojs/image from 0.17.2 to 0.17.3 in /astro
Bumps [@astrojs/image](https://github.com/withastro/astro/tree/HEAD/packages/integrations/image) from 0.17.2 to 0.17.3.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/integrations/image/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/image@0.17.3/packages/integrations/image)

---
updated-dependencies:
- dependency-name: "@astrojs/image"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-08 10:54:25 +00:00
Max SchmidtandGitHub e8260e0b14 Merge pull request #74 from mooxl/dependabot/npm_and_yarn/astro/prettier-3.0.1
Bump prettier from 3.0.0 to 3.0.1 in /astro
2023-08-08 10:14:38 +02:00
Max SchmidtandGitHub dba527f88a Merge pull request #75 from mooxl/dependabot/npm_and_yarn/astro/astro-2.10.1
Bump astro from 2.9.7 to 2.10.1 in /astro
2023-08-08 10:14:32 +02:00
Max SchmidtandGitHub d5b902dded Merge pull request #76 from mooxl/dependabot/npm_and_yarn/payload/payload-1.12.0
Bump payload from 1.11.8 to 1.12.0 in /payload
2023-08-08 10:14:25 +02:00
dependabot[bot]andGitHub 9e0ea84eda Bump payload from 1.11.8 to 1.12.0 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.11.8 to 1.12.0.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.11.8...v1.12.0)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-07 10:38:58 +00:00
dependabot[bot]andGitHub b0ae4240d6 Bump astro from 2.9.7 to 2.10.1 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.9.7 to 2.10.1.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.10.1/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-04 11:00:07 +00:00
dependabot[bot]andGitHub fc6443975a Bump prettier from 3.0.0 to 3.0.1 in /astro
Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.0.0...3.0.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-03 10:44:09 +00:00
Max SchmidtandGitHub 254fda1cf3 Merge pull request #73 from mooxl/dependabot/npm_and_yarn/astro/astro-2.9.7
Bump astro from 2.9.6 to 2.9.7 in /astro
2023-08-02 18:17:21 +02:00
dependabot[bot]andGitHub fa2e026d26 Bump astro from 2.9.6 to 2.9.7 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.9.6 to 2.9.7.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.9.7/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-02 10:43:53 +00:00
Max SchmidtandGitHub 3cd0826e29 Merge pull request #71 from mooxl/dependabot/npm_and_yarn/astro/astro-2.9.6
Bump astro from 2.9.3 to 2.9.6 in /astro
2023-08-01 21:25:57 +02:00
Max SchmidtandGitHub ebe53d43ce Merge pull request #72 from mooxl/dependabot/npm_and_yarn/payload/payload-1.11.8
Bump payload from 1.11.7 to 1.11.8 in /payload
2023-08-01 21:25:45 +02:00
dependabot[bot]andGitHub 05e4367f79 Bump payload from 1.11.7 to 1.11.8 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.11.7 to 1.11.8.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.11.7...v1.11.8)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-01 10:39:08 +00:00
dependabot[bot]andGitHub 6835c6e0f2 Bump astro from 2.9.3 to 2.9.6 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.9.3 to 2.9.6.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.9.6/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-31 10:17:51 +00:00
Max Schmidt 6c14f1cbad Use new ViewTransition
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-07-28 17:22:41 +02:00
Max Schmidt 25f50c90f6 Revert "Use semver"
This reverts commit af0c6ab782.
2023-07-28 17:03:49 +02:00
Max Schmidt b5e8be0e5d Revert "Update start containers command to use npm instead of yarn and update deployment command to use npm instead of yarn prod"
This reverts commit d541cf9b63.
2023-07-28 17:03:25 +02:00
Max Schmidt 27dfaa8f6a Revert "Switch to npm"
This reverts commit ce5bf1edf0.
2023-07-28 17:02:19 +02:00
Max SchmidtandGitHub a51b72d7b5 Merge pull request #70 from mooxl/dependabot/npm_and_yarn/astro/astro-2.9.5
Bump astro from 2.9.3 to 2.9.5 in /astro
2023-07-28 16:33:21 +02:00
Max Schmidt af0c6ab782 Use semver
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-07-28 16:32:23 +02:00
dependabot[bot]andGitHub 545b28ec90 Bump astro from 2.9.3 to 2.9.5 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.9.3 to 2.9.5.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.9.5/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-28 14:26:27 +00:00
Max Schmidt d541cf9b63 Update start containers command to use npm instead of yarn and update deployment command to use npm instead of yarn prod 2023-07-28 16:26:15 +02:00
Max Schmidt ce5bf1edf0 Switch to npm
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-07-28 16:23:49 +02:00
Max SchmidtandGitHub f5ac068147 Merge pull request #68 from mooxl/dependabot/npm_and_yarn/payload/payload-1.11.7
Bump payload from 1.11.6 to 1.11.7 in /payload
2023-07-28 10:15:30 +02:00
dependabot[bot]andGitHub 8d1a80e2a6 Bump payload from 1.11.6 to 1.11.7 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.11.6 to 1.11.7.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.11.6...v1.11.7)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-27 10:14:47 +00:00
Max SchmidtandGitHub 397c3ca654 Merge pull request #62 from mooxl/dependabot/npm_and_yarn/astro/astrojs/sitemap-2.0.1
Bump @astrojs/sitemap from 2.0.0 to 2.0.1 in /astro
2023-07-27 05:30:12 +02:00
Max SchmidtandGitHub 216b1d7f92 Merge pull request #64 from mooxl/dependabot/npm_and_yarn/astro/sharp-0.32.4
Bump sharp from 0.32.3 to 0.32.4 in /astro
2023-07-27 05:29:52 +02:00
Max SchmidtandGitHub 1dc5ae2cfb Merge pull request #66 from mooxl/dependabot/npm_and_yarn/payload/payload-1.11.6
Bump payload from 1.11.3 to 1.11.6 in /payload
2023-07-27 05:29:33 +02:00
Max SchmidtandGitHub 0209ddbaf5 Merge pull request #67 from mooxl/dependabot/npm_and_yarn/astro/astro-2.9.3
Bump astro from 2.8.5 to 2.9.3 in /astro
2023-07-27 05:29:11 +02:00
dependabot[bot]andGitHub d2dc4abe58 Bump astro from 2.8.5 to 2.9.3 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.8.5 to 2.9.3.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.9.3/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-26 11:07:21 +00:00
dependabot[bot]andGitHub 12e981027b Bump payload from 1.11.3 to 1.11.6 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.11.3 to 1.11.6.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.11.3...v1.11.6)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-26 10:47:53 +00:00
dependabot[bot]andGitHub 75dafc4a8d Bump sharp from 0.32.3 to 0.32.4 in /astro
Bumps [sharp](https://github.com/lovell/sharp) from 0.32.3 to 0.32.4.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.32.3...v0.32.4)

---
updated-dependencies:
- dependency-name: sharp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-24 10:32:22 +00:00
dependabot[bot]andGitHub e5b049c1ba Bump @astrojs/sitemap from 2.0.0 to 2.0.1 in /astro
Bumps [@astrojs/sitemap](https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/integrations/sitemap/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/sitemap@2.0.1/packages/integrations/sitemap)

---
updated-dependencies:
- dependency-name: "@astrojs/sitemap"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-21 10:28:27 +00:00
Max SchmidtandGitHub 8648860eae Merge pull request #61 from mooxl/dependabot/npm_and_yarn/payload/payload-1.11.3
Bump payload from 1.11.2 to 1.11.3 in /payload
2023-07-20 14:16:12 +02:00
Max Schmidt 2b8e08fd19 Remove unnecessary security headers in prod docker-compose file 2023-07-20 14:13:25 +02:00
dependabot[bot]andGitHub 01dd8f9b9f Bump payload from 1.11.2 to 1.11.3 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.11.2 to 1.11.3.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.11.2...v1.11.3)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-20 10:53:15 +00:00
Max SchmidtandGitHub e6936416d3 Merge pull request #60 from mooxl/dependabot/npm_and_yarn/astro/astro-2.8.5
Bump astro from 2.8.4 to 2.8.5 in /astro
2023-07-19 14:23:43 +02:00
dependabot[bot]andGitHub 34c8e646bb Bump astro from 2.8.4 to 2.8.5 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.8.4 to 2.8.5.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.8.5/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-19 11:10:53 +00:00
Max SchmidtandGitHub 42250044a2 Merge pull request #59 from mooxl/dependabot/npm_and_yarn/astro/astro-2.8.4
Bump astro from 2.8.3 to 2.8.4 in /astro
2023-07-18 19:58:31 +02:00
Max SchmidtandGitHub 8e85ef550f Merge pull request #58 from mooxl/dependabot/npm_and_yarn/astro/astrojs/sitemap-2.0.0
Bump @astrojs/sitemap from 1.4.0 to 2.0.0 in /astro
2023-07-18 19:58:23 +02:00
dependabot[bot]andGitHub 7c68f879c7 Bump astro from 2.8.3 to 2.8.4 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.8.3 to 2.8.4.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.8.4/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-18 10:47:13 +00:00
dependabot[bot]andGitHub 83dedb57fb Bump @astrojs/sitemap from 1.4.0 to 2.0.0 in /astro
Bumps [@astrojs/sitemap](https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap) from 1.4.0 to 2.0.0.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/integrations/sitemap/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/sitemap@2.0.0/packages/integrations/sitemap)

---
updated-dependencies:
- dependency-name: "@astrojs/sitemap"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-18 10:46:53 +00:00
Max SchmidtandGitHub e6df1f97bb Merge pull request #53 from mooxl/dependabot/npm_and_yarn/payload/payload-1.11.2
Bump payload from 1.11.1 to 1.11.2 in /payload
2023-07-17 13:58:20 +02:00
Max SchmidtandGitHub 0598b05956 Merge pull request #54 from mooxl/dependabot/npm_and_yarn/astro/prettier-plugin-tailwindcss-0.4.1
Bump prettier-plugin-tailwindcss from 0.4.0 to 0.4.1 in /astro
2023-07-17 13:58:14 +02:00
Max SchmidtandGitHub e1840b97bd Merge pull request #55 from mooxl/dependabot/npm_and_yarn/astro/astrojs/sitemap-1.4.0
Bump @astrojs/sitemap from 1.3.3 to 1.4.0 in /astro
2023-07-17 13:58:08 +02:00
Max SchmidtandGitHub 84aba41fd9 Merge pull request #56 from mooxl/dependabot/npm_and_yarn/astro/sharp-0.32.3
Bump sharp from 0.32.2 to 0.32.3 in /astro
2023-07-17 13:58:02 +02:00
Max SchmidtandGitHub 430100c916 Merge pull request #57 from mooxl/dependabot/npm_and_yarn/astro/astro-2.8.3
Bump astro from 2.8.2 to 2.8.3 in /astro
2023-07-17 13:57:56 +02:00
dependabot[bot]andGitHub 013212acfc Bump astro from 2.8.2 to 2.8.3 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.8.2 to 2.8.3.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.8.3/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 10:51:29 +00:00
dependabot[bot]andGitHub a54984fa16 Bump sharp from 0.32.2 to 0.32.3 in /astro
Bumps [sharp](https://github.com/lovell/sharp) from 0.32.2 to 0.32.3.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.32.2...v0.32.3)

---
updated-dependencies:
- dependency-name: sharp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 10:50:38 +00:00
dependabot[bot]andGitHub 5ff7f2dd34 Bump @astrojs/sitemap from 1.3.3 to 1.4.0 in /astro
Bumps [@astrojs/sitemap](https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap) from 1.3.3 to 1.4.0.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/integrations/sitemap/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/sitemap@1.4.0/packages/integrations/sitemap)

---
updated-dependencies:
- dependency-name: "@astrojs/sitemap"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 10:50:06 +00:00
dependabot[bot]andGitHub fcfb72641b Bump prettier-plugin-tailwindcss from 0.4.0 to 0.4.1 in /astro
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.4.0 to 0.4.1.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.4.0...v0.4.1)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 10:49:23 +00:00
dependabot[bot]andGitHub f556e95bcb Bump payload from 1.11.1 to 1.11.2 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.11.1 to 1.11.2.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.11.1...v1.11.2)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 10:40:22 +00:00
Max SchmidtandGitHub d0c1cabc25 Merge pull request #52 from mooxl/dependabot/npm_and_yarn/astro/tailwindcss-3.3.3
Bump tailwindcss from 3.3.2 to 3.3.3 in /astro
2023-07-16 10:12:23 +02:00
Max SchmidtandGitHub af714c4678 Merge pull request #51 from mooxl/dependabot/npm_and_yarn/astro/astro-2.8.2
Bump astro from 2.8.1 to 2.8.2 in /astro
2023-07-16 10:12:13 +02:00
dependabot[bot]andGitHub 810e6cb26b Bump tailwindcss from 3.3.2 to 3.3.3 in /astro
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.2 to 3.3.3.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.3.3/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.2...v3.3.3)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-14 10:13:06 +00:00
dependabot[bot]andGitHub 46ee411a72 Bump astro from 2.8.1 to 2.8.2 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.8.1 to 2.8.2.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.8.2/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-14 10:12:42 +00:00
Max SchmidtandGitHub caf2e8b442 Merge pull request #47 from mooxl/dependabot/npm_and_yarn/astro/prettier-plugin-tailwindcss-0.4.0
Bump prettier-plugin-tailwindcss from 0.3.0 to 0.4.0 in /astro
2023-07-13 14:17:21 +02:00
Max SchmidtandGitHub 9849a1d64f Merge pull request #46 from mooxl/dependabot/npm_and_yarn/astro/astro-2.8.1
Bump astro from 2.8.0 to 2.8.1 in /astro
2023-07-13 14:17:11 +02:00
Max SchmidtandGitHub 654b4ce2dc Merge pull request #48 from mooxl/dependabot/npm_and_yarn/astro/astrojs/prefetch-0.3.0
Bump @astrojs/prefetch from 0.2.3 to 0.3.0 in /astro
2023-07-13 14:17:03 +02:00
Max SchmidtandGitHub 4a39673786 Merge pull request #49 from mooxl/dependabot/npm_and_yarn/astro/sharp-0.32.2
Bump sharp from 0.32.1 to 0.32.2 in /astro
2023-07-13 14:16:56 +02:00
Max SchmidtandGitHub dca24f1bc0 Merge pull request #50 from mooxl/dependabot/npm_and_yarn/payload/payload-1.11.1
Bump payload from 1.11.0 to 1.11.1 in /payload
2023-07-13 14:16:48 +02:00
dependabot[bot]andGitHub 292ec408c8 Bump payload from 1.11.0 to 1.11.1 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.11.0 to 1.11.1.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.11.0...v1.11.1)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-12 11:06:06 +00:00
dependabot[bot]andGitHub 55c74d1573 Bump sharp from 0.32.1 to 0.32.2 in /astro
Bumps [sharp](https://github.com/lovell/sharp) from 0.32.1 to 0.32.2.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.32.1...v0.32.2)

---
updated-dependencies:
- dependency-name: sharp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-12 10:49:19 +00:00
dependabot[bot]andGitHub afd494e985 Bump @astrojs/prefetch from 0.2.3 to 0.3.0 in /astro
Bumps [@astrojs/prefetch](https://github.com/withastro/astro/tree/HEAD/packages/astro-prefetch) from 0.2.3 to 0.3.0.
- [Release notes](https://github.com/withastro/astro/releases)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/prefetch@0.3.0/packages/astro-prefetch)

---
updated-dependencies:
- dependency-name: "@astrojs/prefetch"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-12 10:48:50 +00:00
dependabot[bot]andGitHub 2526833f8a Bump prettier-plugin-tailwindcss from 0.3.0 to 0.4.0 in /astro
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.3.0 to 0.4.0.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.3.0...v0.4.0)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-12 10:48:14 +00:00
dependabot[bot]andGitHub 3040eb95ed Bump astro from 2.8.0 to 2.8.1 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.8.0 to 2.8.1.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.8.1/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-12 10:47:27 +00:00
Max SchmidtandGitHub 44058cb3d0 Merge pull request #45 from mooxl/dependabot/npm_and_yarn/astro/semver-6.3.1
Bump semver from 6.3.0 to 6.3.1 in /astro
2023-07-11 18:00:11 +02:00
dependabot[bot]andGitHub 7608a95bc4 Bump semver from 6.3.0 to 6.3.1 in /astro
Bumps [semver](https://github.com/npm/node-semver) from 6.3.0 to 6.3.1.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v6.3.1/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v6.3.0...v6.3.1)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-11 15:58:00 +00:00
Max Schmidt 99fd68aa31 Disable compression and critters, compress HTML and inline stylesheets automatically 2023-07-11 17:57:27 +02:00
Max SchmidtandGitHub ce85368029 Merge pull request #44 from mooxl/dependabot/npm_and_yarn/payload/nodemon-3.0.1
Bump nodemon from 2.0.22 to 3.0.1 in /payload
2023-07-10 16:28:24 +02:00
dependabot[bot]andGitHub 9304f05671 Bump nodemon from 2.0.22 to 3.0.1 in /payload
Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.22 to 3.0.1.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.22...v3.0.1)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 10:37:47 +00:00
Max SchmidtandGitHub ae7a2090c0 Merge pull request #43 from mooxl/dependabot/npm_and_yarn/astro/astro-2.8.0
Bump astro from 2.7.4 to 2.8.0 in /astro
2023-07-09 15:28:36 +02:00
dependabot[bot]andGitHub 7351673848 Bump astro from 2.7.4 to 2.8.0 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.7.4 to 2.8.0.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.8.0/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-07 10:47:16 +00:00
Max SchmidtandGitHub b9570c9d09 Merge pull request #41 from mooxl/dependabot/npm_and_yarn/payload/payload-1.11.0
Bump payload from 1.10.5 to 1.11.0 in /payload
2023-07-06 13:47:45 +02:00
Max SchmidtandGitHub 43b5ab5887 Merge pull request #42 from mooxl/dependabot/npm_and_yarn/astro/prettier-3.0.0
Bump prettier from 2.8.8 to 3.0.0 in /astro
2023-07-06 13:47:33 +02:00
dependabot[bot]andGitHub 91252fed2d Bump prettier from 2.8.8 to 3.0.0 in /astro
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.8 to 3.0.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.8...3.0.0)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-06 10:50:39 +00:00
dependabot[bot]andGitHub 6e082476c1 Bump payload from 1.10.5 to 1.11.0 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.10.5 to 1.11.0.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.10.5...v1.11.0)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-06 10:46:48 +00:00
Max SchmidtandGitHub 2037640bcd Merge pull request #40 from mooxl/dependabot/npm_and_yarn/astro/astrojs/image-0.17.2
Bump @astrojs/image from 0.17.1 to 0.17.2 in /astro
2023-07-05 13:45:59 +02:00
dependabot[bot]andGitHub f495c83949 Bump @astrojs/image from 0.17.1 to 0.17.2 in /astro
Bumps [@astrojs/image](https://github.com/withastro/astro/tree/HEAD/packages/integrations/image) from 0.17.1 to 0.17.2.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/integrations/image/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/image@0.17.2/packages/integrations/image)

---
updated-dependencies:
- dependency-name: "@astrojs/image"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 11:15:58 +00:00
Max SchmidtandGitHub 45968761ca Merge pull request #37 from mooxl/dependabot/npm_and_yarn/astro/astro-critters-1.1.39
Bump astro-critters from 1.1.38 to 1.1.39 in /astro
2023-07-05 09:38:26 +02:00
dependabot[bot]andGitHub 313a195edb Bump astro-critters from 1.1.38 to 1.1.39 in /astro
Bumps [astro-critters](https://github.com/astro-community/astro-critters) from 1.1.38 to 1.1.39.
- [Release notes](https://github.com/astro-community/astro-critters/releases)
- [Changelog](https://github.com/astro-community/astro-critters/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astro-community/astro-critters/compare/v1.1.38...v1.1.39)

---
updated-dependencies:
- dependency-name: astro-critters
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 07:38:17 +00:00
Max SchmidtandGitHub e9e58a08f9 Merge pull request #39 from mooxl/dependabot/npm_and_yarn/astro/astro-2.7.4
Bump astro from 2.7.2 to 2.7.4 in /astro
2023-07-05 09:37:58 +02:00
dependabot[bot]andGitHub f2ca055ee2 Bump astro from 2.7.2 to 2.7.4 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.7.2 to 2.7.4.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.7.4/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 07:37:39 +00:00
Max SchmidtandGitHub ecf72fc11d Merge pull request #35 from mooxl/dependabot/npm_and_yarn/payload/payload-1.10.5
Bump payload from 1.10.4 to 1.10.5 in /payload
2023-07-05 09:35:39 +02:00
Max SchmidtandGitHub e291776598 Merge pull request #38 from mooxl/dependabot/npm_and_yarn/astro/astro-compress-1.1.49
Bump astro-compress from 1.1.48 to 1.1.49 in /astro
2023-07-05 09:35:20 +02:00
dependabot[bot]andGitHub bd392f22f2 Bump astro-compress from 1.1.48 to 1.1.49 in /astro
Bumps [astro-compress](https://github.com/astro-community/astro-compress) from 1.1.48 to 1.1.49.
- [Release notes](https://github.com/astro-community/astro-compress/releases)
- [Changelog](https://github.com/astro-community/astro-compress/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astro-community/astro-compress/compare/v1.1.48...v1.1.49)

---
updated-dependencies:
- dependency-name: astro-compress
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-04 10:18:39 +00:00
dependabot[bot]andGitHub 08150761bf Bump payload from 1.10.4 to 1.10.5 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.10.4 to 1.10.5.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.10.4...v1.10.5)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-03 10:44:41 +00:00
Max SchmidtandGitHub 97ac8535e9 Merge pull request #33 from mooxl/dependabot/npm_and_yarn/astro/astro-compress-1.1.48
Bump astro-compress from 1.1.47 to 1.1.48 in /astro
2023-06-30 14:07:29 +02:00
Max SchmidtandGitHub 36687f04a8 Merge pull request #34 from mooxl/dependabot/npm_and_yarn/payload/payload-1.10.4
Bump payload from 1.10.2 to 1.10.4 in /payload
2023-06-30 14:07:22 +02:00
dependabot[bot]andGitHub 8da9486506 Bump payload from 1.10.2 to 1.10.4 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.10.2 to 1.10.4.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.10.2...v1.10.4)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-30 11:04:59 +00:00
dependabot[bot]andGitHub e9cd3663cf Bump astro-compress from 1.1.47 to 1.1.48 in /astro
Bumps [astro-compress](https://github.com/astro-community/astro-compress) from 1.1.47 to 1.1.48.
- [Release notes](https://github.com/astro-community/astro-compress/releases)
- [Changelog](https://github.com/astro-community/astro-compress/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astro-community/astro-compress/compare/v1.1.47...v1.1.48)

---
updated-dependencies:
- dependency-name: astro-compress
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-30 10:14:34 +00:00
Max SchmidtandGitHub 10a15e6181 Merge pull request #31 from mooxl/dependabot/npm_and_yarn/astro/astro-2.7.2
Bump astro from 2.7.0 to 2.7.2 in /astro
2023-06-29 13:05:03 +02:00
Max SchmidtandGitHub 297d627542 Merge pull request #32 from mooxl/dependabot/npm_and_yarn/payload/typescript-5.1.6
Bump typescript from 5.1.3 to 5.1.6 in /payload
2023-06-29 13:04:55 +02:00
dependabot[bot]andGitHub d500346a91 Bump typescript from 5.1.3 to 5.1.6 in /payload
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.1.3 to 5.1.6.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/commits)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-29 11:04:07 +00:00
dependabot[bot]andGitHub aca6046617 Bump astro from 2.7.0 to 2.7.2 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.7.0 to 2.7.2.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.7.2/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-29 10:26:53 +00:00
Max SchmidtandGitHub f63d6ab3fd Merge pull request #28 from mooxl/dependabot/npm_and_yarn/payload/payload-1.10.2
Bump payload from 1.10.1 to 1.10.2 in /payload
2023-06-27 21:28:26 +02:00
dependabot[bot]andGitHub b358b54de4 Bump payload from 1.10.1 to 1.10.2 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.10.1 to 1.10.2.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.10.1...v1.10.2)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-27 11:11:45 +00:00
Max Schmidt d096c22911 Add development check before triggering workflow
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-06-27 00:09:30 +02:00
Max Schmidt eded296fd8 Cancel previous runs before triggering build 2023-06-27 00:06:19 +02:00
Max SchmidtandGitHub 389dee988f Merge pull request #26 from mooxl/dependabot/npm_and_yarn/payload/dotenv-16.3.1
Bump dotenv from 16.1.4 to 16.3.1 in /payload
2023-06-23 01:07:47 +02:00
Max SchmidtandGitHub cf4277c7b2 Merge pull request #27 from mooxl/dependabot/npm_and_yarn/payload/payload-1.10.1
Bump payload from 1.8.5 to 1.10.1 in /payload
2023-06-23 01:07:39 +02:00
dependabot[bot]andGitHub 1e43f53148 Bump payload from 1.8.5 to 1.10.1 in /payload
Bumps [payload](https://github.com/payloadcms/payload) from 1.8.5 to 1.10.1.
- [Release notes](https://github.com/payloadcms/payload/releases)
- [Changelog](https://github.com/payloadcms/payload/blob/master/CHANGELOG.md)
- [Commits](https://github.com/payloadcms/payload/compare/v1.8.5...v1.10.1)

---
updated-dependencies:
- dependency-name: payload
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-22 23:07:28 +00:00
dependabot[bot]andGitHub 79b90c2f7c Bump dotenv from 16.1.4 to 16.3.1 in /payload
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.1.4 to 16.3.1.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.1.4...v16.3.1)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-22 23:07:06 +00:00
Max SchmidtandGitHub d1f6324649 Merge pull request #25 from mooxl/dependabot/npm_and_yarn/astro/astrojs/tailwind-4.0.0
Bump @astrojs/tailwind from 3.1.3 to 4.0.0 in /astro
2023-06-23 01:06:45 +02:00
dependabot[bot]andGitHub 892ad9f4b7 Bump @astrojs/tailwind from 3.1.3 to 4.0.0 in /astro
Bumps [@astrojs/tailwind](https://github.com/withastro/astro/tree/HEAD/packages/integrations/tailwind) from 3.1.3 to 4.0.0.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/integrations/tailwind/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/tailwind@4.0.0/packages/integrations/tailwind)

---
updated-dependencies:
- dependency-name: "@astrojs/tailwind"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-22 23:06:27 +00:00
Max SchmidtandGitHub b76e39f597 Merge pull request #24 from mooxl/dependabot/npm_and_yarn/astro/astrojs/tailwind-4.0.0
Bump @astrojs/tailwind from 3.1.3 to 4.0.0 in /astro
2023-06-23 01:04:10 +02:00
Max SchmidtandGitHub 3e8533f5e9 Update dependabot.yml 2023-06-23 01:03:42 +02:00
Max Schmidt 1c1acd2129 Remove yarn.lock from .gitignore 2023-06-23 01:02:31 +02:00
Max Schmidt 23eb329a31 Add yarn.lock for dependabot
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-06-23 01:01:29 +02:00
dependabot[bot]andGitHub 8b1028984e Bump @astrojs/tailwind from 3.1.3 to 4.0.0 in /astro
Bumps [@astrojs/tailwind](https://github.com/withastro/astro/tree/HEAD/packages/integrations/tailwind) from 3.1.3 to 4.0.0.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/integrations/tailwind/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/tailwind@4.0.0/packages/integrations/tailwind)

---
updated-dependencies:
- dependency-name: "@astrojs/tailwind"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-22 22:59:41 +00:00
Max SchmidtandGitHub ad23edaed1 Update dependabot.yml 2023-06-23 00:58:16 +02:00
Max SchmidtandGitHub 0f83d014f0 Delete yarn.lock 2023-06-23 00:57:32 +02:00
Max Schmidt bd48dcdef6 Add prettier configuration and dev dependencies 2023-06-18 19:45:41 +02:00
Max Schmidt 5c78039be0 Update dev script command in package.json 2023-06-18 19:33:42 +02:00
Max Schmidt 32d398de4b Update skipcache URL in astro Dockerfile 2023-06-18 19:32:54 +02:00
Max Schmidt 1eef88c3d8 Fix package.json description formatting 2023-06-18 18:00:48 +02:00
Max Schmidt 507c07fb7b Update package name and description 2023-06-18 18:00:27 +02:00
Max Schmidt 8e7d0c30fe Add automatic restart to mongo service 2023-06-18 10:14:32 +02:00
Max Schmidt ec06f7e00b Add output directories to tsconfig path 2023-06-17 12:46:28 +02:00
Max Schmidt 0f9a1c36f5 Add tsconfig.json to production container 2023-06-17 12:41:31 +02:00
Max Schmidt 9f78d9abb4 Update version numbers and package descriptions 2023-06-17 12:36:40 +02:00
Max Schmidt 5a65ef73ae Delete Astro Starter Kit README 2023-06-17 12:36:31 +02:00
Max Schmidt ebfeca61c5 Update serve command to support TypeScript paths 2023-06-17 12:32:53 +02:00
Max Schmidt 4edfce0815 Fix path to src folder in tsconfig 2023-06-17 12:29:34 +02:00
Max Schmidt f83cb88bfd Update nodemon.json & package.json scripts to use tsconfig-paths 2023-06-17 12:25:57 +02:00
Max Schmidt b7f60e1f47 Refactor import paths in Content.astro 2023-06-17 12:24:56 +02:00
Max Schmidt 3a2ec92cde Refactor import statements to use absolute paths 2023-06-17 12:21:29 +02:00
Max Schmidt 7afdc0dd92 Update import paths and tsconfig options 2023-06-17 10:51:35 +02:00
Max Schmidt 08df56c679 Refactor imports in Astro project 2023-06-17 10:50:48 +02:00
Max Schmidt e4ccd21a23 Ignore Dockerfile and README.md in astro and payload directories 2023-06-17 10:48:50 +02:00
Max Schmidt 84a0853f51 Simplify volume mapping in docker-compose-dev.yml 2023-06-17 10:48:10 +02:00
Max SchmidtandGitHub 85694c68e3 Bump astro from 2.6.1 to 2.6.4 2023-06-17 01:31:22 +02:00
dependabot[bot]andGitHub 0f8ffd9343 Bump astro from 2.6.1 to 2.6.4 in /astro
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 2.6.1 to 2.6.4.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@2.6.4/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-16 23:30:23 +00:00
Max Schmidt a5983a71ea Add daily updates for npm packages in Astro and Payload directory 2023-06-17 01:29:28 +02:00
Max Schmidt c61734e799 Add yarn logs to .gitignore 2023-06-17 01:24:33 +02:00
Max Schmidt e3a9a19b61 Add version number to package.json 2023-06-17 01:23:45 +02:00
Max Schmidt ff391bf11c Remove redundant tsconfig exclude 2023-06-17 01:23:19 +02:00
Max Schmidt 99a1eded0f Add MIT license
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-06-15 18:43:59 +02:00
Max Schmidt c2aaf5f951 Exclude types file from git tracking 2023-06-15 15:54:33 +02:00
Max Schmidt 4b7f1a7c82 Add GitHub repository to .env and compose file 2023-06-15 15:36:50 +02:00
Max Schmidt 769bf80ca7 Replace MONGODB_URI with secrets 2023-06-15 15:15:21 +02:00
Max Schmidt df7a0b2870 Update git clone URL to use SSH protocol 2023-06-15 15:06:24 +02:00
Max Schmidt 297cac4533 Update secrets and variables formatting 2023-06-15 14:57:01 +02:00
Max Schmidt ac3c1dfde0 Update formatting and add clarity to README 2023-06-15 14:56:17 +02:00
Max Schmidt 764b4e5d23 Add secrets and variables configuration 2023-06-15 14:55:24 +02:00
Max Schmidt 317e01c498 Add environment variable NAME to docker-compose.yml 2023-06-07 12:21:40 +02:00
Max Schmidt 9e94b582d8 Fix github API endpoint in Posts.ts 2023-06-07 12:21:03 +02:00
Max Schmidt 1acdb2a58e Update replace_env function to use awk 2023-06-07 12:08:29 +02:00
Max Schmidt c55f1d6afc Update sed delimiter to use # instead of / in push.yml 2023-06-07 10:58:21 +02:00
Max Schmidt 2c3b26a809 Update PAYLOAD_SERVER_URL to PAYLOAD_URL and remove unused env var 2023-06-07 10:53:39 +02:00
Max Schmidt fe5a99f370 Remove unnecessary environment variable 2023-06-07 10:46:31 +02:00
Max Schmidt 136e4e67cd Create astro directory and copy .env there 2023-06-07 10:42:55 +02:00
Max Schmidt 91f6efb772 Add PAYLOAD_SERVER_URL to environment variables 2023-06-07 10:39:23 +02:00
Max Schmidt 100412c783 Simplify setup for developing website with Astroad 2023-06-07 10:30:43 +02:00
Max Schmidt 36678d38b7 Update Astro and Payload dependencies 2023-06-07 10:21:48 +02:00
Max Schmidt 3a39f967ef Update environment variables on deployment 2023-06-07 10:19:45 +02:00
Max Schmidt 7244fb1d53 Update .gitignore and Media collection configuration 2023-06-06 17:29:03 +02:00
Max Schmidt bb54d5e30c hallo
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 14:35:46 +02:00
Max Schmidt d60357917e heya
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 13:34:26 +02:00
Max Schmidt e48b0d1afe heyo
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 13:33:21 +02:00
Max Schmidt 0d20e7f738 hallo
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 13:30:03 +02:00
Max Schmidt bf16b2b010 test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 13:15:32 +02:00
Max Schmidt 745db317ce hallo
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 13:11:47 +02:00
Max Schmidt 1645190643 asdf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 13:06:28 +02:00
Max Schmidt 3aacabbb2c asdf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 11:09:07 +02:00
Max Schmidt b1c2315eca asdf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 10:52:25 +02:00
Max Schmidt a3e58fecd6 asdf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 08:05:10 +02:00
Max Schmidt b958e29288 asdf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 07:37:21 +02:00
Max Schmidt d258042f5a asdf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-19 07:26:24 +02:00
Max Schmidt dc2da20ae9 asdfa
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 19:02:55 +02:00
Max Schmidt a6047e2ccf asdf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 18:56:59 +02:00
Max Schmidt b35b0705a4 hallo"
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 18:54:45 +02:00
Max Schmidt 5bcfd32e1a testo
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 18:52:14 +02:00
Max Schmidt a321c27376 heya
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 18:47:10 +02:00
Max Schmidt ef3b65b1c0 add node-fetch
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 18:43:20 +02:00
Max Schmidt b961ec8268 hallo
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 18:40:09 +02:00
Max Schmidt ffae1a02e9 test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 18:33:35 +02:00
Max Schmidt d5c4c23500 test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 18:26:23 +02:00
Max Schmidt 35a01e6754 sdf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 18:21:45 +02:00
Max Schmidt 1dfee93bb0 hey
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 18:03:20 +02:00
Max Schmidt 88f49952e3 heya
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 18:00:40 +02:00
Max Schmidt 75e0a0192d test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 17:30:59 +02:00
Max Schmidt 21fe6de0ec test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 17:03:20 +02:00
Max Schmidt ec0e7601c4 test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 16:52:46 +02:00
Max Schmidt 5ca25e699a test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 16:48:30 +02:00
Max Schmidt 4f2ddb4cc8 test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 16:35:07 +02:00
Max SchmidtandGitHub 7277712740 Merge branch 'prod' into dev 2023-05-17 16:31:49 +02:00
Max Schmidt ab83c4e4f1 dsaf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 16:31:12 +02:00
Max SchmidtandGitHub 9053de8f4b fdsaf (#11)
* test

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* fas

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* test

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

---------

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 16:29:24 +02:00
Max SchmidtandGitHub 47e8824f2d Merge branch 'prod' into dev 2023-05-17 16:29:16 +02:00
Max Schmidt 134820e898 test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 16:27:48 +02:00
Max Schmidt 364fc363f0 fas
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 16:10:56 +02:00
Max SchmidtandGitHub 21fe4ff02d test (#10)
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 15:46:30 +02:00
Max Schmidt 51820b5794 test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 15:45:53 +02:00
Max SchmidtandGitHub db74add82b Prod (#8)
* hola (#4)

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* hola (#5)

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* gds (#6)

* hola

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* dsaf

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* hdsaf

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* fadsf

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

---------

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

---------

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 15:41:34 +02:00
Max SchmidtandGitHub 9b275a5a32 Prod (#7)
* hola (#4)

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* hola (#5)

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* gds (#6)

* hola

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* dsaf

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* hdsaf

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

* fadsf

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

---------

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>

---------

Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 15:41:08 +02:00
Max Schmidt 5e24986681 fadsf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 12:53:22 +02:00
Max Schmidt 469251742e hdsaf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 12:49:07 +02:00
Max Schmidt 81deb1f31d dsaf
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 12:49:07 +02:00
Max SchmidtandGitHub 62418bf33e Merge pull request #3 from mooxl/prod
Prod
2023-05-17 12:42:42 +02:00
Max Schmidt 68b09c2072 hola
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 12:42:25 +02:00
Max SchmidtandGitHub 57ac98b83b Merge pull request #2 from mooxl/dev
test
2023-05-17 12:39:24 +02:00
Max Schmidt 1db9a4ed63 test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 12:38:52 +02:00
Max SchmidtandGitHub 61d9b49a0b Merge pull request #1 from mooxl/dev
merge
2023-05-17 12:35:21 +02:00
Max Schmidt 48aa001f7f heyo
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 12:34:32 +02:00
Max Schmidt 8e40da01fc hallo
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 12:33:31 +02:00
Max Schmidt f20bf2f8e3 test
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 12:32:58 +02:00
Max Schmidt 2889ccc655 heya
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 12:27:22 +02:00
Max Schmidt d30d3e61b9 lool
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 11:56:36 +02:00
Max Schmidt 7f01d39909 heyy
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-17 09:18:08 +02:00
Max Schmidt a4ed5449e9 LOOL
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-15 17:48:17 +02:00
Max Schmidt d8c1f15c91 HS
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-15 17:38:17 +02:00
Max Schmidt acda6ea8c0 HA
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-15 17:11:32 +02:00
Max Schmidt 7a57a69259 HEEE
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-15 16:52:29 +02:00
Max Schmidt a4b119614d AII
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-13 19:10:57 +02:00
Max Schmidt 0dfad4431f UFF
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-13 19:10:37 +02:00
Max Schmidt 43fc0a402c Update repository_dispatch event type in astro.yml workflow 2023-05-13 17:56:44 +02:00
Max Schmidt b012574e13 Add support for custom events in Astro workflow 2023-05-13 17:54:57 +02:00
Max Schmidt 01a286d0b6 Trigger build via ssh and list files 2023-05-13 17:49:41 +02:00
Max Schmidt 52c351f1f6 Add remote SSH command execution step to Astro workflow 2023-05-13 17:48:33 +02:00
Max Schmidt 759a477f31 Refactor SSH credentials in astro.yml workflow 2023-05-13 17:40:15 +02:00
Max Schmidt 7f53829c77 Add checkout action to Astro workflow 2023-05-13 17:36:19 +02:00
Max Schmidt c966a4dba9 Add remote SSH command for triggering Astro build 2023-05-13 17:33:41 +02:00
Max Schmidt c7bf11a5ee Refactor Astro workflow for GitHub Pages deployment 2023-05-13 17:25:38 +02:00
Max Schmidt 2e4c5f1684 Update BUILD_PATH to include relative path 2023-05-13 16:58:19 +02:00
Max Schmidt f8372774d8 Add yarn.lock
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-13 16:57:08 +02:00
Max SchmidtandGitHub a762a63c9d Create astro.yml 2023-05-13 16:55:41 +02:00
Max Schmidt 9f9445e218 Initial Commit
Signed-off-by: Max Schmidt <max.schmidt@outlook.de>
2023-05-13 16:38:56 +02:00
159 changed files with 14981 additions and 17021 deletions
-1
View File
@@ -1 +0,0 @@
/Dockerfile
+33 -2
View File
@@ -2,15 +2,46 @@
kind: pipeline
name: publish pipeline
steps:
- name: publish container
- name: publish astro container
image: plugins/docker
settings:
username: 3wordchant
password:
from_secret: git_autonomic_zone_token_3wc
repo: git.autonomic.zone/autonomic-cooperative/justice-equity-technology
repo: git.autonomic.zone/ruangrupa/lumbung-kios-astro
auto_tag: true
registry: git.autonomic.zone
context: astro
dockerfile: astro/Dockerfile
target: prod
- name: publish payload container
image: plugins/docker
settings:
username: 3wordchant
password:
from_secret: git_autonomic_zone_token_3wc
repo: git.autonomic.zone/ruangrupa/lumbung-kios-payload
auto_tag: true
registry: git.autonomic.zone
context: payload
dockerfile: payload/Dockerfile
target: prod
- name: deploy stack
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
settings:
stack: kios_lumbung_space
host: lumbung.space
deploy_key:
from_secret: drone_ssh_lumbung.space
environment:
DOMAIN: kios.lumbung.space
STACK_NAME: kios_lumbung_space
SECRET_PAYLOAD_SECRET_VERSION: v1
SECRET_TOKEN_VERSION: v1
SECRET_MONGO_PASSWORD_VERSION: v1
depends_on:
- publish astro container
- publish payload container
trigger:
branch:
- main
+11
View File
@@ -0,0 +1,11 @@
NAME=astroad
ASTRO_HOST=localhost:3000
PAYLOAD_HOST=payload:3001
PAYLOAD_URL=http://localhost:3001
PAYLOAD_PORT=3001
PAYLOAD_SECRET=supersecretkey
MONGODB_URI=mongodb://payload:test@mongo:27017
MONGODB_USER=payload
MONGODB_PW=test
TOKEN=supersecrettoken
REPOSITORY=mooxl/astroad
-16
View File
@@ -1,16 +0,0 @@
MONGODB_URI=mongodb://db:27017
DB_NAME=turbopress
# # FIXME: this is ignored? 🤔🤔🤔
ASTRO_PORT=3000
ASTRO_HOST=0.0.0.0
HOST=0.0.0.0
PAYLOAD_PORT=3001
PAYLOAD_HOST=0.0.0.0
PAYLOAD_PUBLIC_SERVER_URL=http://jett.localhost:3001
PAYLOAD_SECRET=37aecd563edc5550a44bbf1e
# PAYLOAD_CONFIG_PATH=src/payload.config.ts
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
S3_REGION=
S3_BUCKET=
S3_ENDPOINT=
-5
View File
@@ -1,5 +0,0 @@
module.exports = {
root: true,
extends: ["custom"],
rules: {},
};
+10
View File
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/astro"
schedule:
interval: "daily"
- package-ecosystem: "npm"
directory: "/payload"
schedule:
interval: "daily"
+29
View File
@@ -0,0 +1,29 @@
name: Payload update
on:
repository_dispatch:
types: [payload_update]
jobs:
cancel:
name: Cancel Previous Runs
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.11.0
with:
ignore_sha: true
access_token: ${{ github.token }}
workflow_id: "payload.yml"
build:
needs: cancel
runs-on: ubuntu-latest
steps:
- name: Trigger build
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.KEY }}
script: |
cd ${{ secrets.PATH }}
yarn prod astro
+74
View File
@@ -0,0 +1,74 @@
name: Code Deployment and Environment Setup
on:
push:
branches:
- main
jobs:
build:
name: Run remote SSH commands
runs-on: ubuntu-latest
steps:
- name: Clone or pull repository
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.KEY }}
script_stop: false
script: |
if [ -d ${{ secrets.PATH }} ]; then
cd ${{ secrets.PATH }}
git pull
else
mkdir -p ${{ secrets.PATH }}
cd ${{ secrets.PATH }}
git clone git@github.com:${{ github.repository }}.git .
fi
- name: Update environment variables
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.KEY }}
script_stop: false
script: |
# Bash function to replace env variables
replace_env() {
local env_var=$1
local new_value=$2
awk -v var="${env_var}" -v val="${new_value}" -F '=' '{OFS=FS} $1 == var {$2 = val} 1' .env > .env.tmp && mv .env.tmp .env
}
cd ${{ secrets.PATH }}
# Replace .env with vars
replace_env 'NAME' '${{ vars.NAME }}'
replace_env 'ASTRO_HOST' '${{ vars.ASTRO_HOST }}'
replace_env 'PAYLOAD_HOST' '${{ vars.PAYLOAD_HOST }}'
replace_env 'PAYLOAD_URL' '${{ vars.PAYLOAD_URL }}'
replace_env 'PAYLOAD_PORT' '${{ vars.PAYLOAD_PORT }}'
# Replace .env with secrets
replace_env 'PAYLOAD_SECRET' '${{ secrets.PAYLOAD_SECRET }}'
replace_env 'MONGODB_URI' 'mongodb://${{ secrets.MONGODB_USER }}:${{ secrets.MONGODB_PW }}@mongo:27017'
replace_env 'MONGODB_USER' '${{ secrets.MONGODB_USER }}'
replace_env 'MONGODB_PW' '${{ secrets.MONGODB_PW }}'
replace_env 'TOKEN' '${{ secrets.TOKEN }}'
# Replace .env with GitHub repository
replace_env 'REPOSITORY' '${{ github.repository }}'
mkdir -p ./astro
cp .env ./astro/.env
- name: Start Production Services
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.KEY }}
script: |
cd ${{ secrets.PATH }}
yarn prod payload
yarn prod astro
+2 -35
View File
@@ -1,36 +1,3 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
node_modules
.pnp
.pnp.js
# testing
coverage
# next.js
.next/
out/
build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
data
yarn-debug.log*
yarn-error.log*
# local env files
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
# turbo
.turbo
# vercel
.vercel
yarn-error.log*
-4
View File
@@ -1,4 +0,0 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
pnpm test && pnpm exec lint-staged
-1
View File
@@ -1 +0,0 @@
auto-install-peers = true
-12
View File
@@ -1,12 +0,0 @@
.DS_Store
node_modules
/build
/package
.env
.env.*
!.env.example
# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock
-13
View File
@@ -1,13 +0,0 @@
{
"trailingComma": "all",
"plugins": ["prettier-plugin-astro", "prettier-plugin-svelte"],
"overrides": [
{
"files": "*.astro",
"options": {
"parser": "astro"
}
},
{ "files": "*.svelte", "options": { "parser": "svelte" } }
]
}
-6
View File
@@ -1,6 +0,0 @@
{
"prettier.documentSelectors": ["**/*.astro"],
"[astro]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
-128
View File
@@ -1,128 +0,0 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
-12
View File
@@ -1,12 +0,0 @@
FROM node:21-alpine3.18
RUN npm i -g pnpm turbo
WORKDIR /app
COPY . .
RUN pnpm install
ENV PAYLOAD_CONFIG_PATH=src/payload.config.ts
ENV PAYLOAD_PUBLIC_SERVER_URL=http://localhost:3000
RUN pnpm build
CMD ["pnpm", "serve"]
+20
View File
@@ -0,0 +1,20 @@
MIT License
Copyright (c) 2023 Max Schmidt
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-382
View File
@@ -1,382 +0,0 @@
# Mozilla Public License Version 2.0
1. Definitions
---
1.1. "Contributor"
means each individual or legal entity that creates, contributes to
the creation of, or owns Covered Software.
1.2. "Contributor Version"
means the combination of the Contributions of others (if any) used
by a Contributor and that particular Contributor's Contribution.
1.3. "Contribution"
means Covered Software of a particular Contributor.
1.4. "Covered Software"
means Source Code Form to which the initial Contributor has attached
the notice in Exhibit A, the Executable Form of such Source Code
Form, and Modifications of such Source Code Form, in each case
including portions thereof.
1.5. "Incompatible With Secondary Licenses"
means
(a) that the initial Contributor has attached the notice described
in Exhibit B to the Covered Software; or
(b) that the Covered Software was made available under the terms of
version 1.1 or earlier of the License, but not also under the
terms of a Secondary License.
1.6. "Executable Form"
means any form of the work other than Source Code Form.
1.7. "Larger Work"
means a work that combines Covered Software with other material, in
a separate file or files, that is not Covered Software.
1.8. "License"
means this document.
1.9. "Licensable"
means having the right to grant, to the maximum extent possible,
whether at the time of the initial grant or subsequently, any and
all of the rights conveyed by this License.
1.10. "Modifications"
means any of the following:
(a) any file in Source Code Form that results from an addition to,
deletion from, or modification of the contents of Covered
Software; or
(b) any new file in Source Code Form that contains any Covered
Software.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU
Lesser General Public License, Version 2.1, the GNU Affero General
Public License, Version 3.0, or any later versions of those
licenses.
1.13. "Source Code Form"
means the form of the work preferred for making modifications.
1.14. "You" (or "Your")
means an individual or a legal entity exercising rights under this
License. For legal entities, "You" includes any entity that
controls, is controlled by, or is under common control with You. For
purposes of this definition, "control" means (a) the power, direct
or indirect, to cause the direction or management of such entity,
whether by contract or otherwise, or (b) ownership of more than
fifty percent (50%) of the outstanding shares or beneficial
ownership of such entity.
2. License Grants and Conditions
---
2.1. Grants
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
(a) under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or
as part of a Larger Work; and
(b) under Patent Claims of such Contributor to make, use, sell, offer
for sale, have made, import, and otherwise transfer either its
Contributions or its Contributor Version.
2.2. Effective Date
The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.
2.3. Limitations on Grant Scope
The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:
(a) for any code that a Contributor has removed from Covered Software;
or
(b) for infringements caused by: (i) Your and any other third party's
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
(c) under Patent Claims infringed by Covered Software in the absence of
its Contributions.
This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).
2.4. Subsequent Licenses
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).
2.5. Representation
Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.
2.6. Fair Use
This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.
2.7. Conditions
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.
3. Responsibilities
---
3.1. Distribution of Source Form
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.
3.2. Distribution of Executable Form
If You distribute Covered Software in Executable Form then:
(a) such Covered Software must also be made available in Source Code
Form, as described in Section 3.1, and You must inform recipients of
the Executable Form how they can obtain a copy of such Source Code
Form by reasonable means in a timely manner, at a charge no more
than the cost of distribution to the recipient; and
(b) You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter
the recipients' rights in the Source Code Form under this License.
3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).
3.4. Notices
You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.
3.5. Application of Additional Terms
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
4. Inability to Comply Due to Statute or Regulation
---
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.
5. Termination
---
5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.
---
- *
- 6. Disclaimer of Warranty \*
- ------------------------- \*
- *
- Covered Software is provided under this License on an "as is" \*
- basis, without warranty of any kind, either expressed, implied, or \*
- statutory, including, without limitation, warranties that the \*
- Covered Software is free of defects, merchantable, fit for a \*
- particular purpose or non-infringing. The entire risk as to the \*
- quality and performance of the Covered Software is with You. \*
- Should any Covered Software prove defective in any respect, You \*
- (not any Contributor) assume the cost of any necessary servicing, \*
- repair, or correction. This disclaimer of warranty constitutes an \*
- essential part of this License. No use of any Covered Software is \*
- authorized under this License except under this disclaimer. \*
- *
---
---
- *
- 7. Limitation of Liability \*
- -------------------------- \*
- *
- Under no circumstances and under no legal theory, whether tort \*
- (including negligence), contract, or otherwise, shall any \*
- Contributor, or anyone who distributes Covered Software as \*
- permitted above, be liable to You for any direct, indirect, \*
- special, incidental, or consequential damages of any character \*
- including, without limitation, damages for lost profits, loss of \*
- goodwill, work stoppage, computer failure or malfunction, or any \*
- and all other commercial damages or losses, even if such party \*
- shall have been informed of the possibility of such damages. This \*
- limitation of liability shall not apply to liability for death or \*
- personal injury resulting from such party's negligence to the \*
- extent applicable law prohibits such limitation. Some \*
- jurisdictions do not allow the exclusion or limitation of \*
- incidental or consequential damages, so this exclusion and \*
- limitation may not apply to You. \*
- *
---
8. Litigation
---
Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.
9. Miscellaneous
---
This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.
10. Versions of the License
---
10.1. New Versions
Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.
10.2. Effect of New Versions
You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.
10.3. Modified Versions
If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).
10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses
If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.
## Exhibit A - Source Code Form License Notice
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to look
for such a notice.
You may add additional accurate notices of copyright ownership.
## Exhibit B - "Incompatible With Secondary Licenses" Notice
This Source Code Form is "Incompatible With Secondary Licenses", as
defined by the Mozilla Public License, v. 2.0.
+68 -59
View File
@@ -1,77 +1,86 @@
## Quickstart
# Astroad
Astroad is a pre-configured setup for Astro and Payloadcms, designed to make it easy for you to start building your website. With Astroad, you'll have a complete development environment that you can run locally using Docker. This setup simplifies the testing and development of your website before deploying it to a production environment.
## Important notes
### Adding dependencies
1. When adding a dedpendency to astro or payload, you must regenerate the yarn.lock file for the dev server toinstall the dependencies.
2. Regenerate the lock file:
`cd astro` or `cd payload`
`rm yarn.lock`
`yarn install`
3. Restart dev server `yarn dev`
## Dev server getting stuck
Sometimes the dev script gets stuck, for an unknown reason:
```
docker-compose -f docker-compose.yml up
[+] Running 3/0
✔ Container astroad-mongo Running 0.0s
✔ Container astroad-payload Running 0.0s
✔ Container astroad-astro Running
```
## About
This project was bootstrapped with a [turbopress](https://github.com/turbopress/turbopress)
### Useful docs
- [Astro docs: Integrating with PayloadCMS](https://docs.astro.build/en/guides/cms/payload/)
- [Astro docs: Deployment and SSR adapters](https://docs.astro.build/en/guides/deploy/)
- [Astro docs: On demand rendering adapters](https://docs.astro.build/en/guides/server-side-rendering/)
## Why Astro?
Astro allow you to use your favorite UI components and libraries. Mix and match React, Preact, Svelte, Vue, SolidJS, AlpineJS, and Lit to build your own website.
## Why PayloadCMS?
I need a headless CMS that is easy to use with TypeScript support. PayloadCMS work really well in this use case.
## What's inside?
This Turborepo includes the following packages/apps:
### Apps and Packages
- `api`: a [Payload](https://payloadcms.com/) app
- `web`: an [Astro](https://astro.build/) app
- `eslint-config-custom`: `eslint` configurations (includes `eslint-config-prettier` and `eslint-configg-turbo`)
Each package/app is 100% [TypeScript](https://www.typescriptlang.org/).
### Utilities
This Turborepo has some additional tools already setup for you:
- [TypeScript](https://www.typescriptlang.org/) for static type checking
- [TailwindCSS](https://tailwindcss.com/) for CSS utility
- [ESLint](https://eslint.org/) for code linting
- [Prettier](https://prettier.io) for code formatting
Running `yarn stop` and then `yarn dev` should resolve the issue.
## Prerequisites
Install `nodejs`, `pnpm` and `turborepo` on your local machine
Before getting started with Astroad, make sure you have the necessary software installed:
## Develop
- Docker
- Node.js
- Yarn
Create a `.env` file in the root folder, you can use the `.env.example` file as an example
## Configuration
I use `pnpm` for this project.
While there's no configuration necessary for local development, deployment via Github Workflows requires specific secrets and variables to be set.
Run the following command:
### Secrets:
```sh
pnpm installl
pnpm dev
```
- `USER`: User on the server
- `HOST`: IP or URL of the server
- `KEY`: SSH KEY for connecting to the server
- `MONGODB_PW`: Password for MongoDB
- `MONGODB_USER`: User for MongoDB
- `PATH`: Path where the repository resides on the server
- `PAYLOAD_PORT`: Port at which Payload listens
- `PAYLOAD_SECRET`: String to encrypt Payload data
- `TOKEN`: Github Access Token for the webhook to trigger the payload.yml workflow and execute a new Astro build
By default, the payloadCMS will run on port 3000, and Astro will be served on port 3001.
### Variables:
## Build & Serve (NodeJs)
- `ASTRO_HOST`: Hostdomain of the Frontend
- `PAYLOAD_HOST`: Hostdomain of the CMS
- `PAYLOAD_URL`: URL of the CMS
- `NAME`: Name of the Container and Project
```sh
pnpm build
pnpm serve
```
Please remember to set these secrets and variables in your repository settings to ensure a successful deployment through Github Workflows.
## TypeScript support
Once the secrets and variables are set on GitHub, they will replace the existing ones in the `.env` file on the server during deployment. This is done by the push.yml workflow, which replaces the placeholders in the `.env` with the actual secrets and variables defined in the repository settings. Please ensure that the names of your secrets and variables match with the placeholders in the `.env` file.
To fully utilize the type safe features, manually generate the types for PayloadCMS by runng `pnpm generate:types`
## Getting started
Then, you can import the types easily as simple as
To get started with Astroad, you'll need to have Docker and NPM || Yarn || PNPM installed on your machine.
```ts
import type { User } from "@turbopress/api/types";
```
You have two options for getting the repository:
1. Use the 'Use this template' button on the Github repository. This will create a new repository in your Github account with the same directory structure and files as Astroad. After the new repository is created, you can clone it to your local machine.
1. Alternatively, you can directly clone the Astroad repository: git clone https://github.com/mooxl/astroad.git. If you choose this option, remember to change the origin of your remote repository to a new one to avoid pushing changes directly to the Astroad repository. This can be done with the command: git remote set-url origin https://github.com/USERNAME/REPOSITORY.git where USERNAME is your username and REPOSITORY is the name of your new repository.
Once you've cloned the repository or created your own from the template, follow these steps:
1. Change into the repository directory: `cd {newName}`
1. Start the containers: `yarn dev`
This will start up the Astro, Payloadcms and Mongo containers and make them available on your local machine. Astro will be served at http://localhost:3000 and the Payload will be available at http://localhost:3001.
## Development
The `docker-compose.yml` and `docker-compose-dev.yml` files includes everything you need to run the containers. The containers use the environment variables declared in the `.env` file and mounted volumes to store data persistently even after the containers are stopped and started.
## Deployment
Deployment is handled by a Github Actions Workflow on every push. It logs into the server via SSH, pulls or clones the latest version of the repository, and runs `yarn prod`.
Because Astro is completely static, a content change in the CMS must trigger a new build of Astro. Therefore, theres a `payload.yml` workflow that gets triggered by a webhook after every content change from Payload.
Ensure you have Traefik set up as a reverse proxy before deployment. The prod script will launch your site in a production-ready environment.
-1
View File
@@ -1 +0,0 @@
**/node_modules
-5
View File
@@ -1,5 +0,0 @@
module.exports = {
root: true,
extends: ["custom"],
rules: {},
};
-169
View File
@@ -1,169 +0,0 @@
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
### Node Patch ###
# Serverless Webpack directories
.webpack/
# Optional stylelint cache
# SvelteKit build / generate output
.svelte-kit
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix
### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide
# Support for Project snippet scope
.vscode/*.code-snippets
# Ignore code-workspaces
*.code-workspace
# End of https://www.toptal.com/developers/gitignore/api/node,visualstudiocode
# Local media files
media
-39
View File
@@ -1,39 +0,0 @@
FROM node:18-alpine as base
RUN npm i -g pnpm turbo
FROM base AS pruner
WORKDIR /app
COPY . .
RUN turbo prune --scope=@turbopress/api --docker
# remove all empty node_modules folder structure
RUN rm -rf /app/out/full/*/*/node_modules
FROM base AS builder
RUN apk add --no-cache libc6-compat
RUN apk update
WORKDIR /app
# Add lockfile and package.json's of isolated subworkspace
COPY .gitignore .gitignore
COPY --from=pruner /app/out/json/ .
RUN pnpm install
# Build the project and its dependencies
COPY --from=pruner /app/out/full/ .
ENV PAYLOAD_CONFIG_PATH=src/payload.config.ts
RUN pnpm build:api
# Run App
FROM base as runner
WORKDIR /app
ENV NODE_ENV=production
ENV PAYLOAD_CONFIG_PATH=dist/payload.config.js
COPY --from=builder /app/apps/api/package.json .
RUN pnpm install --prod
COPY --from=builder /app/apps/api/dist ./dist
COPY --from=builder /app/apps/api/build ./build
EXPOSE 3000
CMD ["node", "dist/server.js"]
-19
View File
@@ -1,19 +0,0 @@
# api
This project was created using create-payload-app using the blog template.
## How to Use
`yarn dev` will start up your application and reload on any changes.
### Docker
If you have docker and docker-compose installed, you can run `docker-compose up`
To build the docker image, run `docker build -t my-tag -f Dockerfile ../..`
Ensure you are passing all needed environment variables when starting up your container via `--env-file` or setting them with your deployment.
The 3 typical env vars will be `MONGODB_URI`, `PAYLOAD_SECRET`, and `PAYLOAD_CONFIG_PATH`
`docker run --env-file .env -p 3000:3000 my-tag`
-5
View File
@@ -1,5 +0,0 @@
{
"watch": ["src"],
"ext": "ts",
"exec": "ts-node src/server.ts"
}
-36
View File
@@ -1,36 +0,0 @@
{
"name": "@turbopress/api",
"description": "Headless CMS based on Payload",
"version": "1.0.0",
"main": "dist/server.js",
"license": "MIT",
"scripts": {
"dev": "nodemon",
"build:payload": "payload build",
"build:server": "tsc",
"build": "pnpm copyfiles && pnpm build:payload && pnpm build:server",
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png}\" dist/",
"generate:types": "payload generate:types",
"lint": "eslint \"./src/**/*.{js,ts}\" --fix",
"serve": "PAYLOAD_CONFIG_PATH=dist/payload.config.js node dist/server.js"
},
"dependencies": {
"dotenv": "^8.2.0",
"express": "^4.17.1",
"payload": "1.12.0",
"@payloadcms/plugin-seo": "latest",
"@payloadcms/plugin-cloud-storage": "latest",
"@aws-sdk/client-s3": "latest",
"@aws-sdk/lib-storage": "latest"
},
"devDependencies": {
"eslint": "latest",
"@types/express": "^4.17.9",
"copyfiles": "^2.4.1",
"nodemon": "^2.0.6",
"ts-node": "^9.1.1",
"typescript": "^4.8.4",
"webpack-hot-middleware": "^2.25.4",
"eslint-config-custom": "*"
}
}
-128
View File
@@ -1,128 +0,0 @@
import payload from "payload";
import { Block } from "payload/types";
import Pages from "../collections/Pages";
import linkField from "../fields/linkField";
export const Menu: Block = {
slug: "menu",
interfaceName: "Menu",
fields: [
{
name: "type",
type: "select",
options: ["default"],
required: true,
defaultValue: "default",
},
{
name: "menus",
type: "array",
fields: [
{
name: "mainMenu",
type: "group",
interfaceName: "MainMenu",
fields: [
{
type: "row",
fields: [
{
name: "type",
type: "radio",
options: [
{
label: "Internal link",
value: "reference",
},
{
label: "Custom URL",
value: "custom",
},
{
label: "None",
value: "none",
},
],
defaultValue: "reference",
admin: {
layout: "horizontal",
width: "50%",
},
},
{
name: "newTab",
label: "Open in new tab",
type: "checkbox",
admin: {
condition: (_, siblingData) => siblingData?.type != "none",
width: "50%",
style: {
alignSelf: "flex-end",
},
},
},
{
name: "reference",
label: "Document to link to",
type: "relationship",
relationTo: [Pages.slug],
required: true,
maxDepth: 0,
admin: {
condition: (_, siblingData) =>
siblingData?.type === "reference",
width: "50%",
},
hooks: {
afterRead: [
async ({ value, siblingData }) => {
if (value && siblingData.type === "reference") {
const id = value.value;
const pages = await payload.find({
collection: "pages",
where: {
id: { equals: id },
},
depth: 0,
});
if (pages.docs[0]?.slug)
siblingData.url = pages.docs[0].slug;
}
},
],
},
},
{
name: "url",
label: "Custom URL",
type: "text",
required: true,
admin: {
condition: (_, siblingData) =>
siblingData?.type === "custom",
width: "50%",
},
},
{
name: "label",
label: "Label",
type: "text",
required: true,
admin: {
width: "50%",
},
},
],
},
{
name: "subMenu",
type: "array",
fields: [linkField()],
},
],
},
],
},
],
};
-17
View File
@@ -1,17 +0,0 @@
import { Block } from "payload/types";
export const PageContent: Block = {
slug: "pageContent",
interfaceName: "PageContent",
fields: [
{
name: "description",
type: "textarea",
defaultValue:
"This block will display the content of the page (if any). Please edit the original page change the value.",
admin: {
readOnly: true,
},
},
],
};
-52
View File
@@ -1,52 +0,0 @@
import { Block } from "payload/types";
import Categories from "../collections/Categories";
import { PagesField } from "../collections/Pages";
import Tags from "../collections/Tags";
const PageListField = {
numberOfItems: "numberOfItems",
filterByCategories: "filterByCategories",
filterByTags: "filterByTags",
sortBy: "sortBy",
pages: "pages",
};
type PageListField = (typeof PageListField)[keyof typeof PageListField];
export const PageList: Block = {
slug: "pageList",
interfaceName: "PageList",
fields: [
{
name: PageListField.numberOfItems,
type: "number",
defaultValue: 5,
},
{
name: PageListField.filterByCategories,
type: "relationship",
relationTo: [Categories.slug],
maxDepth: 0,
hasMany: true,
},
{
name: PageListField.filterByTags,
type: "relationship",
relationTo: [Tags.slug],
hasMany: true,
maxDepth: 0,
},
{
name: PageListField.sortBy,
type: "select",
options: [
PagesField.title,
PagesField.createdAt,
PagesField.updatedAt,
`-${PagesField.title}`,
`-${PagesField.createdAt}`,
`-${PagesField.updatedAt}`,
],
},
],
};
-15
View File
@@ -1,15 +0,0 @@
import { Block } from "payload/types";
import Contents from "../collections/Contents";
export const ReusableContent: Block = {
slug: "reusableContent",
interfaceName: "ReusableContent",
fields: [
{
name: "reference",
type: "relationship",
// maxDepth: 0,
relationTo: [Contents.slug],
},
],
};
-9
View File
@@ -1,9 +0,0 @@
import { Block } from "payload/types";
export const SiteTitle: Block = {
slug: "siteTitle",
interfaceName: "SiteTitle",
fields: [
{ name: "siteName", type: "text", required: true, admin: { width: "50%" } },
],
};
-37
View File
@@ -1,37 +0,0 @@
import type { CollectionConfig } from "payload/types";
const CategoriesField = {
name: "name",
slug: "slug",
};
type CategoriesField = (typeof CategoriesField)[keyof typeof CategoriesField];
const Categories: CollectionConfig = {
slug: "categories",
admin: {
useAsTitle: CategoriesField.name,
},
access: {
read: () => true,
},
fields: [
{
name: CategoriesField.name,
type: "text",
required: true,
},
{
name: CategoriesField.slug,
type: "text",
required: true,
unique: true,
admin: {
position: "sidebar",
},
},
],
timestamps: false,
};
export default Categories;
-48
View File
@@ -1,48 +0,0 @@
import { CollectionConfig } from "payload/types";
import { Menu } from "../blocks/Menu";
import { PageContent } from "../blocks/PageContent";
import { PageList } from "../blocks/PageList";
import { SiteTitle } from "../blocks/SiteTitle";
const ContentsField = {
name: "name",
slug: "slug",
description: "description",
};
type ContentsField = (typeof ContentsField)[keyof typeof ContentsField];
const Contents: CollectionConfig = {
slug: "contents",
access: {
read: () => true,
},
admin: {
useAsTitle: ContentsField.name,
},
fields: [
{
name: ContentsField.name,
type: "text",
required: true,
},
{
name: ContentsField.slug,
type: "text",
unique: true,
admin: {
position: "sidebar",
},
},
{
name: ContentsField.description,
type: "text",
},
{
name: "blocks",
type: "blocks",
blocks: [Menu, PageContent, PageList, SiteTitle],
},
],
};
export default Contents;
-79
View File
@@ -1,79 +0,0 @@
import { CollectionConfig } from "payload/types";
import { Menu } from "../blocks/Menu";
import { PageContent } from "../blocks/PageContent";
import { PageList } from "../blocks/PageList";
import { ReusableContent } from "../blocks/ReusableContent";
import { SiteTitle } from "../blocks/SiteTitle";
const LayoutsField = {
name: "name",
slug: "slug",
description: "description",
};
type LayoutsField = (typeof LayoutsField)[keyof typeof LayoutsField];
const blocks = [ReusableContent];
const Layouts: CollectionConfig = {
slug: "layouts",
access: {
read: () => true,
},
admin: {
useAsTitle: LayoutsField.name,
},
fields: [
{
name: LayoutsField.name,
type: "text",
required: true,
},
{
name: LayoutsField.slug,
type: "text",
unique: true,
admin: {
position: "sidebar",
},
},
{
name: LayoutsField.description,
type: "text",
},
{
name: "header",
type: "group",
fields: [
{
name: "blocks",
type: "blocks",
blocks: [...blocks, Menu, SiteTitle],
},
],
},
{
name: "body",
type: "group",
fields: [
{
name: "blocks",
type: "blocks",
blocks: [...blocks, PageContent, PageList],
},
],
},
{
name: "footer",
type: "group",
fields: [
{
name: "blocks",
type: "blocks",
blocks: blocks,
},
],
},
],
};
export default Layouts;
-29
View File
@@ -1,29 +0,0 @@
import type { CollectionConfig } from "payload/types";
const Media: CollectionConfig = {
slug: "media",
access: {
read: () => true,
},
upload: {
disableLocalStorage: true,
adminThumbnail: "thumbnail",
imageSizes: [
{
height: 400,
width: 400,
crop: "center",
name: "thumbnail",
},
{
width: 900,
height: 450,
crop: "center",
name: "sixteenByNineMedium",
},
],
},
fields: [],
};
export default Media;
-113
View File
@@ -1,113 +0,0 @@
import type { CollectionConfig } from "payload/types";
export const PagesField = {
title: "title",
slug: "slug",
author: "author",
publishedDate: "publishedDate",
categories: "categories",
tags: "tags",
content: "content",
status: "status",
layout: "layout",
createdAt: "createdAt",
updatedAt: "updatedAt",
};
type PagesField = (typeof PagesField)[keyof typeof PagesField];
const PagesFieldStatus = {
Draft: "Draft",
Published: "Published",
};
type PagesFieldStatus =
(typeof PagesFieldStatus)[keyof typeof PagesFieldStatus];
const Pages: CollectionConfig = {
slug: "pages",
admin: {
defaultColumns: [
PagesField.title,
PagesField.slug,
PagesField.author,
PagesField.categories,
PagesField.tags,
PagesField.status,
],
useAsTitle: PagesField.title,
},
access: {
read: () => true,
},
fields: [
{
name: PagesField.title,
type: "text",
required: true,
},
{
name: PagesField.slug,
type: "text",
required: true,
admin: {
position: "sidebar",
},
},
{
name: PagesField.author,
type: "relationship",
relationTo: "users",
admin: {
position: "sidebar",
},
},
{
name: PagesField.publishedDate,
type: "date",
admin: {
position: "sidebar",
},
},
{
name: PagesField.categories,
type: "relationship",
relationTo: "categories",
hasMany: true,
admin: {
position: "sidebar",
},
},
{
name: PagesField.tags,
type: "relationship",
relationTo: "tags",
hasMany: true,
admin: {
position: "sidebar",
},
},
{
name: PagesField.status,
type: "select",
options: Object.entries(PagesFieldStatus).map((e) => {
return { label: e[0], value: e[1] };
}),
defaultValue: PagesFieldStatus.Draft,
admin: {
position: "sidebar",
},
},
{
name: PagesField.layout,
type: "relationship",
relationTo: "layouts",
},
{
name: PagesField.content,
type: "richText",
},
],
};
export default Pages;
-37
View File
@@ -1,37 +0,0 @@
import type { CollectionConfig } from "payload/types";
const TagsField = {
name: "name",
slug: "slug",
};
type TagsField = (typeof TagsField)[keyof typeof TagsField];
const Tags: CollectionConfig = {
slug: "tags",
admin: {
useAsTitle: TagsField.name,
},
access: {
read: () => true,
},
fields: [
{
name: TagsField.name,
type: "text",
required: true,
},
{
name: TagsField.slug,
type: "text",
required: true,
unique: true,
admin: {
position: "sidebar",
},
},
],
timestamps: false,
};
export default Tags;
-18
View File
@@ -1,18 +0,0 @@
import type { CollectionConfig } from "payload/types";
const Users: CollectionConfig = {
slug: "users",
auth: true,
admin: {
useAsTitle: "email",
},
fields: [
// Email added by default
{
name: "name",
type: "text",
},
],
};
export default Users;
-15
View File
@@ -1,15 +0,0 @@
import { SelectField } from "payload/types";
function enableField(fieldOverrides?: Partial<SelectField>): SelectField {
return {
label: "Enable",
name: "enable",
type: "select",
options: ["Yes", "No"],
defaultValue: "Yes",
required: true,
...fieldOverrides,
};
}
export default enableField;
-100
View File
@@ -1,100 +0,0 @@
import payload from "payload";
import { GroupField } from "payload/types";
function linkField(fieldOverrides?: Partial<GroupField>): GroupField {
return {
name: "link",
type: "group",
interfaceName: "Link",
fields: [
{
type: "row",
fields: [
{
name: "type",
type: "radio",
options: [
{
label: "Internal link",
value: "reference",
},
{
label: "Custom URL",
value: "custom",
},
],
defaultValue: "reference",
admin: {
layout: "horizontal",
width: "50%",
},
},
{
name: "newTab",
label: "Open in new tab",
type: "checkbox",
admin: {
width: "50%",
style: {
alignSelf: "flex-end",
},
},
},
{
name: "reference",
label: "Document to link to",
type: "relationship",
relationTo: ["pages"],
required: true,
maxDepth: 0,
admin: {
condition: (_, siblingData) => siblingData?.type === "reference",
width: "50%",
},
hooks: {
afterRead: [
async ({ value, siblingData }) => {
if (value && siblingData.type === "reference") {
const id = value.value;
const pages = await payload.find({
collection: "pages",
where: {
id: { equals: id },
},
depth: 0,
});
if (pages.docs[0]?.slug)
if (pages.docs[0]) siblingData.url = pages.docs[0].slug;
}
},
],
},
},
{
name: "url",
label: "Custom URL",
type: "text",
required: true,
admin: {
condition: (_, siblingData) => siblingData?.type === "custom",
width: "50%",
},
},
{
name: "label",
label: "Label",
type: "text",
required: true,
admin: {
width: "50%",
},
},
],
},
],
...fieldOverrides,
};
}
export default linkField;
-59
View File
@@ -1,59 +0,0 @@
import { cloudStorage } from "@payloadcms/plugin-cloud-storage";
import { s3Adapter } from "@payloadcms/plugin-cloud-storage/s3";
import seo from "@payloadcms/plugin-seo";
import { GenerateTitle } from "@payloadcms/plugin-seo/dist/types";
import path from "path";
import { buildConfig } from "payload/config";
import Categories from "./collections/Categories";
import Contents from "./collections/Contents";
import Layouts from "./collections/Layouts";
import Media from "./collections/Media";
import Pages from "./collections/Pages";
import Tags from "./collections/Tags";
import Users from "./collections/Users";
const generateTitle: GenerateTitle = ({ slug, doc }) => {
let title = "TurboPress";
if (slug == "pages") {
const page = doc as any;
return (title = `TurboPress - ${page?.title?.value}`);
}
return title;
};
const adapter = s3Adapter({
config: {
credentials: {
accessKeyId: process.env.S3_ACCESS_KEY_ID,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
},
region: process.env.S3_REGION,
endpoint: process.env.S3_ENDPOINT,
},
bucket: process.env.S3_BUCKET,
});
export default buildConfig({
serverURL: process.env.PAYLOAD_PUBLIC_SERVER_URL ?? "http://localhost:3000",
admin: {
user: Users.slug,
},
collections: [Categories, Contents, Layouts, Media, Pages, Tags, Users],
typescript: {
outputFile: path.join(__dirname, "../types", "payload.ts"),
},
plugins: [
seo({
collections: ["pages"],
uploadsCollection: "media",
generateTitle: generateTitle,
}),
cloudStorage({
collections: {
media: {
adapter: adapter,
},
},
}),
],
cors: "*",
});
-39
View File
@@ -1,39 +0,0 @@
import express from "express";
import payload from "payload";
const app = express();
// Redirect root to Admin panel
app.get("/", (_, res) => {
res.redirect("/admin");
});
const PORT = Number(process.env.PAYLOAD_PORT) ?? 3000;
const HOST = process.env.PAYLOAD_HOST ?? 'localhost';
const start = async () => {
// Initialize Payload
await payload.init({
secret: process.env.PAYLOAD_SECRET,
mongoURL: process.env.MONGODB_URI,
express: app,
onInit: async () => {
payload.logger.info(`Payload Admin URL: ${payload.getAdminURL()}`);
},
mongoOptions: {
dbName: process.env.DB_NAME,
},
});
// Add your own express routes here
app.listen(
PORT,
HOST,
() => {
console.log(`Server running at http://${HOST}:${PORT}/`);
}
);
};
start();
-2
View File
@@ -1,2 +0,0 @@
export * from "./payload";
export * from "./rich-text-export";
-200
View File
@@ -1,200 +0,0 @@
/* tslint:disable */
/* eslint-disable */
/**
* This file was automatically generated by Payload.
* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
* and re-run `payload generate:types` to regenerate this file.
*/
export interface Config {
collections: {
categories: Category;
contents: Content;
layouts: Layout;
media: Media;
pages: Page;
tags: Tag;
users: User;
};
globals: {};
}
export interface Category {
id: string;
name: string;
slug: string;
}
export interface Content {
id: string;
name: string;
slug?: string;
description?: string;
blocks?: (Menu | PageContent | PageList | SiteTitle)[];
updatedAt: string;
createdAt: string;
}
export interface Menu {
type: 'default';
menus?: {
mainMenu: MainMenu;
id?: string;
}[];
id?: string;
blockName?: string;
blockType: 'menu';
}
export interface MainMenu {
type?: 'reference' | 'custom' | 'none';
newTab?: boolean;
reference: {
value: string | Page;
relationTo: 'pages';
};
url: string;
label: string;
subMenu?: {
link: Link;
id?: string;
}[];
}
export interface Page {
id: string;
title: string;
slug: string;
author?: string | User;
publishedDate?: string;
categories?: string[] | Category[];
tags?: string[] | Tag[];
status?: 'Draft' | 'Published';
layout?: string | Layout;
content?: {
[k: string]: unknown;
}[];
meta?: {
title?: string;
description?: string;
image?: string | Media;
};
updatedAt: string;
createdAt: string;
}
export interface User {
id: string;
name?: string;
updatedAt: string;
createdAt: string;
email: string;
resetPasswordToken?: string;
resetPasswordExpiration?: string;
salt?: string;
hash?: string;
loginAttempts?: number;
lockUntil?: string;
password?: string;
}
export interface Tag {
id: string;
name: string;
slug: string;
}
export interface Layout {
id: string;
name: string;
slug?: string;
description?: string;
header?: {
blocks?: (ReusableContent | Menu | SiteTitle)[];
};
body?: {
blocks?: (ReusableContent | PageContent | PageList)[];
};
footer?: {
blocks?: ReusableContent[];
};
updatedAt: string;
createdAt: string;
}
export interface ReusableContent {
reference?: {
value: string | Content;
relationTo: 'contents';
};
id?: string;
blockName?: string;
blockType: 'reusableContent';
}
export interface SiteTitle {
siteName: string;
id?: string;
blockName?: string;
blockType: 'siteTitle';
}
export interface PageContent {
description?: string;
id?: string;
blockName?: string;
blockType: 'pageContent';
}
export interface PageList {
numberOfItems?: number;
filterByCategories?:
| {
value: string;
relationTo: 'categories';
}[]
| {
value: Category;
relationTo: 'categories';
}[];
filterByTags?:
| {
value: string;
relationTo: 'tags';
}[]
| {
value: Tag;
relationTo: 'tags';
}[];
sortBy?: 'title' | 'createdAt' | 'updatedAt' | '-title' | '-createdAt' | '-updatedAt';
id?: string;
blockName?: string;
blockType: 'pageList';
}
export interface Media {
id: string;
updatedAt: string;
createdAt: string;
url?: string;
filename?: string;
mimeType?: string;
filesize?: number;
width?: number;
height?: number;
sizes?: {
thumbnail?: {
url?: string;
width?: number;
height?: number;
mimeType?: string;
filesize?: number;
filename?: string;
};
sixteenByNineMedium?: {
url?: string;
width?: number;
height?: number;
mimeType?: string;
filesize?: number;
filename?: string;
};
};
}
export interface Link {
type?: 'reference' | 'custom';
newTab?: boolean;
reference: {
value: string | Page;
relationTo: 'pages';
};
url: string;
label: string;
}
-22
View File
@@ -1,22 +0,0 @@
import type {
RichTextElement,
RichTextLeaf,
} from "payload/dist/fields/config/types";
import type { RichTextCustomElement, RichTextCustomLeaf } from "payload/types";
type DefaultRichTextLeaf = Exclude<RichTextLeaf, RichTextCustomLeaf>;
export type FormattedText = {
[key in DefaultRichTextLeaf]?: boolean;
} & {
text: string;
};
type DefaultRichTextElement =
| Exclude<RichTextElement, RichTextCustomElement>
| "li"
| "quote";
export type FormattedElement = {
type: DefaultRichTextElement;
url?: string;
children: FormattedText[];
};
-17
View File
@@ -1,17 +0,0 @@
module.exports = {
root: true,
extends: ["custom", "plugin:astro/recommended"],
overrides: [
{
files: ["*.astro"],
parser: "astro-eslint-parser",
parserOptions: {
parser: "@typescript-eslint/parser",
extraFileExtensions: [".astro"],
},
rules: {
"@typescript-eslint/no-explicit-any": "off",
},
},
],
};
-13
View File
@@ -1,13 +0,0 @@
# Astro with Tailwind
```
npm create astro@latest -- --template with-tailwindcss
```
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/with-tailwindcss)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/with-tailwindcss)
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/with-tailwindcss/devcontainer.json)
Astro comes with [Tailwind](https://tailwindcss.com) support out of the box. This example showcases how to style your Astro project with Tailwind.
For complete setup instructions, please see our [Tailwind Integration Guide](https://docs.astro.build/en/guides/integrations-guide/tailwind).
-27
View File
@@ -1,27 +0,0 @@
import mdx from "@astrojs/mdx";
import node from "@astrojs/node";
import svelte from "@astrojs/svelte";
import tailwind from "@astrojs/tailwind";
import { defineConfig } from "astro/config";
export default defineConfig({
integrations: [mdx(), tailwind(), svelte()],
server: {
port: parseInt(process.env.ASTRO_PORT ?? "3000"),
// FIXME 3wc: seems to be ignored?
hostname: process.env.ASTRO_HOST ?? "0.0.0.0",
},
output: "server",
adapter: node({
mode: "standalone",
}),
vite: {
// FIXME 3wc: shouldn't need to hardcode this
define: {
"import.meta.env.PAYLOAD_PUBLIC_SERVER_URL": JSON.stringify(
"http://api:3001"
)
},
},
});
-43
View File
@@ -1,43 +0,0 @@
{
"name": "@turbopress/web",
"description": "Front end website based on Astro",
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro",
"lint": "eslint \"./src/**/*.{js,ts,tsx,astro}\" --fix",
"serve": "node dist/server/entry.mjs"
},
"dependencies": {
"@astrojs/mdx": "latest",
"@astrojs/node": "latest",
"@astrojs/svelte": "latest",
"@astrojs/tailwind": "latest",
"@turbopress/api": "*",
"astro": "latest",
"autoprefixer": "latest",
"@iconify/svelte": "latest",
"postcss": "latest",
"qs": "^6.11.2",
"slate": "latest",
"tailwindcss": "latest",
"astro-icon": "latest",
"nanostores": "latest",
"svelte": "latest",
"svelte-inview": "4.0.1 "
},
"devDependencies": {
"@tailwindcss/typography": "^0.5.9",
"@types/escape-html": "^1.0.2",
"@types/qs": "^6.9.7",
"escape-html": "^1.0.3",
"eslint": "latest",
"eslint-config-custom": "*",
"eslint-plugin-astro": "latest",
"svelte-breakpoints": "latest"
}
}
-6
View File
@@ -1,6 +0,0 @@
<div class="grid place-items-center h-full w-full content-center">
<div class="text-xl font-bold">No homepage has been setup.</div>
<div class="text-lg">
Create a new page with slug 'home' in the admin panel.
</div>
</div>
@@ -1,18 +0,0 @@
---
import type {
FormattedElement,
FormattedText,
Layout,
} from "@turbopress/api/types";
import RenderBody from "./body/RenderBody.astro";
import RenderHeader from "./header/RenderHeader.astro";
interface Props {
layout: Layout;
content?: (FormattedElement | FormattedText)[];
}
const { layout, content } = Astro.props;
---
<RenderHeader blocks={layout.header?.blocks} />
<RenderBody blocks={layout.body?.blocks} {content} />
@@ -1,30 +0,0 @@
---
import type { Content } from "@turbopress/api/types";
import { getContentSingle } from "../services/api/content.service";
import RenderSiteTitle from "./header/RenderSiteTitle.astro";
import RenderMenu from "./menu/RenderMenu.astro";
interface Props {
content: string | Content;
}
const content: Content | undefined =
typeof Astro.props.content == "string"
? await getContentSingle(Astro.props.content)
: Astro.props.content;
if (!content?.blocks) return;
const blocks = content.blocks;
---
{
blocks.map((block) => {
if (!block.id) return;
if (block.blockType == "siteTitle")
return <RenderSiteTitle siteTitle={block} />;
if (block.blockType == "menu" && block.menus)
return <RenderMenu menu={block} />;
return <div>block = {block.id}</div>;
})
}
@@ -1,36 +0,0 @@
---
import type {
FormattedElement,
FormattedText,
PageContent,
PageList,
ReusableContent,
} from "@turbopress/api/types";
import RenderContent from "../RenderReusableContent.astro";
import RenderPageContent from "./RenderPageContent.astro";
// import RenderPageList from "./page-list/RenderPageList.astro";
import RenderPageList from "./page-list/RenderPageList.svelte";
interface Props {
blocks?: (PageList | ReusableContent | PageContent)[];
content?: (FormattedElement | FormattedText)[];
}
const { blocks = [], content } = Astro.props;
if (blocks.length === 0) return;
---
<main class="p-6 flex flex-wrap">
{
blocks.map((block) => {
if (!block.id) return;
if (block.blockType == "reusableContent" && block.reference?.value)
return <RenderContent content={block.reference.value} />;
if (block.blockType == "pageContent")
return <RenderPageContent {content} />;
if (block.blockType == "pageList")
return <RenderPageList {block} client:only />;
return <div>{block.id}</div>;
})
}
</main>
@@ -1,17 +0,0 @@
---
import type { FormattedElement, FormattedText } from "@turbopress/api/types";
import RichText from "../rich-text/RichText.astro";
interface Props {
content?: (FormattedElement | FormattedText)[];
title?: string;
}
const { content } = Astro.props;
---
{
content && (
<article class="w-full justify-center prose max-w-none prose-headings:m-0 prose-headings:my-3 prose-p:m-0 prose-p:my-2">
<RichText richText={content} />
</article>
)
}
@@ -1,18 +0,0 @@
<script lang="ts">
import type { Page } from "@turbopress/api/types";
import RichText from "../../rich-text/RichText.svelte";
export let page: Page;
</script>
{#if page.content}
<section class="">
<header>
<h2>{page.title}</h2>
</header>
<article>
<RichText richText={page.content}></RichText>
</article>
<hr />
</section>
{/if}
@@ -1,65 +0,0 @@
<script lang="ts">
import type { Page, PageList } from "@turbopress/api/types";
import { inview } from "svelte-inview";
import { writable, type Writable } from "svelte/store";
import { getPageCollection } from "../../../services/api";
import type { PayloadCollection } from "../../../types";
import PageListItem from "./PageListItem.svelte";
export let block: PageList;
const query = {
where: {
or: [
{
categories: {
in: block.filterByCategories?.map((f) => f.value),
},
},
{
tags: {
in: block.filterByTags?.map((f) => f.value),
},
},
],
},
limit: block.numberOfItems ?? 5,
page: 1,
sort: block.sortBy,
};
const queryState = writable(query);
const collection: Writable<PayloadCollection<Page> | undefined> = writable();
async function getPages() {
const pages = await getPageCollection($queryState);
collection.set(pages);
}
queryState.subscribe((s) => {
getPages();
});
$: pages = $collection?.docs;
function handleChange({ detail }: CustomEvent<ObserverEventDetails>) {
isInView = detail.inView;
if (detail.inView && $collection?.hasNextPage) {
queryState.set({ ...$queryState, limit: $queryState.limit + 1 });
}
}
let isInView: boolean;
</script>
<div
class="w-full prose max-w-none prose-headings:m-0 prose-headings:my-3 prose-p:m-0 prose-p:my-2"
>
{#if pages}
{#each pages as page}
<PageListItem {page}></PageListItem>
{/each}
{/if}
<div use:inview on:inview_change={handleChange}></div>
</div>
@@ -1,29 +0,0 @@
---
import type { Menu, ReusableContent, SiteTitle } from "@turbopress/api/types";
import RenderContent from "../RenderReusableContent.astro";
import RenderMenu from "../menu/RenderMenu.astro";
import RenderSiteTitle from "./RenderSiteTitle.astro";
// import SiteTitle from "./SiteTitle.astro";
interface Props {
blocks?: (Menu | ReusableContent | SiteTitle)[];
}
const { blocks = [] } = Astro.props;
if (blocks.length === 0) return;
---
<header class="shadow p-6 flex flex-wrap">
{
blocks.map((block) => {
if (!block.id) return;
if (block.blockType == "siteTitle")
return <RenderSiteTitle siteTitle={block} />;
if (block.blockType == "reusableContent" && block.reference?.value)
return <RenderContent content={block.reference.value} />;
if (block.blockType == "menu" && block.menus)
return <RenderMenu menu={block} />;
return <div>{block.id}</div>;
})
}
</header>
@@ -1,16 +0,0 @@
---
import type { SiteTitle } from "@turbopress/api/types";
import Link from "../link/Link.astro";
interface Props {
siteTitle: SiteTitle;
}
const { siteTitle } = Astro.props;
---
<div class="flex-grow">
<Link link="/">
<div class="font-bold text-lg">{siteTitle.siteName}</div>
</Link>
<div class="w-full"></div>
</div>
-22
View File
@@ -1,22 +0,0 @@
---
interface Props {
link?: string | undefined;
target?: "_self" | "_blank" | "_top" | "_parent";
class?: string;
}
const { link, target, class: className } = Astro.props;
---
{
link && (
<a
href={link}
{target}
class={"cursor-pointer hover:text-indigo-600 " + className}
>
<slot />
</a>
)
}
{!link && <slot />}
-22
View File
@@ -1,22 +0,0 @@
<script lang="ts">
export let link: string | undefined = undefined;
export let target:
| "_self"
| "_blank"
| "_top"
| "_parent"
| undefined
| null = undefined;
</script>
<!-- svelte-ignore a11y-no-static-element-interactions -->
{#if link}
<a
href={link}
{target}
class="cursor-pointer hover:text-indigo-600 {$$props.class ?? ''}"
><slot /></a
>
{:else}
<slot />
{/if}
@@ -1,18 +0,0 @@
---
import type { MainMenu, Menu } from "@turbopress/api/types";
import DefaultMenu from "./default/DefaultMenu.svelte";
interface Props {
menu: Menu;
}
const { menu } = Astro.props;
const menus = menu.menus ?? [];
const mainMenus: MainMenu[] = menus.map((menu) => menu.mainMenu);
---
{
() => {
return <DefaultMenu menus={mainMenus} client:only="svelte" />;
}
}
@@ -1,18 +0,0 @@
<script lang="ts">
import type { MainMenu } from "@turbopress/api/types";
import { useMediaQuery } from "svelte-breakpoints";
import DefaultDesktopMenu from "./desktop/DefaultDesktopMenu.svelte";
import DefaultMobileMenu from "./mobile/DefaultMobileMenu.svelte";
export let menus: MainMenu[];
const isDesktop = useMediaQuery("(min-width: 1024px)");
</script>
{#if !$isDesktop}
<DefaultMobileMenu {menus}></DefaultMobileMenu>
{/if}
{#if $isDesktop}
<DefaultDesktopMenu {menus}></DefaultDesktopMenu>
{/if}
@@ -1,11 +0,0 @@
import { map } from "nanostores";
interface MobileMenuState {
isOpen: boolean;
activeIndex?: number;
}
export const mobileMenuState = map<MobileMenuState>({
isOpen: false,
activeIndex: undefined,
});
@@ -1,32 +0,0 @@
<script lang="ts">
import type { MainMenu } from "@turbopress/api/types";
import { mobileMenuState } from "../defaultMenu";
import MainMenuSvelte from "./_MainMenu.svelte";
export let menus: MainMenu[];
function handleClick() {
mobileMenuState.setKey("isOpen", !isOpen);
}
$: isOpen = $mobileMenuState.isOpen;
</script>
<!-- svelte-ignore a11y-no-static-element-interactions -->
<div
class="flex items-center cursor-pointer text-sm"
on:click={handleClick}
on:keypress={handleClick}
>
{#each menus as menu, i}
<MainMenuSvelte {menu} />
{/each}
</div>
<!-- {#if isOpen}
<div class="w-full cursor-pointer lg:hidden">
{#each menus as menu, i}
<MainMenuSvelte {menu} index={i} />
{/each}
</div>
{/if} -->
@@ -1,39 +0,0 @@
<script lang="ts">
import type { MainMenu } from "@turbopress/api/types";
import Link from "../../../link/Link.svelte";
export let menu: MainMenu;
const subMenus = menu.subMenu ?? [];
</script>
<div class="group relative inline-block text-left group">
<div id="menu-button" aria-expanded="false" aria-haspopup="true">
<Link
link={menu.url}
class="hover:text-black w-full group-hover:bg-slate-100 p-2 "
>
{menu.label}
</Link>
</div>
<div
class="mt-2 absolute right-0 z-10 w-56 origin-top-right rounded-sm bg-white ring-1 ring-slate-200 focus:outline-none hidden group-hover:block"
role="menu"
aria-orientation="vertical"
aria-labelledby="menu-button"
tabindex="-1"
>
<div class="" role="none">
{#each subMenus as subMenu}
<Link link={subMenu.link.url}>
<div
class="px-3 py-1.5 block hover:bg-slate-100 ring-1 ring-inset ring-gray-200 ring-opacity-30"
>
{subMenu.link.label}
</div>
</Link>
{/each}
</div>
</div>
</div>
@@ -1,17 +0,0 @@
<script lang="ts">
import type { Link } from "@turbopress/api/types";
import LinkSvelte from "../../../link/Link.svelte";
export let subMenu: {
link: Link;
id?: string;
};
</script>
<LinkSvelte
link={subMenu.link.url}
class="h-7 hover:text-black hover:bg-slate-100 flex items-center"
>
<div class="w-full px-3">
{subMenu.link.label}
</div>
</LinkSvelte>
@@ -1,36 +0,0 @@
<script lang="ts">
import Icon from "@iconify/svelte";
import type { MainMenu } from "@turbopress/api/types";
import { mobileMenuState } from "../defaultMenu";
import MainMenuSvelte from "./_MainMenu.svelte";
export let menus: MainMenu[];
function handleClick() {
mobileMenuState.setKey("isOpen", !isOpen);
}
$: isOpen = $mobileMenuState.isOpen;
</script>
<!-- svelte-ignore a11y-no-static-element-interactions -->
<div
class="flex items-center cursor-pointer font-semibold hover:text-indigo-600"
on:click={handleClick}
on:keypress={handleClick}
>
{#if isOpen}
<Icon icon="ic:round-close" class="h-5 w-5 mr-2" />
{:else}
<Icon icon="ic:baseline-menu" class="h-5 w-5 mr-2" />
{/if}
<div>Menu</div>
</div>
{#if isOpen}
<div class="w-full cursor-pointer lg:hidden">
{#each menus as menu, i}
<MainMenuSvelte {menu} index={i} />
{/each}
</div>
{/if}
@@ -1,44 +0,0 @@
<script lang="ts">
import Icon from "@iconify/svelte";
import type { MainMenu } from "@turbopress/api/types";
import Link from "../../../link/Link.svelte";
import { mobileMenuState } from "../defaultMenu";
import SubMenu from "./_SubMenu.svelte";
export let menu: MainMenu;
export let index: number;
$: isOpen = $mobileMenuState.activeIndex == index;
function handleClick() {
if (isOpen) mobileMenuState.setKey("activeIndex", undefined);
else mobileMenuState.setKey("activeIndex", index);
}
</script>
<div class="flex items-center h-7">
<Link link={menu.url} class="hover:text-black w-full hover:bg-slate-100 p-1 ">
<div class="w-full">{menu.label}</div>
</Link>
<!-- svelte-ignore a11y-no-static-element-interactions -->
<div
class="hover:bg-slate-100 h-8 w-10 {isOpen ? 'bg-indigo-50' : ''}"
on:click={handleClick}
on:keydown={handleClick}
>
<Icon
icon="ic:sharp-keyboard-arrow-down"
class="text-2xl mx-auto mt-1 transition-transform duration-200 {isOpen
? 'rotate-180 text-indigo-800 '
: ''}"
></Icon>
</div>
</div>
{#if isOpen}
{#if menu.subMenu}
{#each menu.subMenu as subMenu}
<SubMenu {subMenu} />
{/each}
{/if}
{/if}
@@ -1,17 +0,0 @@
<script lang="ts">
import type { Link } from "@turbopress/api/types";
import LinkSvelte from "../../../link/Link.svelte";
export let subMenu: {
link: Link;
id?: string;
};
</script>
<LinkSvelte
link={subMenu.link.url}
class="h-7 hover:text-black hover:bg-slate-100 flex items-center"
>
<div class="w-full px-3">
{subMenu.link.label}
</div>
</LinkSvelte>
@@ -1,65 +0,0 @@
---
import type { FormattedElement, FormattedText } from "@turbopress/api/types";
import escapeHTML from "escape-html";
import { Text } from "slate";
interface Props {
richText: (FormattedElement | FormattedText)[];
}
const { richText } = Astro.props;
---
{
richText.map((node) => {
return Text.isText(node) ? (
<Fragment>
{node.bold && <strong>{node.text}</strong>}
{node.code && <code>{node.text}</code>}
{node.italic && <em>{node.text}</em>}
{!node.bold && !node.code && !node.italic && (
<Fragment>{node.text}</Fragment>
)}
</Fragment>
) : (
<Fragment>
{node.type === "h1" && (
<h1>{<Astro.self richText={node.children} />}</h1>
)}
{node.type === "h2" && (
<h2>{<Astro.self richText={node.children} />}</h2>
)}
{node.type === "h3" && (
<h3>{<Astro.self richText={node.children} />}</h3>
)}
{node.type === "h4" && (
<h4>{<Astro.self richText={node.children} />}</h4>
)}
{node.type === "h5" && (
<h5>{<Astro.self richText={node.children} />}</h5>
)}
{node.type === "h6" && (
<h6>{<Astro.self richText={node.children} />}</h6>
)}
{node.type === "quote" && (
<p>{<Astro.self richText={node.children} />}</p>
)}
{node.type === "ul" && (
<ul>{<Astro.self richText={node.children} />}</ul>
)}
{node.type === "ol" && (
<ol>{<Astro.self richText={node.children} />}</ol>
)}
{node.type === "li" && (
<li>{<Astro.self richText={node.children} />}</li>
)}
{node.type === "link" && (
<a href={escapeHTML(node.url)}>
{<Astro.self richText={node.children} />}
</a>
)}
{!node.type && <p>{<Astro.self richText={node.children} />}</p>}
</Fragment>
);
})
}
@@ -1,45 +0,0 @@
<script lang="ts">
import type { FormattedElement, FormattedText } from "@turbopress/api/types";
import { Text } from "slate";
export let richText: (FormattedElement | FormattedText | any)[];
</script>
{#each richText as node}
{#if Text.isText(node)}
{#if node.bold}
<strong>{node.text}</strong>
{/if}
{#if node.code}
<strong>{node.text}</strong>
{/if}
{#if node.italic}
<strong>{node.text}</strong>
{/if}
{#if !node.bold && !node.code && !node.italic}
{node.text}
{/if}
{:else}
{#if node.type === "h1"}
<h1><svelte:self richText={node.children}></svelte:self></h1>
{/if}
{#if node.type === "h2"}
<h2><svelte:self richText={node.children}></svelte:self></h2>
{/if}
{#if node.type === "h3"}
<h3><svelte:self richText={node.children}></svelte:self></h3>
{/if}
{#if node.type === "h4"}
<h4><svelte:self richText={node.children}></svelte:self></h4>
{/if}
{#if node.type === "h5"}
<h5><svelte:self richText={node.children}></svelte:self></h5>
{/if}
{#if node.type === "h6"}
<h6><svelte:self richText={node.children}></svelte:self></h6>
{/if}
{#if !node.type}
<p><svelte:self richText={node.children}></svelte:self></p>
{/if}
{/if}
{/each}
-5
View File
@@ -1,5 +0,0 @@
/// <reference types="astro/client" />
interface ImportMetaEnv {
readonly ASTRO_PORT: string;
}
-48
View File
@@ -1,48 +0,0 @@
---
import type {
FormattedElement,
FormattedText,
Layout,
Media,
} from "@turbopress/api/types";
import RenderLayout from "../components/RenderLayout.astro";
interface Props {
title?: string;
description?: string;
layout?: string | Layout;
content?: (FormattedElement | FormattedText | any)[];
image?: string | Media;
}
const {
title = "AstroCMS",
description = "Astro, TailwindCSS, and PayloadCMS",
layout,
content,
image,
} = Astro.props;
const metaImage = image
? typeof image === "string"
? image
: image.url
: undefined;
---
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<meta name="description" content={description} />
{metaImage && <meta property="og:image" content={metaImage} />}
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<title>{title}</title>
</head>
<body class="h-screen">
{
layout && typeof layout != "string" && (
<RenderLayout layout={layout} {content} />
)
}
{!layout && <slot />}
</body>
</html>
-12
View File
@@ -1,12 +0,0 @@
---
import MainLayout from "../layouts/MainLayout.astro";
import { getLayoutSingle } from "../services/api/layout.service";
const layout = await getLayoutSingle("404");
---
<MainLayout title="Error 404" layout={layout} description="Page not found">
Not found, error 404 The page you are looking for no longer exists. Perhaps
you can return back to the homepage and see if you can find what you are
looking for. Or, you can try finding it by using the search form below.
</MainLayout>
-16
View File
@@ -1,16 +0,0 @@
---
import MainLayout from "../layouts/MainLayout.astro";
import { getPageSingle } from "../services/api";
const { slug } = Astro.params;
const page = await getPageSingle(slug!);
if (!page) return Astro.redirect("/404");
if (page.slug == "home") return Astro.redirect("/");
---
<MainLayout title={page.title} layout={page.layout} description="">
{page.title}
{page.layout}
<!-- {homePage && <RenderPage page={homePage} />}
{!homePage && <NoHomePage />} -->
</MainLayout>
-18
View File
@@ -1,18 +0,0 @@
---
import MainLayout from "../layouts/MainLayout.astro";
import { getPageSingle } from "../services/api";
const homePage = await getPageSingle("home");
const pageTitle = homePage?.meta?.title ?? homePage?.title ?? "TurboPress";
const layout = homePage?.layout;
---
<MainLayout
title={pageTitle}
{layout}
description={homePage?.meta?.description}
content={homePage?.content}
image={homePage?.meta?.image}
/>
-31
View File
@@ -1,31 +0,0 @@
import qs from "qs";
import type { PayloadCollection } from "../../types";
export async function apiFetch<T = any>(
url: string | URL,
options: RequestInit = {},
) {
const defaultOptions = {
headers: {
"Content-Type": "application/json",
},
};
const res = await fetch(url, { ...defaultOptions, ...options });
if (res.ok) {
return res.json() as T;
}
throw new Error(`Error fetching data: ${res.statusText} (${res.status})}`);
}
export async function getPayloadCollection<CollectionType>(
url: string | URL,
query: any = null,
) {
const stringifiedQuery = qs.stringify(query, { addQueryPrefix: true });
return apiFetch<PayloadCollection<CollectionType>>(url + stringifiedQuery);
}
export async function getPayloadDocument<CollectionType>(url: string | URL) {
return apiFetch<CollectionType>(url);
}
@@ -1,16 +0,0 @@
import type { Layout } from "@turbopress/api/types";
import { getPayloadCollection } from "./api.service";
export async function getContentCollection(query: any = null) {
const url = ` ${process.env.PAYLOAD_PUBLIC_SERVER_URL}/api/layouts`;
return getPayloadCollection<Layout>(url, query);
}
export async function getContentSingle(
name: string,
): Promise<Layout | undefined> {
const pages = await getContentCollection({
where: { name: { equals: name } },
});
if (pages.docs[0]) return pages.docs[0];
}
-2
View File
@@ -1,2 +0,0 @@
export * from "./api.service";
export * from "./page.service";
@@ -1,16 +0,0 @@
import type { Layout } from "@turbopress/api/types";
import { getPayloadCollection } from "./api.service";
export async function getLayoutCollection(query: any = null) {
const url = ` ${process.env.PAYLOAD_PUBLIC_SERVER_URL}/api/layouts`;
return getPayloadCollection<Layout>(url, query);
}
export async function getLayoutSingle(
name: string,
): Promise<Layout | undefined> {
const pages = await getLayoutCollection({
where: { name: { equals: name } },
});
if (pages.docs[0]) return pages.docs[0];
}
@@ -1,19 +0,0 @@
import type { Media } from "@turbopress/api/types";
import { getPayloadCollection, getPayloadDocument } from "./api.service";
export async function getMediaCollection(query: any = null) {
const url = `${process.env.PAYLOAD_PUBLIC_SERVER_URL}/api/medias`;
return getPayloadCollection<Media>(url, query);
}
export async function getMediaSingle(slug: string): Promise<Media | undefined> {
const medias = await getMediaCollection({
where: { slug: { equals: slug } },
});
if (medias.docs[0]) return medias.docs[0];
}
export async function getMediaById(id: string): Promise<Media | undefined> {
const url = `${process.env.PAYLOAD_PUBLIC_SERVER_URL}/api/media/` + id;
return getPayloadDocument<Media>(url);
}
-16
View File
@@ -1,16 +0,0 @@
import type { Page } from "@turbopress/api/types";
import { getPayloadCollection } from "./api.service";
export async function getPageCollection(query: any = null) {
// FIXME 3wc: shouldn't need to hardcode this?!
//const url = `${import.meta.env.PAYLOAD_PUBLIC_SERVER_URL}/api/pages`;
const url = `http://api:3001/api/pages`;
return getPayloadCollection<Page>(url, query);
}
export async function getPageSingle(slug: string): Promise<Page | undefined> {
const pages = await getPageCollection({
where: { slug: { equals: slug } },
});
if (pages.docs[0]) return pages.docs[0];
}
-22
View File
@@ -1,22 +0,0 @@
import type { FormattedElement, FormattedText } from "@turbopress/api/types";
declare module "slate" {
interface CustomTypes {
Element: FormattedElement;
Text: FormattedText;
}
}
export type PayloadCollection<CollectionType = any> = {
totalDocs?: number;
limit?: number;
totalPages?: number;
page?: number;
pagingCounter?: number;
hasPrevPage?: boolean;
hasNextPage?: boolean;
prevPage?: number;
nextPage?: number;
hasMore?: boolean;
docs: CollectionType[];
};
-7
View File
@@ -1,7 +0,0 @@
module.exports = {
content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"],
theme: {
extend: {},
},
plugins: [require("@tailwindcss/typography")],
};
-4
View File
@@ -1,4 +0,0 @@
{
"extends": "astro/tsconfigs/strict",
"exclude": ["node_modules"]
}
+3
View File
@@ -0,0 +1,3 @@
node_modules
Dockerfile
README.md
+1
View File
@@ -0,0 +1 @@
PAYLOAD_URL=http://localhost:3001
+4 -4
View File
@@ -1,5 +1,6 @@
# build output
dist/
# generated types
.astro/
@@ -13,9 +14,8 @@ yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# types
src/types.ts
+11
View File
@@ -0,0 +1,11 @@
{
"plugins": ["prettier-plugin-astro", "prettier-plugin-tailwindcss"],
"overrides": [
{
"files": "*.astro",
"options": {
"parser": "astro"
}
}
]
}
+22
View File
@@ -0,0 +1,22 @@
FROM node:lts-alpine as base
WORKDIR /base
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile
COPY . .
FROM base AS dev
ENV NODE_ENV=development
EXPOSE 3000
CMD ["yarn","dev"]
FROM base AS build
ENV NODE_ENV=production
WORKDIR /build
COPY --from=base /base .
ADD "https://random-uuid.deno.dev" skipcache
RUN yarn build
FROM nginx:stable AS prod
COPY nginx.conf /etc/nginx/nginx.conf
COPY --from=build /build/dist /usr/share/nginx/html
EXPOSE 3000
+25
View File
@@ -0,0 +1,25 @@
import { defineConfig } from "astro/config";
import tailwind from "@astrojs/tailwind";
import image from "@astrojs/image";
import sitemap from "@astrojs/sitemap";
import prefetch from "@astrojs/prefetch";
import react from "@astrojs/react";
// https://astro.build/config
export default defineConfig({
compressHTML: true,
server: { port: 3000 },
build: {
inlineStylesheets: "auto"
},
viewTransitions: true,
integrations: [tailwind({
config: {
applyBaseStyles: false
}
}), image({
serviceEntryPoint: "@astrojs/image/sharp"
}), prefetch({
selector: "a"
}), sitemap(), react()]
});
+18
View File
@@ -0,0 +1,18 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "default",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "tailwind.config.cjs",
"css": "@/styles/globals.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "@/components",
"utils": "@/utils",
"styles": "@/styles"
}
}
+36
View File
@@ -0,0 +1,36 @@
events {
worker_connections 1024;
}
http {
include mime.types;
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
server {
listen 80;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ =404;
}
location /error_page.html {
internal;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js|htm|html)$ {
root /usr/share/nginx/html;
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
}
error_page 404 /error_page.html;
}
}
+48
View File
@@ -0,0 +1,48 @@
{
"name": "astroad",
"description": "Astroad - Astro",
"type": "module",
"version": "1.1",
"license": "MIT",
"scripts": {
"dev": "astro dev --host",
"build": "astro build"
},
"dependencies": {
"@astrojs/image": "0.18.0",
"@astrojs/prefetch": "0.4.1",
"@astrojs/react": "^3.1.1",
"@astrojs/sitemap": "3.1.2",
"@astrojs/tailwind": "5.1.0",
"@hookform/resolvers": "^3.3.4",
"@radix-ui/react-label": "^2.0.2",
"@radix-ui/react-slot": "^1.0.2",
"@tanstack/react-query": "^5.28.14",
"@types/leaflet": "^1.9.8",
"@types/react": "^18.2.74",
"@types/react-dom": "^18.2.23",
"astro": "^4.5.13",
"axios": "^1.6.8",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.0",
"css-select": "5.1.0",
"leaflet": "^1.9.4",
"lucide-react": "^0.364.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-hook-form": "^7.51.2",
"react-leaflet": "^4.2.1",
"sharp": "^0.32.6",
"slate-serializers": "0.4.1",
"tailwind-merge": "^2.2.2",
"tailwindcss": "^3.3.3",
"tailwindcss-animate": "^1.0.7",
"typescript": "^5.4.3",
"zod": "^3.22.4"
},
"devDependencies": {
"prettier": "^3.0.2",
"prettier-plugin-astro": "^0.11.1",
"prettier-plugin-tailwindcss": "^0.5.4"
}
}

Before

Width:  |  Height:  |  Size: 749 B

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.
Binary file not shown.
+67
View File
@@ -0,0 +1,67 @@
import { zodResolver } from "@hookform/resolvers/zod"
import { useForm } from "react-hook-form"
import { z } from "zod"
import { Button } from "@/components/ui/button"
import {
Form,
FormControl,
FormDescription,
FormField,
FormItem,
FormLabel,
FormMessage,
} from "@/components/ui/form"
import { Input } from "@/components/ui/input"
export function AddRetailerForm() {
const formSchema = z.object({
username: z.string().min(2, {
message: "Username must be at least 2 characters.",
}),
})
const form = useForm<z.infer<typeof formSchema>>({
resolver: zodResolver(formSchema),
defaultValues: {
username: "",
},
})
function onSubmit(values: z.infer<typeof formSchema>) {
// Do something with the form values.
// ✅ This will be type-safe and validated according to z schema.
console.log(values)
}
return (
<div className="flex justify-center">
<div>
<Form {...form}>
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
<FormField
control={form.control}
name="username"
render={({ field }) => (
<FormItem>
<FormLabel>Username</FormLabel>
<FormControl>
<Input placeholder="" {...field} />
</FormControl>
<FormDescription>
This is your public display name.
</FormDescription>
<FormMessage />
</FormItem>
)}
/>
<Button variant={"default"} type="submit">Submit</Button>
</form>
</Form>
</div>
</div>
)
}
+26
View File
@@ -0,0 +1,26 @@
import { useQuery, useMutation, useQueryClient, queryOptions, QueryClient, QueryClientProvider } from "@tanstack/react-query";
import type { ReactNode } from "react";
import { KiosMap } from "@/components/KiosMap"
export const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: 30000,
},
},
});
interface AppProps {
children?: ReactNode;
}
export const App: React.FC<AppProps> = (props) => {
return (
<div className="app">
<QueryClientProvider client={queryClient}>
{props.children}
<KiosMap/>
</QueryClientProvider>
</div>
);
}
+248
View File
@@ -0,0 +1,248 @@
import React, { useEffect } from 'react';
import { MapContainer, TileLayer, Marker, CircleMarker, Popup, Polyline, LayerGroup, GeoJSON, } from 'react-leaflet';
import 'leaflet/dist/leaflet.css';
import L, { LatLngBounds } from 'leaflet';
import { useQuery, useMutation, useQueryClient, queryOptions } from "@tanstack/react-query";
import axios from "axios";
//Todo: Move types to own file
type User = {
name: string;
id: string;
email: string;
phoneNumber: string;
}
type Product = {
id: string;
title: string;
weight?: number;
picture: string;
createdAt: string;
updatedAt: string;
};
// type Location = {
// latitude: number;
// longitude: number;
// }
type Maker = {
id: string;
name: string;
email: string;
phoneNumber?: string;
location: [number, number];
stock: Product[];
createdAt: string;
updatedAt: string;
};
type Retailer = {
id: string;
name: string;
email: string;
phoneNumber?: string;
location: [number, number];
stock: Product[];
createdAt: string;
updatedAt: string;
};
const DISPATCH_STATUS = ['requested', 'accepted', 'archived'] as const;
type DispatchStatus = typeof DISPATCH_STATUS[number];
type Dispatch = {
id: string;
dispatchesCode?: string; //Human readable id
createdAt: string;
updatedAt: string;
maker?: Maker;
retailer?: Retailer;
products: Product[];
courier?: User;
timeSensitive: boolean;
status: DispatchStatus[];
departureDate: string;
arrivalDate: string;
weightAllowance: number;
}
//Todo: update fetch url endpoints
//Todo: Move queryclient and hooks to own file
//Todo: Move axios stuff
const API_URL = "http://localhost:3001"
const headers = {
"Content-Type": "application/json",
}
const getMakers = async () => {
const url = `${API_URL}/api/makers`
console.log("Fetching url:", url)
const response = await axios.get(url);
const makers: Maker[] = response.data.docs;
console.log(`Fetch result from ${url}`, makers)
return makers;
}
const useGetMakers = () => {
return useQuery<Maker[]>({
queryFn: () => getMakers(),
queryKey: ['makers'],
enabled: true
})
}
const getRetailers = async () => {
const url = `${API_URL}/api/retailers`
console.log("Fetching url:", url)
const response = await axios.get(url);
const retailers:Retailer[] = response.data.docs;
console.log(`Fetch result from ${url}`, retailers)
return retailers;
}
const useGetRetailers = () => {
return useQuery<Retailer[]>({
queryFn: () => getRetailers(),
queryKey: ['retailers'],
enabled: true
})
}
const getDispatches = async () => {
const url = `${API_URL}/api/dispatches`
console.log("Fetching url:", url)
const response = await axios.get(url);
const dispatches:Dispatch[] = response.data.docs;
console.log(`Fetch result from ${url}`, dispatches)
return dispatches;
}
const useGetDispatches = () => {
return useQuery<Dispatch[]>({
queryFn: () => getDispatches(),
queryKey: ['retailers'],
enabled: true
})
}
export const KiosMap = () => {
const { data: makers, isLoading: isLoadingMakers } = useGetMakers();
const { data: retailers, isLoading: isLoadingRetailers } = useGetRetailers();
const { data: dispatches, isLoading: isLoadingDispatches } = useGetDispatches();
const blackDotIcon = L.divIcon({
className: 'bg-gray-950 rounded-full',
iconSize: [20, 20],
iconAnchor: [10, 10]
});
const bounds = new LatLngBounds(
[-90, -180], // Southwest corner
[90, 180] // Northeast corner
);
return (
<div className='w-full flex justify-center align-middle'>
<MapContainer
id="map"
center={[-6.1815, 106.8228]}
zoom={3}
maxBounds={bounds} // Restrict panning beyond these bounds
maxBoundsViscosity={0.9} // How strongly to snap the map's bounds to the restricted area
style={{ height: '800px', width: '100%' }}
>
<TileLayer url="https://tile.openstreetmap.org/{z}/{x}/{y}.png"
maxZoom={19}
attribution='&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
/>
{makers &&
<LayerGroup>
{makers.map((maker: any, index: number) => (
<Marker
key={index}
position={[maker.location[0], maker.location[1]]}
icon={blackDotIcon}
>
<Popup>{maker.name}</Popup>
</Marker>
))}
</LayerGroup>
}
{retailers &&
<LayerGroup>
{retailers.map((retailer: any, index: number) => (
<Marker
key={index}
position={[retailer.location[0], retailer.location[1]]}
icon={blackDotIcon}
>
<Popup>{retailer.name}</Popup>
</Marker>
))}
</LayerGroup>
}
{dispatches &&
<LayerGroup>
{dispatches.map((dispatch: any, index: number) => {
const start = dispatch.maker.location;
const end = dispatch.retailer.location;
let productsString = '';
dispatch.products.forEach((product: any, i: number) => {
productsString += product.productTitle + (i + 1 < dispatch.products.length ? ', ' : '');
});
const myDashArray =
dispatch.status === 'requested' ? '20, 10' :
dispatch.status === 'archived' ? '1, 5' :
'0, 0';
return (
<div key={index}>
<Marker position={[start[0], start[1]]}
icon={blackDotIcon}
>
<Popup>{dispatch.startingPoint.name}</Popup>
</Marker>
<Marker position={[end[0], end[1]]}
icon={blackDotIcon}
>
<Popup>{dispatch.endPoint.name}</Popup>
</Marker>
<Polyline
positions={[[start[0], start[1]], [end[0], end[1]]]}
color="#000"
dashArray={myDashArray} />
</div>
);
})}
</LayerGroup>
}
</MapContainer >
</div>
);
};

Some files were not shown because too many files have changed in this diff Show More