Skip to content

Commit d509c22

Browse files
committed
v1.1.0
1 parent 7d74c9a commit d509c22

File tree

6 files changed

+124
-2
lines changed

6 files changed

+124
-2
lines changed

.github/workflows/lint.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Lint
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
shellcheck:
11+
name: ShellCheck
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v4
16+
17+
- name: Run ShellCheck
18+
run: |
19+
find . -name "*.sh" -not -path "./.git/*" -print0 | xargs -0 shellcheck --severity=error
20+
21+
syntax-check:
22+
name: Bash Syntax
23+
runs-on: ubuntu-latest
24+
steps:
25+
- name: Checkout code
26+
uses: actions/checkout@v4
27+
28+
- name: Validate Bash syntax
29+
run: |
30+
find . -name "*.sh" -not -path "./.git/*" -print0 | xargs -0 -I {} bash -n {}

.github/workflows/release.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
release:
13+
name: Create Release
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
19+
- name: Create GitHub Release
20+
uses: softprops/action-gh-release@v1
21+
with:
22+
generate_release_notes: true
23+
env:
24+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.shellcheckrc

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# .shellcheckrc - Pi-Router + NAS Server shellcheck config
2+
# Multi-Device Setup: 552 Shell-Scripts (Pi 5: ~249, NAS: ~303)
3+
# Best Practices 2025 compliant
4+
# Optimized for ShellCheck 0.9.0+ (Last reviewed: 12. Dezember 2025)
5+
#
6+
# References:
7+
# - https://www.shellcheck.net/wiki/Directive
8+
# - https://www.shellcheck.net/wiki/Optional
9+
# - https://man.archlinux.org/man/extra/shellcheck/shellcheck.1.en
10+
11+
# ============================================================================
12+
# DISABLED CHECKS
13+
# ============================================================================
14+
15+
# SC1090: Can't follow non-constant source
16+
# SC1091: Not following sourced file
17+
# Rationale: Scripts use dynamic library paths (e.g., ${SCRIPT_DIR}/../lib/)
18+
# shellcheck cannot resolve these at static analysis time
19+
# Example: source "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")/../lib/logging.sh"
20+
disable=SC1090,SC1091
21+
22+
# ============================================================================
23+
# OPTIONAL CHECKS
24+
# ============================================================================
25+
26+
# NOT using enable=all (Best Practice 2025)
27+
# Reason: enable=all activates subjective/conflicting optional checks
28+
# meant for discovery only, not production
29+
# Instead: Selectively enable specific optional checks if needed
30+
#
31+
# Available optional checks (use shellcheck --list-optional):
32+
# - avoid-nullary-conditions, deprecate-which, quote-safe-variables, etc.
33+
34+
# No optional checks enabled (Production default)
35+
36+
# ============================================================================
37+
# CONFIGURATION
38+
# ============================================================================
39+
40+
# Shell dialect (Raspberry Pi OS Bookworm: bash 5.2.15, Ubuntu 24.04: bash 5.2.21)
41+
shell=bash
42+
43+
# Source path for library resolution
44+
# SCRIPTDIR = directory of currently checked script
45+
source-path=SCRIPTDIR
46+
47+
# Allow following source statements (Best Practice 2025)
48+
# Safely enables shellcheck to open sourced files where possible
49+
external-sources=true
50+
51+
# Minimum severity threshold (focus on errors + warnings)
52+
# Consistent with script-audit.sh Production-Ready threshold (85%+ clean)
53+
severity=warning

CHANGELOG.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1212
- Ansible playbook support
1313
- Docker security hardening module
1414

15+
## [1.1.0] - 2026-01-21
16+
17+
### Added
18+
- CI/CD pipeline with GitHub Actions
19+
- ShellCheck linting workflow (severity: error)
20+
- Bash syntax validation workflow
21+
- Automated release workflow
22+
- `.shellcheckrc` configuration (Best Practices 2025)
23+
- CI status badge in README.md
24+
25+
### Changed
26+
- All bash scripts now validated on every push to main branch
27+
1528
## [1.0.1] - 2026-01-20
1629

1730
### Changed
@@ -62,9 +75,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6275

6376
| Version | Date | Highlights |
6477
|---------|------|------------|
78+
| 1.1.0 | 2026-01-21 | CI/CD pipeline with GitHub Actions (ShellCheck, automated releases) |
6579
| 1.0.1 | 2026-01-20 | Documentation patch (CODE_OF_CONDUCT.md contact update) |
6680
| 1.0.0 | 2026-01-20 | Initial release with 14 security components |
6781

68-
[Unreleased]: https://github.com/fidpa/ubuntu-server-security/compare/v1.0.1...HEAD
82+
[Unreleased]: https://github.com/fidpa/ubuntu-server-security/compare/v1.1.0...HEAD
83+
[1.1.0]: https://github.com/fidpa/ubuntu-server-security/compare/v1.0.1...v1.1.0
6984
[1.0.1]: https://github.com/fidpa/ubuntu-server-security/compare/v1.0.0...v1.0.1
7085
[1.0.0]: https://github.com/fidpa/ubuntu-server-security/releases/tag/v1.0.0

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)
44
![Ubuntu](https://img.shields.io/badge/Ubuntu-22.04%20%7C%2024.04-orange?logo=ubuntu)
55
![CIS Benchmark](https://img.shields.io/badge/CIS%20Benchmark-100%25-blue)
6+
![CI](https://github.com/fidpa/ubuntu-server-security/actions/workflows/lint.yml/badge.svg)
67

78
Production-ready security configurations for Ubuntu servers.
89

vaultwarden/vaultwarden-credentials.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,6 @@ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
336336
fi
337337
echo ""
338338
echo "Checking vault status..."
339-
local status
340339
status=$(bw status 2>/dev/null | grep -o '"status":"[^"]*"' | cut -d'"' -f4)
341340
echo " Status: $status"
342341
echo ""

0 commit comments

Comments
 (0)