feat(distribution): production install/update/backup scripts + public-repo sync (#106)
Builds the customer-facing distribution: a curated distribution/ directory containing only what an end customer needs (production docker-compose.yml with no build: sections, install.sh/update.sh/uninstall.sh/healthcheck.sh/ backup.sh/restore.sh, a customer-facing CHANGELOG.md, and README/LICENSE/ NOTICE/THIRD_PARTY_LICENSES) — pushed as the initial content of the new public alleyviper/argus repo. install.sh: detects OS, validates Docker/Compose, fetches all deployment files, generates a secure DB password, creates the required Docker network, pulls images, starts the stack, waits for health, and rotates the default admin/admin credentials via the auth API — printing the generated password once at the end. update.sh/healthcheck.sh/backup.sh/restore.sh/uninstall.sh formalize what was previously ad-hoc README snippets into real, safe-by-default scripts (uninstall.sh keeps data unless --remove-data is explicitly passed and confirmed; restore.sh requires typed confirmation and documents that it targets a fresh install, not a live merge). Added a sync-distribution job to release.yml: after a successful release, mirrors distribution/ into the public repo and creates a matching (customer-facing, commit-log-free) release marker there. Needs a one-time setup step — a fine-grained PAT scoped to alleyviper/argus added as the ARGUS_PUBLIC_REPO_TOKEN secret — the job cleanly no-ops until that's added. Not yet done: GHCR package visibility (argus-secure-api/-ui/-nginx) is still private, which blocks a genuine end-to-end curl-install test from a clean, unauthenticated environment — deferred at the user's request until they flip it manually (GitHub does not expose this via API).
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
# Third-Party Licenses
|
||||
|
||||
ARGUS Secure uses the following third-party software:
|
||||
|
||||
## Core Components
|
||||
|
||||
### TimescaleDB
|
||||
- **License**: Timescale License (TSL)
|
||||
- **Website**: https://github.com/timescale/timescaledb
|
||||
- **License URL**: https://github.com/timescale/timescaledb/blob/main/tsl/LICENSE-TIMESCALE
|
||||
- **Note**: TimescaleDB Community Edition is used for time-series data storage and compression.
|
||||
The Timescale License carries redistribution conditions beyond plain open source — reviewed
|
||||
before bundling with a commercial, proprietary product; see legal review note below.
|
||||
|
||||
### Nginx
|
||||
- **License**: BSD-2-Clause
|
||||
- **Website**: https://nginx.org/
|
||||
- **Copyright**: (C) 2002-2024 Igor Sysoev, (C) 2011-2024 Nginx, Inc.
|
||||
|
||||
### ModSecurity
|
||||
- **License**: Apache License 2.0
|
||||
- **Website**: https://github.com/owasp-modsecurity/ModSecurity
|
||||
- **Copyright**: (C) 2002-2024 Trustwave Holdings, Inc.
|
||||
|
||||
### OWASP Core Rule Set (CRS)
|
||||
- **License**: Apache License 2.0
|
||||
- **Website**: https://coreruleset.org/
|
||||
- **Copyright**: (C) 2006-2024 Trustwave Holdings, Inc., OWASP Core Rule Set contributors
|
||||
|
||||
### MaxMind GeoIP2 / GeoLite2
|
||||
- **License**: GeoLite2 End User License Agreement
|
||||
- **Website**: https://www.maxmind.com/
|
||||
- **Attribution**: This product includes GeoLite2 data created by MaxMind, available from
|
||||
https://www.maxmind.com. Redistribution terms are stricter than plain open source — reviewed
|
||||
before bundling; see legal review note below.
|
||||
|
||||
### Valkey
|
||||
- **License**: BSD-3-Clause
|
||||
- **Website**: https://valkey.io/
|
||||
|
||||
## Backend (Go) Dependencies
|
||||
|
||||
| Package | License | Website |
|
||||
|---------|---------|---------|
|
||||
| github.com/labstack/echo/v4 | MIT | https://echo.labstack.com/ |
|
||||
| github.com/go-acme/lego/v4 | MIT | https://go-acme.github.io/lego/ |
|
||||
| github.com/lib/pq | MIT | https://github.com/lib/pq |
|
||||
| github.com/google/uuid | BSD-3-Clause | https://github.com/google/uuid |
|
||||
| github.com/redis/go-redis/v9 | BSD-2-Clause | https://github.com/redis/go-redis |
|
||||
| github.com/oschwald/geoip2-golang | ISC | https://github.com/oschwald/geoip2-golang |
|
||||
| github.com/cloudflare/cloudflare-go | BSD-3-Clause | https://github.com/cloudflare/cloudflare-go |
|
||||
| golang.org/x/crypto | BSD-3-Clause | https://golang.org/x/crypto |
|
||||
|
||||
## Frontend (React) Dependencies
|
||||
|
||||
| Package | License | Website |
|
||||
|---------|---------|---------|
|
||||
| React | MIT | https://react.dev/ |
|
||||
| @tanstack/react-query | MIT | https://tanstack.com/query |
|
||||
| react-router-dom | MIT | https://reactrouter.com/ |
|
||||
| recharts | MIT | https://recharts.org/ |
|
||||
| i18next | MIT | https://www.i18next.com/ |
|
||||
| Tailwind CSS | MIT | https://tailwindcss.com/ |
|
||||
| Vite | MIT | https://vitejs.dev/ |
|
||||
|
||||
## Nginx Modules
|
||||
|
||||
| Module | License | Website |
|
||||
|--------|---------|---------|
|
||||
| ModSecurity-nginx | Apache 2.0 | https://github.com/owasp-modsecurity/ModSecurity-nginx |
|
||||
| ngx_brotli | BSD-2-Clause | https://github.com/google/ngx_brotli |
|
||||
| headers-more-nginx-module | BSD-2-Clause | https://github.com/openresty/headers-more-nginx-module |
|
||||
| ngx_http_geoip2_module | BSD-2-Clause | https://github.com/leev/ngx_http_geoip2_module |
|
||||
|
||||
---
|
||||
|
||||
## Apache License 2.0 Notice
|
||||
|
||||
The following components are licensed under the Apache License 2.0:
|
||||
|
||||
- ModSecurity (Copyright 2002-2024 Trustwave Holdings, Inc.)
|
||||
- OWASP Core Rule Set (Copyright 2006-2024 Trustwave Holdings, Inc.)
|
||||
- ModSecurity-nginx (Copyright 2015-2024 Trustwave Holdings, Inc.)
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use these files except in compliance with the License.
|
||||
You may obtain a copy of the License at:
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
---
|
||||
|
||||
## GeoLite2 End User License Agreement
|
||||
|
||||
This product includes GeoLite2 data created by MaxMind, available from
|
||||
https://www.maxmind.com. GeoLite2 databases are offered under the
|
||||
GeoLite2 End User License Agreement. For the full license text, see:
|
||||
https://www.maxmind.com/en/geolite2/eula
|
||||
|
||||
---
|
||||
|
||||
## Pending legal review before commercial distribution
|
||||
|
||||
TimescaleDB (Community Edition, TSL) and MaxMind GeoLite2 (EULA) both carry redistribution
|
||||
conditions beyond plain MIT/BSD/Apache terms. Confirm these terms are compatible with the
|
||||
proprietary commercial license in `LICENSE` before shipping a release build.
|
||||
Reference in New Issue
Block a user