Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,19 @@ You can verify all of this: the code is source-available (see
[`src/auth.ts`](src/auth.ts)), and releases ship with npm provenance. Full
details and revocation steps are in [SECURITY.md](SECURITY.md).

## Documentation

Full documentation lives in [`docs/`](docs/) — a self-contained docs site
(React Router v7 + content-collections, built from the
[code-forge docs template](https://github.com/code-forge-io/docs)). The content
is under [`docs/content/`](docs/content/). To run it locally:

```bash
cd docs
pnpm install
pnpm run dev
```

## License

deploykit is **source-available** under the [Business Source License 1.1](LICENSE) (`BUSL-1.1`).
Expand Down
2 changes: 1 addition & 1 deletion biome.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"useIgnoreFile": true
},
"files": {
"includes": ["**", "!!**/dist", "!!**/.claude"]
"includes": ["**", "!!**/dist", "!!**/.claude", "!!docs"]
},
"formatter": {
"enabled": true,
Expand Down
87 changes: 87 additions & 0 deletions docs/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
node_modules
public/build
build
dist
out
coverage
.history
.react-router

# Other Coverage tools
*.lcov

# macOS
.DS_*

# Cache Directories and files
.cache
.yarn*
.env*
!.env.example
.swp*
.turbo
.npm
.stylelintcache
*.tsbuildinfo
.node_repl_history

# Lock files from other package managers
package-lock.json
yarn.lock

# General tempory files and directories
t?mp
.t?mp
*.t?mp

# Docusaurus cache and generated files
.docusaurus

# Output of 'npm pack'
*.tgz
*.tar
*.tar.gz
*.tar.bz2
*.tbz
*.zip

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
vite.config.ts.*

# Playwright various test reports
test-results
playwright-report
blob-report


# Editors
.idea/workspace.xml
.idea/usage.statistics.xml
.idea/shelf

# Dont commit sqlite database files
*.db
*.sqlite
*.sqlite3
*.db-journal


# Content collections output files
.content-collections

4 changes: 4 additions & 0 deletions docs/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
GITHUB_OWNER="abrulic" # Your username or organization name (Optional. For edit/report an issue for the documentation page)
GITHUB_REPO="deploykit" # Repository name (Optional. For edit/report an issue for the documentation page)
APP_ROOT_PATH="/path/to/your/app" # Optional. Default is `process.cwd()`
GITHUB_REPO_URL="https://github.com/abrulic/deploykit" # Optional. If you want to have GitHub icon link in the header or footer
42 changes: 42 additions & 0 deletions docs/.github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Fixes #

# Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
List any dependencies that are required for this change.

## Type of change

Please mark relevant options with an `x` in the brackets.

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
- [ ] Algorithm update - updates algorithm documentation/questions/answers etc.
- [ ] Other (please describe):

# How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also
list any relevant details for your test configuration

- [ ] Integration tests
- [ ] Unit tests
- [ ] Manual tests
- [ ] No tests required

# Reviewer checklist

Mark everything that needs to be checked before merging the PR.

- [ ] Check if the UI is working as expected and is satisfactory
- [ ] Check if the code is well documented
- [ ] Check if the behavior is what is expected
- [ ] Check if the code is well tested
- [ ] Check if the code is readable and well formatted
- [ ] Additional checks (document below if any)

# Screenshots (if appropriate):

# Questions (if appropriate):
127 changes: 127 additions & 0 deletions docs/.github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: 🚀 Validation Pipeline
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
branches: [main]

permissions:
actions: write
contents: read
# Required to put a comment into the pull-request
pull-requests: write
jobs:
lint:
name: ⬣ Biome lint
runs-on: ubuntu-latest
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: Setup Biome
uses: biomejs/setup-biome@v2
- name: Run Biome
run: biome ci .

validate:
name: 🔎 Validate
runs-on: ubuntu-latest
steps:
- name: 🛑 Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.12.1
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: ⎔ Setup node
uses: actions/setup-node@v4
with:
node-version-file: "package.json"
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Install dependencies
run: pnpm install
- run: pnpm install --prefer-offline --frozen-lockfile
- run: pnpm exec playwright install chromium --with-deps
- name: 🔎 Test
run: pnpm run test
- name: ✂️ Check unused code
run: pnpm run check:unused

build-docs:
name: ⬆️ Build Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
fetch-depth: 0

- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version-file: "package.json"
cache: pnpm

- name: Install deps
run: pnpm install --prefer-offline --frozen-lockfile

- name: Generate docs
env:
APP_ENV: production
run: pnpm run generate:docs

- name: Pack generated docs (tarball)
run: |
tar -czf docs-generated.tgz generated-docs
ls -lh docs-generated.tgz

- name: Upload generated docs (tgz)
uses: actions/upload-artifact@v4
with:
name: docs-generated-tgz
path: docs-generated.tgz
if-no-files-found: error

- name: Upload versions file
uses: actions/upload-artifact@v4
with:
name: docs-versions
path: app/utils/versions.ts
if-no-files-found: error

deploy-docs-pr-preview:
name: 🚀 Deploy Docs
needs: [build-docs]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Download generated docs (tgz)
uses: actions/download-artifact@v4
with:
name: docs-generated-tgz
path: .

- name: Unpack generated docs
run: |
tar -xzf docs-generated.tgz
ls -laR generated-docs | sed -n '1,200p'
- name: Download versions file
uses: actions/download-artifact@v4
with:
name: docs-versions
path: app/utils/

- uses: forge-42/fly-deploy@v1.0.0-rc.2
id: deploy
env:
FLY_ORG: ${{ vars.FLY_ORG }}
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
FLY_REGION: ${{ vars.FLY_REGION }}
with:
app_name: ${{ github.event.repository.name }}-${{ github.event.number }}
use_isolated_workspace: true
env_vars: |
APP_ENV=production
GITHUB_OWNER=${{ github.repository_owner }}
GITHUB_REPO=${{ github.event.repository.name }}
GITHUB_REPO_URL=https://github.com/${{ github.repository }}
25 changes: 25 additions & 0 deletions docs/.github/workflows/pr-close.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: 🧹 PR Close

concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
pull_request:
branches: [main]
types: closed

jobs:

destroy-pr-preview:
name: 🧹 Destroy PR Preview
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: forge-42/fly-destroy@v1.0.0-rc.2
id: destroy
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
FLY_ORG: ${{ vars.FLY_ORG }}
with:
app_name: ${{github.event.repository.name}}-${{ github.event.number }}
Loading