Skip to content

Commit 8b019ee

Browse files
committed
Add OBS packaging and production readiness fixes
- Add debian/rules, debian/copyright, debian/source/format - Add .obs/ directory with spec, debian control, tarball script - Update CHANGELOG date to 2026-04-04 - Fix .gitignore to track .obs/ and docs/ directories
0 parents  commit 8b019ee

37 files changed

Lines changed: 2051 additions & 0 deletions

.editorconfig

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
trim_trailing_whitespace = true
8+
9+
[*.go]
10+
indent_style = tab
11+
12+
[Makefile]
13+
indent_style = tab
14+
15+
[*.{yaml,yml}]
16+
indent_size = 2
17+
indent_style = space
18+
19+
[*.md]
20+
trim_trailing_whitespace = false
21+
22+
[*.sh]
23+
indent_style = space
24+
indent_size = 4

.github/dependabot.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"
7+
- package-ecosystem: "gomod"
8+
directory: "/"
9+
schedule:
10+
interval: "weekly"

.github/funding.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: [RumenDamyanov]

.github/workflows/build.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Build
2+
3+
permissions:
4+
contents: read
5+
6+
on:
7+
push:
8+
branches: [master, main, develop]
9+
pull_request:
10+
branches: [master, main, develop]
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
strategy:
16+
matrix:
17+
go-version: ["1.21", "1.22"]
18+
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v4
22+
23+
- name: Set up Go
24+
uses: actions/setup-go@v5
25+
with:
26+
go-version: ${{ matrix.go-version }}
27+
28+
- name: Build
29+
run: make build
30+
31+
- name: Test
32+
run: make test
33+
34+
- name: Verify binary
35+
run: ./apache-waf-ui --version

