| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
- Add Netdata service entry (monitoring_network, auth_request, Cache-Control)
- Fix Authelia forward-auth list (Nexus is bypass, not forward-auth)
- Add rule ordering warning to Authelia entry
- Add Cookie header forwarding note to Nginx entry
- Add monitoring_network to networking and startup order sections
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- nginx: add /netdata/ location with auth_request and Cache-Control: no-store
to prevent browser-cached pages from triggering CORS errors on API calls
- nginx: add explicit Cookie header forwarding to all /_authelia-auth
subrequest locations (swave.lol, jenkins, gerrit server blocks)
- authelia: fix access_control rule ordering — move netdata/cockpit
one_factor rules before the general swave.lol bypass rule so they
are evaluated first (Authelia stops at first match)
- authelia: split blog/ghost bypass from swave.lol catch-all so the
main domain bypass only applies after protected paths are checked
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Added section 12 covering how to add, change password, and remove
Authelia users — including hash generation, YAML format, single-quote
requirement for argon2id hashes, and live reload via SIGHUP.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Nexus and registry.swave.lol now bypass Authelia entirely — Nexus
handles its own authentication for both the web UI and Docker clients.
auth_request removed from all nexus/registry nginx locations.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- authelia/: Full Authelia stack (docker-compose, config, setup guide, nginx snippet)
- Forward-auth for Netdata, Cockpit, Nexus, registry
- OIDC provider for Jenkins (oic-auth plugin, authorization_policy: one_factor)
- HTTP header auth for Gerrit (X-Forwarded-User on /login/ only)
- authelia_network: 172.26.0.0/16
- nginx/nginx.conf:
- auth.swave.lol server block
- /_authelia-auth internal subrequest locations (resolver 127.0.0.11)
- auth_request on Gerrit /login/, Jenkins, Nexus, registry
- OIDC finishLogin bypass for Jenkins
- swave.lol/gerrit and swave.lol/jenkins redirect to subdomains
- proxy_redirect for Gerrit container hostname rewrites
- nginx/docker-compose.yaml: joined authelia_network
- nginx/run_certbot.sh: added auth.swave.lol
- jenkins/docker-compose.yaml: removed --prefix=/jenkins (Jenkins now at /)
- cockpit/nginx-authelia.conf, netdata/nginx-netdata.conf: added auth_request
- git-server/gerrit.config.example: Gerrit config template (real config gitignored)
- .gitignore: added users_database.yml, gerrit.config
- CLAUDE.md: updated Jenkins, Gerrit, Authelia entries; added key files
- doc/setup-guide.md: Authelia section, updated startup order and service table
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Nexus: cap heap at 1024m (down from default 2703m)
Jenkins: cap heap at 512m (was unbounded)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Nexus provides artifact storage (Maven, raw, etc.) and a private Docker
registry at registry.swave.lol. Authelia forward-auth protects Gerrit,
Jenkins, and Nexus behind SSO. Includes setup guide, nginx config,
certbot domains, and a Jenkins pipeline example for artifact uploads.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Add ghost.swave.lol subdomain, Ghost URL config notes, nginx catch-all
error page, and git-performance.md to key files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
|
|
SSL is now in place, so Ghost should use https:// for its URL and
admin URL. Fixes the membership portal failing to load due to
mixed content / SSL protocol errors on API calls.
Note: DOMAIN in stack.env must be set to the bare domain (e.g.
swave.lol) without a port number.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
- Document Cockpit and Netdata setup in section 8 of setup guide
- Add monitoring_network to nginx compose with host-gateway for Cockpit
- Update network diagram, startup order, services table and ports summary
- Minor CLAUDE.md Jenkins description improvements
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Native host install accessed at swave.lol/cockpit/ via nginx reverse proxy.
Requires UrlRoot=/cockpit in /etc/cockpit/cockpit.conf for subpath support.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Add ghost.swave.lol as Ghost alias in nginx and certbot. Add default
server blocks that serve a styled 404 error page for any subdomain
not configured on the server.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Docker Compose setup for Netdata with monitoring_network (172.24.0.0/16).
Includes nginx location blocks for path-based access at swave.lol/netdata/.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Cover repacking, bitmap indexes, commit graphs, compression tuning,
protocol choice, partial/shallow clones, container CPU limits, and
a quick setup script to apply all optimizations to a repo.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Use sub_filter to rewrite href/action attributes (both quote styles)
to include /cgit prefix, and proxy_redirect to catch cgit's HTTP
redirects. Fixes broken navigation on path-based access while leaving
cgit.swave.lol subdomain unaffected.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Jenkins requires --prefix=/jenkins for path-based access on swave.lol.
Redirect subdomain root to /jenkins/ and proxy the prefix path to
Jenkins, avoiding double-prefix redirect loops.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Document how to add dedicated build agents via SSH, configure labels
for routing jobs, and disable builds on the controller for scaling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Explain incremental builds, Docker image caching vs container lifecycle,
and two ways to clean the workspace for Pipeline jobs (host deletion
and cleanWs plugin).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Mount jenkins/init.groovy.d/ into the container to auto-clean corrupted
flow executions on startup (JENKINS-50407). Document both the prevention
(Performance-optimized durability setting) and recovery (groovy cleanup
script) in the setup guide.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Explain that Jenkins auto-clones the repo before running the Jenkinsfile
so a manual checkout stage is unnecessary. Add guidance on configuring
shallow clone and extended timeout for large repositories like the kernel.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Cover bare clone for one-time copies and mirror clone for keeping
repos synced with an upstream source.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Custom Debian bookworm image with all dependencies for building the
Linux kernel (gcc, flex, bison, libelf, libssl, dwarves, etc.).
Includes example Jenkinsfile showing kernel build with artifact archiving.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Explain that Docker build containers are ephemeral and show how to
use archiveArtifacts to persist compiled binaries in Jenkins storage.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Covers repo setup, Jenkinsfile examples (g++ and CMake), pipeline job
creation, SCM configuration, and automatic build triggers via polling
or git post-receive hooks.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Set the container's docker group GID to 990 to match the host's
docker socket ownership, allowing Jenkins to spawn sibling containers.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Define subnet 172.23.0.0/16 for jenkins_network with static IPs:
jenkins (172.23.0.2), git-server (172.23.0.3), gerrit (172.23.0.4).
This allows git-server to communicate directly with Jenkins for
build triggers and webhook integrations.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Gerrit joins git-network (repo access) and jenkins_network (build triggers),
uses the official gerritcodereview/gerrit image with persistent storage under
/var/gerrit, and is reverse-proxied via nginx at gerrit.swave.lol and
swave.lol/gerrit. Updated certbot, setup guide, and project docs accordingly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Without virtual-root, cgit generates incorrect URLs that duplicate
the repository name in the path.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Prevent accidentally re-committing files that contain credentials.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
|
|
The subdomain proxy was passing /jenkins to Jenkins which already
adds the prefix via --prefix=/jenkins, resulting in /jenkinsjenkins/.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
|
|
|
|
Without an explicit name, Compose creates ghost_ghost_network
instead of ghost_network, breaking nginx reverse proxy.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Jenkins runs as UID 1000 and needs write access to /var/jenkins_home.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Cgit was generating links to /cgit.css which, when accessed via
swave.lol/cgit, routed to Ghost instead of the cgit container.
Set css/logo paths to /cgit-css/ in cgitrc and add a /cgit-css/
proxy location in the main nginx config.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
|
|
The commented-out 8000 port had extra indentation that made YAML
parse it as part of the 80:80 value, causing no ports to be published.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Adds a lightweight cgit container (Alpine + fcgiwrap + nginx) that
auto-discovers bare repos via scan-path and serves them read-only.
Accessible at both cgit.swave.lol and swave.lol/cgit through the
main nginx reverse proxy.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
|