feat(truenas-deploy): default remote path to /mnt/jupiter/apps/<owner>/<repo>
Update README Actions Table / update-readme (push) Successful in 9s

This commit is contained in:
root
2026-10-13 11:35:48 -07:00
parent 393301c0b6
commit 773f838272
2 changed files with 31 additions and 23 deletions
+15 -15
View File
@@ -1,23 +1,23 @@
# Deploy to TrueNAS (`truenas-deploy`) # TrueNAS Deploy
Deploys a Docker Compose stack directly to TrueNAS SCALE (`/mnt/jupiter/apps/<app_name>`) over SSH and runs `docker compose pull && docker compose up -d --remove-orphans`. Composite Gitea Action that deploys a Docker Compose stack to TrueNAS SCALE over SSH (`/mnt/jupiter/apps/<owner>/<repo>`) and pulls the latest container images.
## Usage ## Inputs
| Name | Required | Default | Description |
| :--- | :---: | :---: | :--- |
| `ssh_key` | Yes | - | Private SSH key for authenticating to TrueNAS (`secrets.TRUENAS_SSH_KEY`) |
| `app_name` | No | `${{ github.repository }}` | Application subpath under `/mnt/jupiter/apps/<owner>/<repo>` (defaults to `<owner>/<repo>`) |
| `compose_file` | No | `docker-compose.yaml` | Path to the local compose file (`docker-compose.yaml` or `docker-compose.yml` auto-detected) |
| `host` | No | `10.0.0.218` | TrueNAS SSH host IP or domain |
| `user` | No | `root` | TrueNAS SSH user |
| `env_file_content` | No | `""` | Optional `.env` file content to write to `/mnt/jupiter/apps/<owner>/<repo>/.env` (`0600`) |
## Example Usage
```yaml ```yaml
- name: Deploy to TrueNAS - name: Deploy to TrueNAS
uses: https://git.rodydavis.dev/rodydavis/shared-actions/truenas-deploy@main uses: https://git.rodydavis.dev/rodydavis/shared-actions/truenas-deploy@main
with: with:
ssh_key: ${{ secrets.TRUENAS_SSH_KEY }} ssh_key: ${{ secrets.TRUENAS_SSH_KEY }}
``` ```
### Optional Inputs
| Input | Description | Default |
| :--- | :--- | :--- |
| `ssh_key` | **(Required)** Private SSH key for authenticating to TrueNAS (`secrets.TRUENAS_SSH_KEY`). | — |
| `app_name` | Application directory name under `/mnt/jupiter/apps/<app_name>`. | Repository name |
| `compose_file` | Local compose file path (auto-detects `docker-compose.yaml` or `docker-compose.yml`). | `docker-compose.yaml` |
| `host` | TrueNAS SSH host IP or hostname. | `10.0.0.218` |
| `user` | TrueNAS SSH user. | `root` |
| `env_file_content` | Optional `.env` file contents to write to `/mnt/jupiter/apps/<app_name>/.env`. | `''` |
+13 -5
View File
@@ -5,7 +5,7 @@ inputs:
description: 'Private SSH key for authenticating to TrueNAS' description: 'Private SSH key for authenticating to TrueNAS'
required: true required: true
app_name: app_name:
description: 'Application directory name under /mnt/jupiter/apps/<app_name> (defaults to repository name)' description: 'Application subpath under /mnt/jupiter/apps/<owner>/<repo> (defaults to <owner>/<repo>)'
required: false required: false
default: '' default: ''
compose_file: compose_file:
@@ -37,13 +37,21 @@ runs:
INPUT_HOST: ${{ inputs.host }} INPUT_HOST: ${{ inputs.host }}
INPUT_USER: ${{ inputs.user }} INPUT_USER: ${{ inputs.user }}
INPUT_ENV_CONTENT: ${{ inputs.env_file_content }} INPUT_ENV_CONTENT: ${{ inputs.env_file_content }}
REPO_NAME: ${{ github.event.repository.name }} REPO_FULL_NAME: ${{ github.repository }}
REPO_OWNER: ${{ github.repository_owner }}
run: | run: |
set -euo pipefail set -euo pipefail
APP_DIR_NAME="${INPUT_APP_NAME:-$REPO_NAME}" FULL_REPO="${REPO_FULL_NAME:-$GITHUB_REPOSITORY}"
if [ -z "$APP_DIR_NAME" ]; then OWNER="${REPO_OWNER:-$(dirname "$FULL_REPO")}"
APP_DIR_NAME=$(basename "$GITHUB_REPOSITORY")
if [ -n "$INPUT_APP_NAME" ]; then
case "$INPUT_APP_NAME" in
*/*) APP_DIR_NAME="$INPUT_APP_NAME" ;;
*) APP_DIR_NAME="${OWNER}/${INPUT_APP_NAME}" ;;
esac
else
APP_DIR_NAME="$FULL_REPO"
fi fi
COMPOSE_FILE="$INPUT_COMPOSE_FILE" COMPOSE_FILE="$INPUT_COMPOSE_FILE"