.github/workflows/release.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
tag:
7+
description: "Git tag (e.g. v0.1.0) to build"
8+
required: true
9+
prerelease:
10+
description: "Mark as pre-release"
11+
required: false
12+
type: boolean
13+
default: false
14+
15+
permissions:
16+
contents: write
17+
18+
jobs:
19+
build-release:
20+
runs-on: ubuntu-latest
21+
strategy:
22+
fail-fast: false
23+
matrix:
24+
include:
25+
- { goos: linux, goarch: amd64 }
26+
- { goos: linux, goarch: arm64 }
27+
28+
name: Build ${{ matrix.goos }}-${{ matrix.goarch }}
29+
30+
steps:
31+
- name: Checkout tag
32+
uses: actions/checkout@v4
33+
with:
34+
ref: ${{ inputs.tag }}
35+
36+
- name: Set up Go
37+
uses: actions/setup-go@v5
38+
with:
39+
go-version: "1.22"
40+
41+
- name: Set version
42+
id: version
43+
run: |
44+
VERSION="${{ inputs.tag }}"
45+
VERSION="${VERSION#v}"
46+
echo "version=$VERSION" >> $GITHUB_OUTPUT
47+
48+
- name: Build
49+
env:
50+
GOOS: ${{ matrix.goos }}
51+
GOARCH: ${{ matrix.goarch }}
52+
CGO_ENABLED: "0"
53+
run: |
54+
make build VERSION=${{ steps.version.outputs.version }}
55+
mv apache-waf-ui apache-waf-ui_${{ steps.version.outputs.version }}_${{ matrix.goos }}_${{ matrix.goarch }}
56+
57+
- name: Package artifact
58+
run: |
59+
FN=apache-waf-ui_${{ steps.version.outputs.version }}_${{ matrix.goos }}_${{ matrix.goarch }}
60+
mkdir -p pkg
61+
cp LICENSE.md README.md CHANGELOG.md pkg/
62+
cp conf/config.example.yaml pkg/
63+
cp $FN pkg/apache-waf-ui
64+
tar czf ${FN}.tar.gz -C pkg .
65+
sha256sum ${FN}.tar.gz > ${FN}.sha256
66+
67+
- name: Upload artifact
68+
uses: actions/upload-artifact@v4
69+
with:
70+
name: release-${{ matrix.goos }}-${{ matrix.goarch }}
71+
path: |
72+
*.tar.gz
73+
*.sha256
74+
75+
publish:
76+
runs-on: ubuntu-latest
77+
needs: build-release
78+
steps:
79+
- name: Download artifacts
80+
uses: actions/download-artifact@v4
81+
with:
82+
path: artifacts
83+
merge-multiple: true
84+
85+
- name: Create Release
86+
uses: softprops/action-gh-release@v2
87+
with:
88+
tag_name: ${{ inputs.tag }}
89+
name: apache-waf-ui ${{ inputs.tag }}
90+
prerelease: ${{ inputs.prerelease }}
91+
generate_release_notes: true
92+
files: |
93+
artifacts/*.tar.gz
94+
artifacts/*.sha256
95+
env:
96+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Build artifacts
2+
/apache-waf-ui
3+
*.exe
4+
build/
5+
6+
# Go
7+
vendor/
8+
9+
# Development directories
10+
.development/
11+
.obs/
12+
13+
# Editor files
14+
.vscode/
15+
.cursor/
16+
.cursorrules
17+
.idea/
18+
.ai/
19+
*.swp
20+
*.swo
21+
*~
22+
23+
# OS files
24+
.DS_Store
25+
._*
26+
Thumbs.db
27+
28+
# Package artifacts
29+
*.rpm
30+
*.deb
31+
*.tar.gz
32+
*.tar.xz
33+
34+
# Test artifacts
35+
coverage.out
36+
coverage.html

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [0.1.0] - 2026-04-04
9+
10+
### Added
11+
- Initial project scaffolding (port of nginx-waf-ui)
12+
13+
## [0.1.0] - Unreleased
14+
15+
### Added
16+
- htmx-powered web dashboard
17+
- Session-based authentication
18+
- IP list viewing, searching, adding, removing
19+
- Integration with apache-waf-api

CODE_OF_CONDUCT.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, religion, or sexual identity
10+
and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
* Demonstrating empathy and kindness toward other people
21+
* Being respectful of differing opinions, viewpoints, and experiences
22+
* Giving and gracefully accepting constructive feedback
23+
* Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
* Focusing on what is best not just for us as individuals, but for the
26+
overall community
27+
28+
Examples of unacceptable behavior include:
29+
30+
* The use of sexualized language or imagery, and sexual attention or
31+
advances of any kind
32+
* Trolling, insulting or derogatory comments, and personal or political attacks
33+
* Public or private harassment
34+
* Publishing others' private information, such as a physical or email
35+
address, without their explicit permission
36+
* Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Community leaders are responsible for clarifying and enforcing our standards of
42+
acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Community leaders have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies when
54+
an individual is officially representing the community in public spaces.
55+
56+
## Enforcement
57+
58+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
59+
reported to the community leaders responsible for enforcement at
60+
**contact@rumenx.com**.
61+
62+
All complaints will be reviewed and investigated promptly and fairly.
63+
64+
## Attribution
65+
66+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org),
67+
version 2.1.

CONTRIBUTING.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Contributing to apache-waf-ui
2+
3+
Thanks for your interest in improving apache-waf-ui!
4+
5+
## Development Setup
6+
7+
### Prerequisites
8+
9+
- Go 1.22+
10+
- Git
11+
12+
### Local Development
13+
14+
```bash
15+
git clone https://github.com/RumenDamyanov/apache-waf-ui.git
16+
cd apache-waf-ui
17+
make build
18+
make test
19+
```
20+
21+
## Pull Request Process
22+
23+
1. Fork the repository
24+
2. Create a feature branch from `master`
25+
3. Ensure `make test` passes
26+
4. Submit a pull request
27+
28+
## Questions?
29+
30+
Open a [discussion](https://github.com/RumenDamyanov/apache-waf-ui/discussions) or [issue](https://github.com/RumenDamyanov/apache-waf-ui/issues).

FUNDING.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Supporting apache-waf-ui
2+
3+
If you find this project useful, consider supporting its development.
4+
5+
## Sponsorship Options
6+
7+
| Platform | Link |
8+
|----------|------|
9+
| GitHub Sponsors | [github.com/sponsors/RumenDamyanov](https://github.com/sponsors/RumenDamyanov) |
10+
11+
## Other Ways to Support
12+
13+
- Star the repository
14+
- Share with others who might find it useful
15+
- Report bugs and issues
16+
- Improve documentation
17+
- Contribute code
18+
19+
## How Funds Are Used
20+
21+
Sponsorship funds support:
22+
23+
- Development time
24+
- Testing infrastructure
25+
- Documentation efforts
26+
- Community support

0 commit comments

Comments
 (0)