diff --git a/.github/ISSUE_TEMPLATE/application-request.md b/.github/ISSUE_TEMPLATE/application-request.md index 6cd2aefafc..5841b093aa 100644 --- a/.github/ISSUE_TEMPLATE/application-request.md +++ b/.github/ISSUE_TEMPLATE/application-request.md @@ -1,9 +1,9 @@ --- name: Application Request about: Suggest a new application to be added to the DockSTARTer repository -title: '[Application Request]' -labels: 'apps, docs, enhancement' -assignees: '' +title: "[Application Request]" +labels: "apps, docs, enhancement" +assignees: "" --- # Name of the application diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 051d3bda48..bdc6bfb6d5 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,10 +1,9 @@ --- name: Bug report about: Create a report to help us improve -title: '[BUG]' -labels: 'bug' -assignees: '' - +title: "[BUG]" +labels: "bug" +assignees: "" --- # Bug report diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md index 15c7d4086d..2f1b28e034 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -1,10 +1,9 @@ --- name: Feature request about: Suggest an idea for this project -title: '[Feature Request]' -labels: 'enhancement' -assignees: '' - +title: "[Feature Request]" +labels: "enhancement" +assignees: "" --- # Feature request diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index f55c977a19..5e0b40a530 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -3,7 +3,6 @@ name: Build mkdocs and deploy to GitHub Pages on: [push, pull_request] jobs: - build: name: Build docs runs-on: ubuntu-latest @@ -27,7 +26,7 @@ jobs: steps: - uses: actions/checkout@v4.0.0 with: - fetch-depth: '0' + fetch-depth: "0" - uses: actions/setup-python@v4.7.0 with: python-version: 3.x diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml index 8c89f717d3..af659e58f7 100644 --- a/.github/workflows/label.yml +++ b/.github/workflows/label.yml @@ -10,7 +10,6 @@ on: [pull_request_target] jobs: label: - runs-on: ubuntu-latest steps: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e982f5baaa..d0ebafd93b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -11,7 +11,6 @@ jobs: run: | docker run --rm \ -v "${GITHUB_WORKSPACE}":/check \ - -u "$(id -u):$(id -g)" \ mstruebing/editorconfig-checker markdownlint: @@ -20,12 +19,12 @@ jobs: - uses: actions/checkout@v4.0.0 - name: markdownlint run: | - find "${GITHUB_WORKSPACE}" -name '*.md' -exec \ - docker run --rm \ - -v "${GITHUB_WORKSPACE}":"${GITHUB_WORKSPACE}" \ - markdownlint/markdownlint \ - -r ~MD007,~MD013,~MD033,~MD034 \ - {} + + docker run --rm \ + -v "${GITHUB_WORKSPACE}":/workdir \ + ghcr.io/igorshubovych/markdownlint-cli \ + --ignore "docs/index.md" \ + --disable MD013 MD033 -- \ + "**/*.md" shellcheck: runs-on: ubuntu-latest @@ -58,9 +57,9 @@ jobs: - uses: actions/checkout@v4.0.0 - name: yamllint run: | - find "${GITHUB_WORKSPACE}" -name '*.yaml' -o -name '*.yml' -exec \ - docker run --rm \ - -v "${GITHUB_WORKSPACE}":"${GITHUB_WORKSPACE}" \ - peterdavehello/yamllint \ - yamllint -d '{"extends":"default","rules":{"document-start":{"present":false},"line-length":"disable","truthy":{"check-keys":false}}}' \ - {} + + docker run --rm \ + -v "${PWD}":/yaml \ + peterdavehello/yamllint \ + yamllint \ + -d '{"extends":"default","rules":{"document-start":{"present":false},"line-length":"disable","truthy":{"check-keys":false}}}' \ + "." diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 36013da346..9a428c8ae7 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -18,5 +18,5 @@ jobs: stale-pr-label: "no-pr-activity" days-before-stale: 90 days-before-close: 15 - exempt-issue-labels: 'under-consideration,work-in-progress' - exempt-pr-labels: 'under-consideration,work-in-progress' + exempt-issue-labels: "under-consideration,work-in-progress" + exempt-pr-labels: "under-consideration,work-in-progress" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 239502aa90..8056cbf2a6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,7 +3,6 @@ name: Run Tests on: [push, pull_request] jobs: - run: runs-on: ${{ matrix.os }} strategy: diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 106f1a165e..a6c71dfc37 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -9,14 +9,18 @@ jobs: - uses: actions/checkout@v4.0.0 - name: Validate Documentation run: | - dirname -- $(grep -Rl 'deprecated: "true"' compose/) | xargs rm -rf - for image in $(ls compose/.apps/); do - if ! ls -d docs/apps/* | grep -q "docs/apps/${image}.md"; then - echo "Missing documentation for ${image}" + for APPFOLDER in compose/.apps/*; do + APPNAME=$(basename "${APPFOLDER}") + APPDEPRECATED=$(grep --color=never -Po "\scom\.dockstarter\.appinfo\.deprecated: \K.*" "compose/.apps/${APPNAME}/${APPNAME}.labels.yml" | sed -E 's/^([^"].*[^"])$/"\1"/' | xargs || echo false) + if [[ ${APPDEPRECATED} == true ]]; then + continue + fi + if [[ ! -f "docs/apps/${APPNAME}.md" ]]; then + echo "Missing documentation for ${APPNAME}" exit 1 fi - if ! grep -q "apps/${image}.md" mkdocs.yml; then - echo "Missing link for ${image}" + if ! grep -q "apps/${APPNAME}.md" mkdocs.yml; then + echo "Missing link for ${APPNAME}" exit 1 fi done @@ -27,11 +31,14 @@ jobs: - uses: actions/checkout@v4.0.0 - name: Validate Images run: | - dirname -- $(grep -Rl 'deprecated: "true"' compose/) | xargs rm -rf - for image in $(grep -RPoh "image: \K.*" compose/ | sort -u | grep -v '${'); do - echo "Image: ${image}" - if [[ ${image} != *":"* ]]; then - image="${image}:latest" + for APPFOLDER in compose/.apps/*; do + APPNAME=$(basename "${APPFOLDER}") + APPDEPRECATED=$(grep --color=never -Po "\scom\.dockstarter\.appinfo\.deprecated: \K.*" "compose/.apps/${APPNAME}/${APPNAME}.labels.yml" | sed -E 's/^([^"].*[^"])$/"\1"/' | xargs || echo false) + if [[ ${APPDEPRECATED} == true ]]; then + continue fi - docker run --rm mplatform/mquery "${image}" + APPIMAGE=$(grep --color=never -Po "\simage: \K.*" "compose/.apps/${APPNAME}/${APPNAME}.x86_64.yml" | sed -E 's/([^:]+):[^:]+/\1/' | xargs || echo false) + APPTAG=$(grep --color=never -Po "\scom\.dockstarter\.appvars\.${APPNAME}_tag: \K.*" "compose/.apps/${APPNAME}/${APPNAME}.labels.yml" | sed -E 's/^([^"].*[^"])$/"\1"/' | xargs || echo false) + echo "Image: ${APPIMAGE}:${APPTAG}" + docker run --rm mplatform/mquery "${APPIMAGE}:${APPTAG}" done diff --git a/docs/apps/gluetun.md b/docs/apps/gluetun.md index b553b74f8c..360d9ec685 100644 --- a/docs/apps/gluetun.md +++ b/docs/apps/gluetun.md @@ -20,7 +20,7 @@ your `docker-compose.override.yml`. .env -``` +```env ... TRANSMISSION_NETWORK_MODE="container:gluetun" ... diff --git a/docs/apps/homeassistant.md b/docs/apps/homeassistant.md index 0b8f70719c..6540d965f6 100644 --- a/docs/apps/homeassistant.md +++ b/docs/apps/homeassistant.md @@ -36,6 +36,6 @@ Reference: To make sure your Home Assistant instance can see your local network devices you might want to set your network mode to `host` on your `.docker/compose/.env` file. -``` +```env HOMEASSISTANT_NETWORK_MODE=host ``` diff --git a/docs/apps/homer.md b/docs/apps/homer.md index 4bb8e00117..5a6642dfbd 100644 --- a/docs/apps/homer.md +++ b/docs/apps/homer.md @@ -24,4 +24,4 @@ Note that your configuration files and homer assets are located in `${DOCKERCONF #### HOMER_SUBFOLDER -(default: `''`) If you would like to host Homer in a subfolder, (ex: http://my-domain/homer), set this to the subfolder path (ex /homer). +(default: `''`) If you would like to host Homer in a subfolder, (ex: `http://my-domain/homer`), set this to the subfolder path (ex /homer). diff --git a/docs/apps/rustdesk.md b/docs/apps/rustdesk.md index 5b203cc6d1..8d47bad68c 100644 --- a/docs/apps/rustdesk.md +++ b/docs/apps/rustdesk.md @@ -14,7 +14,7 @@ hbbs is the RustDesk ID/Rendezvous server. hbbr is the RustDesk relay server. Bo When hbbs is first run, it will generate a public/private key pair for the clients to use. You can see this take place in the logs: -``` +```env INFO [src/common.rs:133] Private/public key written to id_ed25519/id_ed25519.pub ``` diff --git a/docs/apps/watchtower.md b/docs/apps/watchtower.md index 4a293383ed..8c5258c2ad 100644 --- a/docs/apps/watchtower.md +++ b/docs/apps/watchtower.md @@ -25,7 +25,7 @@ The default notification library is [Shoutrrr](https://containrrr.dev/shoutrrr/) | Notification Application | Your DockSTARTer `WATCHTOWER_NOTIFICATION_URL` should follow this: | | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | [Discord](https://containrrr.dev/shoutrrr/services/discord/) | discord://**token**@**channel** | -| [Email](https://containrrr.dev/shoutrrr/services/overview/) | smtp://**`username`**:**`password`**@**`host`**:**`port`**/?fromAddress=**`fromAddress`**&toAddresses=**`recipient1`**[,__`recipient2`__,...] | -| [Pushover](https://containrrr.dev/shoutrrr/services/pushover/) | pushover://shoutrrr:**`apiToken`**@**`userKey`**/?devices=**`device1`**[,__`device2`__, ...] | -| [Slack](./not-documented.md) | slack://[__`botname`__@]**`token-a`**/**`token-b`**/**`token-c`**\* | -| [Telegram](https://containrrr.dev/shoutrrr/services/telegram/) | telegram://**`token`**@telegram?channels=**`channel-1`**[,__`channel-2`__,...] | +| [Email](https://containrrr.dev/shoutrrr/services/overview/) | smtp://**`username`**:**`password`**@**`host`**:**`port`**/?fromAddress=**`fromAddress`**&toAddresses=**`recipient1`**[,**`recipient2`**,...] | +| [Pushover](https://containrrr.dev/shoutrrr/services/pushover/) | pushover://shoutrrr:**`apiToken`**@**`userKey`**/?devices=**`device1`**[,**`device2`**, ...] | +| [Slack](./not-documented.md) | slack://[**`botname`**@]**`token-a`**/**`token-b`**/**`token-c`**\* | +| [Telegram](https://containrrr.dev/shoutrrr/services/telegram/) | telegram://**`token`**@telegram?channels=**`channel-1`**[,**`channel-2`**,...] |