diff --git a/another-service/catalog-info.yaml b/another-service/catalog-info.yaml
new file mode 100644
index 00000000..e69de29b
diff --git a/another-service/docs/intro.md b/another-service/docs/intro.md
new file mode 100644
index 00000000..6529a5d4
--- /dev/null
+++ b/another-service/docs/intro.md
@@ -0,0 +1,19 @@
+# Docs for sample-service-1
+
+Anyone who has spent more than a month working in a decently sized software engineering department
+can tell you the pain of finding documentation. Everyone wishes that great docs for internal
+services were the norm but few people are willing to spend the time it takes to make fantastic
+docs a reality.
+
+Even when you do take the time to write good docs, they end up being so difficult to find that you
+might as well not have bothered. Motivated teams will create a dedicated website for the software
+they have lovingly crafted. But searching for internal software isn’t like searching the open web,
+Google doesn’t index your internal subdomains (hopefully!).
+
+It’s no wonder that software teams struggle to summon the motivation to produce great docs.
+They’re hard to write and nobody will see them anyway.
+
+Backstage solves this problem by co-locating documentation with the service it is for. Write
+your docs-as-code in whatever format you like ([MkDocs](https://www.mkdocs.org/) is currently
+supported out of the box), publish it whereever you like, and Backstage will display it in context
+where it is easy to find.
\ No newline at end of file
diff --git a/another-service/docs/local-development.md b/another-service/docs/local-development.md
new file mode 100644
index 00000000..ccff20a6
--- /dev/null
+++ b/another-service/docs/local-development.md
@@ -0,0 +1,12 @@
+## Development
+
+First add some secrets to the `.env` file in the root. See the `.env.sample` file for suggestions
+of required environment variables.
+
+Then run the software locally like this:
+
+```shell
+yarn start
+curl :3000/
+```
+
diff --git a/another-service/docs/mkdocs.yaml b/another-service/docs/mkdocs.yaml
new file mode 100644
index 00000000..e4df20c3
--- /dev/null
+++ b/another-service/docs/mkdocs.yaml
@@ -0,0 +1,9 @@
+site_name: 'sample-service'
+
+nav:
+- Home: intro.md
+- Local Development: local-development.md
+- test: test-doc.md
+
+plugins:
+- techdocs-core
diff --git a/another-service/docs/test-doc.md b/another-service/docs/test-doc.md
new file mode 100644
index 00000000..9a2c822d
--- /dev/null
+++ b/another-service/docs/test-doc.md
@@ -0,0 +1,19 @@
+This is my testing document
+
+
+```diff
+diff --git a/src/components/CallToAction/EmailCaptureForm.js b/src/components/CallToAction/EmailCaptureForm.js index eb154ca..9450b93 100644
+--- a/src/components/CallToAction/EmailCaptureForm.js
++++ b/src/components/CallToAction/EmailCaptureForm.js
+@@ -56,7 +56,7 @@
+
+const EmailCaptureForm = ({
+ }
++ prefixIcon={}
+ id={buttonId}
+ fullWidth
+ color="primary"
+```
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
new file mode 100644
index 00000000..9d75cd26
--- /dev/null
+++ b/azure-pipelines.yml
@@ -0,0 +1,19 @@
+# Starter pipeline
+# Start with a minimal pipeline that you can customize to build and deploy your code.
+# Add steps that build, run tests, deploy, and more:
+# https://aka.ms/yaml
+
+trigger:
+- main
+
+pool:
+ vmImage: ubuntu-latest
+
+steps:
+- script: echo Hello, world!
+ displayName: 'Run a one-line script'
+
+- script: |
+ echo Add other tasks to build, test, and deploy your project.
+ echo See https://aka.ms/yaml
+ displayName: 'Run a multi-line script test 2'
diff --git a/catalog-info-1.yaml b/catalog-info-1.yaml
index 4cf065a6..b9f7df2a 100644
--- a/catalog-info-1.yaml
+++ b/catalog-info-1.yaml
@@ -25,6 +25,7 @@ metadata:
snyk.io/org-name: roadie
snyk.io/project-ids: 63ac09c4-fd65-4f53-b9b2-c31d2dee3291
backstage.io/kubernetes-label-selector: 'app.kubernetes.io/name=sample-service'
+ dev.azure.com/project-repo: roadie-test/roadie-test
spec:
type: service
owner: sample-team
diff --git a/catalog-info-4.yaml b/catalog-info-4.yaml
index f875f9e3..c7e4032d 100644
--- a/catalog-info-4.yaml
+++ b/catalog-info-4.yaml
@@ -3,6 +3,8 @@ kind: Component
metadata:
name: sample-service-4
title: Sample Service 4
+ tags:
+ - test
description: |
A service for testing Backstage functionality. Configured for GitHub Actions, Sentry, AWS Lambda.
annotations:
diff --git a/catalog-info-roadie-1.yaml b/catalog-info-roadie-1.yaml
index b6810a73..98f3c94c 100644
--- a/catalog-info-roadie-1.yaml
+++ b/catalog-info-roadie-1.yaml
@@ -13,6 +13,7 @@ metadata:
pagerduty.com/integration-key: 1cf15c07f6f440e0a8d65b7ce80be834
snyk.io/org-name: dtuite
snyk.io/project-ids: b6ab231c-a019-4def-a148-4a10a79d6302
+ lighthouse.com/website-url: https://api.development.env.tryflux.com/lighthouse-audit
spec:
type: service
owner: engineering
diff --git a/catalog-info.yaml b/catalog-info.yaml
index f95d4a11..cfb98c51 100644
--- a/catalog-info.yaml
+++ b/catalog-info.yaml
@@ -9,7 +9,10 @@ metadata:
backstage.io/techdocs-ref: dir:.
snyk.io/org-name: roadie
snyk.io/project-ids: 63ac09c4-fd65-4f53-b9b2-c31d2dee3291
+ dev.azure.com/project-repo: roadie-test/sample-service
+ dev.azure.com/project: roadie-test
+ dev.azure.com/build-definition: sblausten.sample-service
spec:
type: other
lifecycle: unknown
- owner: 'user:iain@roadie.io'
+ owner: 'user:sam@roadie.io'
diff --git a/ddb-template.yaml b/ddb-template.yaml
new file mode 100644
index 00000000..02bb4f5e
--- /dev/null
+++ b/ddb-template.yaml
@@ -0,0 +1,169 @@
+apiVersion: scaffolder.backstage.io/v1beta3
+kind: Template
+metadata:
+ name: create-documentdb
+ title: Create DocumentDB instance
+ description: Will create a new DocumentDB instance
+ tags:
+ - aws
+ - database
+ - infrastructure
+spec:
+ owner: Ops
+ type: infrastructure
+ parameters:
+ - title: "Provide information"
+ required:
+ - owner
+ - instance_name
+ - docdb_version
+ - instance_class
+ - instance_number
+ - product_line
+ properties:
+ owner:
+ title: "Owner"
+ type: string
+ description: Owner of the component
+ ui:field: OwnerPicker
+ ui:options:
+ allowedKinds:
+ - Group
+ instance_name:
+ title: "instance_name"
+ type: string
+ description: Unique name of your DocumentDB cluster
+ docdb_version:
+ title: "Version of DocumentDB"
+ type: string
+ description: DocumentDB cluster version
+ anyOf:
+ - type: string
+ title: 3.6.0
+ enum:
+ - "3.6.0"
+ - type: string
+ title: 4.0.0
+ enum:
+ - "4.0.0"
+ instance_class:
+ title: "Instance class"
+ type: string
+ description: Choose an DocumentDB instance class
+ anyOf:
+ - type: string
+ title: db.t4.medium(2cpu, 4Gib RAM)
+ enum:
+ - "db.t4.medium"
+ - type: string
+ title: db.r6g.large(2cpu, 16Gib RAM)
+ enum:
+ - "db.r6g.large"
+ - type: string
+ title: db.r6g.xlarge(4cpu, 32Gib RAM)
+ enum:
+ - "db.r6g.xlarge"
+ - type: string
+ title: db.r6g.2xlarge(4cpu, 64Gib RAM)
+ enum:
+ - "db.r6g.2xlarge"
+ instance_number:
+ title: "Number of instances"
+ type: string
+ description: Choose an DocumentDB instance number
+ anyOf:
+ - type: string
+ title: "1"
+ enum:
+ - "1"
+ - type: string
+ title: "2"
+ enum:
+ - "2"
+ - type: string
+ title: "3"
+ enum:
+ - "3"
+ - type: string
+ title: "4"
+ enum:
+ - "4"
+ product_line:
+ title: "Product line"
+ type: string
+ description: Choose your product line
+ anyOf:
+ - type: string
+ title: ugc
+ enum:
+ - "ugc"
+ - type: string
+ title: communication
+ enum:
+ - "communication"
+ - type: string
+ title: platform
+ enum:
+ - "platform"
+ - type: string
+ title: data-group
+ enum:
+ - "data-group"
+ - type: string
+ title: loyalty
+ enum:
+ - "loyalty"
+ - type: string
+ title: infra
+ enum:
+ - "infra"
+ - type: string
+ title: subscriptions
+ enum:
+ - "subscriptions"
+ - type: string
+ title: smsbump
+ enum:
+ - "smsbump"
+ - type: string
+ title: app-infra
+ enum:
+ - "app-infra"
+ steps:
+ - id: template
+ name: Fetch Skeleton + Template
+ action: fetch:template
+ input:
+ url: ./skeleton
+ targetPath: temp
+ copyWithoutRender:
+ - .github/workflows/*
+ values:
+ instance_name: '${{ parameters.instance_name }}'
+ instance_class: '${{ parameters.instance_class }}'
+ instance_number: '${{ parameters.instance_number }}'
+ docdb_version: '${{ parameters.docdb_version }}'
+ product_line: '${{ parameters.product_line }}'
+ - id: "file rename"
+ name: Renamne the configuration
+ action: fs:rename
+ input:
+ files:
+ - from: temp/documentDB-template.tf
+ to: ${{ parameters.instance_name}}.tf
+ - id: publish
+ name: Create a pull request
+ action: publish:github:pull-request
+ input:
+ repoUrl: 'github.com?owner=sblausten&repo=terraform-ddb-test'
+ targetPath: 'terraform/rds'
+ title: "feat(backstage): 'add backstage docdb entities for ${{ parameters.instance_name }}'"
+ branchName: add-docdb-backstage-entities-for-${{ parameters.instance_name }}
+ description: |
+ # Add docdb ackstage entities for: ${{parameters.instance_name}}
+ ${{ parameters.instance_name if parameters.instance_name else "" }}
+
+ output:
+ links:
+ - url: ${{steps.publish.output.remoteUrl}}
+ text: "Pull request"
diff --git a/demo_template.yaml b/demo_template.yaml
index cb5a7ba0..4a38a11c 100644
--- a/demo_template.yaml
+++ b/demo_template.yaml
@@ -2,8 +2,8 @@ apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
# some metadata about the template itself
metadata:
- name: hello-world
- title: Hello World
+ name: hello-world-2
+ title: Hello World 2
description: scaffolder Hello, World template demo
spec:
owner: backstage/techdocs-core
@@ -28,4 +28,4 @@ spec:
name: Log Message
action: debug:log
input:
- message: "Hello, ${{ parameters.name }}"
+ message: "Hello, ${{ parameters.name }} 2"
diff --git a/docs/big-table-of-contents.md b/docs/big-table-of-contents.md
deleted file mode 100644
index a44b5f22..00000000
--- a/docs/big-table-of-contents.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# Table of Contents
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-1. [Example](#example)
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-1. [Example](#example)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-1. [Example](#example)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-2. [Example2](#example2)
-3. [Third Example](#third-example)
-4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)
-
-
-## Example
-## Example2
-## Third Example
-## [Fourth Example](http://www.fourthexample.com)
diff --git a/docs/index.md b/docs/index.md
index 676a4ae9..6529a5d4 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -2,7 +2,7 @@
Anyone who has spent more than a month working in a decently sized software engineering department
can tell you the pain of finding documentation. Everyone wishes that great docs for internal
-services were the norm but few people are willing to spend the time it takes to make fantastic
+services were the norm but few people are willing to spend the time it takes to make fantastic
docs a reality.
Even when you do take the time to write good docs, they end up being so difficult to find that you
@@ -10,10 +10,10 @@ might as well not have bothered. Motivated teams will create a dedicated website
they have lovingly crafted. But searching for internal software isn’t like searching the open web,
Google doesn’t index your internal subdomains (hopefully!).
-It’s no wonder that software teams struggle to summon the motivation to produce great docs.
+It’s no wonder that software teams struggle to summon the motivation to produce great docs.
They’re hard to write and nobody will see them anyway.
Backstage solves this problem by co-locating documentation with the service it is for. Write
your docs-as-code in whatever format you like ([MkDocs](https://www.mkdocs.org/) is currently
supported out of the box), publish it whereever you like, and Backstage will display it in context
- where it is easy to find.
+where it is easy to find.
\ No newline at end of file
diff --git a/docs/intro.md b/docs/intro.md
new file mode 100644
index 00000000..6529a5d4
--- /dev/null
+++ b/docs/intro.md
@@ -0,0 +1,19 @@
+# Docs for sample-service-1
+
+Anyone who has spent more than a month working in a decently sized software engineering department
+can tell you the pain of finding documentation. Everyone wishes that great docs for internal
+services were the norm but few people are willing to spend the time it takes to make fantastic
+docs a reality.
+
+Even when you do take the time to write good docs, they end up being so difficult to find that you
+might as well not have bothered. Motivated teams will create a dedicated website for the software
+they have lovingly crafted. But searching for internal software isn’t like searching the open web,
+Google doesn’t index your internal subdomains (hopefully!).
+
+It’s no wonder that software teams struggle to summon the motivation to produce great docs.
+They’re hard to write and nobody will see them anyway.
+
+Backstage solves this problem by co-locating documentation with the service it is for. Write
+your docs-as-code in whatever format you like ([MkDocs](https://www.mkdocs.org/) is currently
+supported out of the box), publish it whereever you like, and Backstage will display it in context
+where it is easy to find.
\ No newline at end of file
diff --git a/docs/mermaid-diagram-test1.md b/docs/mermaid-diagram-test1.md
new file mode 100644
index 00000000..20348c5f
--- /dev/null
+++ b/docs/mermaid-diagram-test1.md
@@ -0,0 +1,9 @@
+```mermaid
+%%{init: {'theme': 'forest'}}%%
+graph LR
+ A[Start] --> B{Error?};
+ B -->|Yes| C[Hmm...];
+ C --> D[Debug];
+ D --> B;
+ B ---->|No| E[Yay!];
+```
diff --git a/github-actions-template.yaml b/github-actions-template.yaml
new file mode 100644
index 00000000..a1fae2a0
--- /dev/null
+++ b/github-actions-template.yaml
@@ -0,0 +1,99 @@
+apiVersion: scaffolder.backstage.io/v1beta3
+kind: Template
+metadata:
+ name: github-actions-template
+ title: Trigger workflow
+ description: Triggers workflow.
+spec:
+ owner: backstage/techdocs-core
+ type: service
+
+ parameters:
+ - title: "Repo 2"
+ properties:
+ repo:
+ type: string
+ title: Repository/Service Name
+ description: name (in lower-kebab-case) used for the repository and service
+ workflow:
+ type: string
+
+ # repoUrl:
+ # type: string
+ # ui:field: RepoUrlPicker
+ # ui:options:
+ # allowedHosts:
+ # - github.com
+ # owner:
+ # type: string
+ # ui:field: OwnerPicker
+ # person:
+ # type: object
+ # properties:
+ # name:
+ # type: string
+ # age:
+ # type: number
+
+ steps:
+ - action: debug:log
+ id: log-name
+ name: Log Message 1
+ input:
+ message: "${{ parameters.repoUrl }}"
+ - action: debug:log
+ id: log-name
+ name: Log Message 2
+ input:
+ message: ${{ '${{ parameters.repoUrl }}' }}
+ - action: debug:log
+ id: log-name
+ name: Log Message 3
+ input:
+ message: "{ % raw % } ${{ parameters.repoUrl }} {% endraw %}"
+ - action: github:actions:dispatch
+ id: trigger-build
+ name: Trigger Build 1
+ input:
+ repoUrl: "github.com?repo=${{ parameters.repo }}&owner=sblausten"
+ workflowId: ${{ parameters.workflow }}
+ branchOrTagName: "main"
+
+ # - id: push
+ # action: publish:github
+ # input:
+ # repoUrl: ${{ parameters.repoUrl }}
+ # - id: publish
+ # name: Publish
+ # action: publish:github
+ # input:
+ # repoUrl: ${{ parameters.repoUrl }}
+ # token: ${{ secrets.USER_OAUTH_TOKEN }}
+ # requiredCodeOwnerReviews: true
+ # sourcePath: ./new-repo
+ # allowedHosts: ['github.com']
+ # description: ${{ parameters.description }}
+ # access: ${{ parameters.repoUrl | replace(r/.*owner=/, "") | replace(r/&repo=.*/, "") }}/${{ parameters.repoOwner }}
+ # repoVisibility: internal
+ # defaultBranch: main
+ # deleteBranchOnMerge: true
+ # allowMergeCommit: false
+ # allowSquashMerge: true
+ # allowRebaseMerge: false
+ # - id: publish
+ # name: Publish
+ # action: publish:github
+ # input:
+ # sourcePath: new-repo
+ # allowedHosts: ['github.com']
+ # description: ${{ parameters.description }}
+ # repoUrl: ${{ parameters.repoUrl }}
+ # token: ${{ secrets.USER_OAUTH_TOKEN }}
+ # access: ${{ parameters.repoUrl | replace(r/.*owner=/, "") | replace(r/&repo=.*/, "") }}/${{ parameters.repoOwner }}
+ # requireCodeOwnerReviews: false
+ # repoVisibility: internal
+ # defaultBranch: main
+ # deleteBranchOnMerge: true
+ # allowMergeCommit: false
+ # allowSquashMerge: true
+ # allowRebaseMerge: false
diff --git a/mkdocs.yml b/mkdocs.yml
index a005d471..0a5747cf 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -4,10 +4,10 @@ nav:
- Home: index.md
- Local development: local-development.md
- Feature Testing: feature-testing.md
- - Big ToC: big-table-of-contents.md
- TestDoc: test-doc.md
- - Subdirectory docs:
- - mycomponent: '!include ./sub-dir-documentation/mkdocs.yml'
+ - Mermaid: mermaid-diagram-test1.md
plugins:
- monorepo
+markdown_extensions:
+ - markdown_inline_mermaid
diff --git a/one-service/docs/intro.md b/one-service/docs/intro.md
new file mode 100644
index 00000000..6529a5d4
--- /dev/null
+++ b/one-service/docs/intro.md
@@ -0,0 +1,19 @@
+# Docs for sample-service-1
+
+Anyone who has spent more than a month working in a decently sized software engineering department
+can tell you the pain of finding documentation. Everyone wishes that great docs for internal
+services were the norm but few people are willing to spend the time it takes to make fantastic
+docs a reality.
+
+Even when you do take the time to write good docs, they end up being so difficult to find that you
+might as well not have bothered. Motivated teams will create a dedicated website for the software
+they have lovingly crafted. But searching for internal software isn’t like searching the open web,
+Google doesn’t index your internal subdomains (hopefully!).
+
+It’s no wonder that software teams struggle to summon the motivation to produce great docs.
+They’re hard to write and nobody will see them anyway.
+
+Backstage solves this problem by co-locating documentation with the service it is for. Write
+your docs-as-code in whatever format you like ([MkDocs](https://www.mkdocs.org/) is currently
+supported out of the box), publish it whereever you like, and Backstage will display it in context
+where it is easy to find.
\ No newline at end of file
diff --git a/one-service/docs/local-development.md b/one-service/docs/local-development.md
new file mode 100644
index 00000000..ccff20a6
--- /dev/null
+++ b/one-service/docs/local-development.md
@@ -0,0 +1,12 @@
+## Development
+
+First add some secrets to the `.env` file in the root. See the `.env.sample` file for suggestions
+of required environment variables.
+
+Then run the software locally like this:
+
+```shell
+yarn start
+curl :3000/
+```
+
diff --git a/one-service/docs/mkdocs.yaml b/one-service/docs/mkdocs.yaml
new file mode 100644
index 00000000..9e5700e3
--- /dev/null
+++ b/one-service/docs/mkdocs.yaml
@@ -0,0 +1,10 @@
+site_name: 'sample-service'
+
+nav:
+- Home: intro.md
+- Local Development: local-development.md
+- test: test-doc.md
+- other: ./../../another-service/docs/test-doc.md
+
+plugins:
+- techdocs-core
\ No newline at end of file
diff --git a/one-service/docs/test-doc.md b/one-service/docs/test-doc.md
new file mode 100644
index 00000000..9a2c822d
--- /dev/null
+++ b/one-service/docs/test-doc.md
@@ -0,0 +1,19 @@
+This is my testing document
+
+
+```diff
+diff --git a/src/components/CallToAction/EmailCaptureForm.js b/src/components/CallToAction/EmailCaptureForm.js index eb154ca..9450b93 100644
+--- a/src/components/CallToAction/EmailCaptureForm.js
++++ b/src/components/CallToAction/EmailCaptureForm.js
+@@ -56,7 +56,7 @@
+
+const EmailCaptureForm = ({
+ }
++ prefixIcon={}
+ id={buttonId}
+ fullWidth
+ color="primary"
+```
diff --git a/sub-dir-documentation/mkdocs.yml b/sub-dir-documentation/mkdocs.yml
index f93fab96..dd23ea07 100644
--- a/sub-dir-documentation/mkdocs.yml
+++ b/sub-dir-documentation/mkdocs.yml
@@ -2,3 +2,4 @@ site_name: mycomponent
nav:
- First page: index.md
+ - Second page: ../blob/main/docs/feature-testing.md