First public release. - docs: document the audit log, user offboarding, CSV export and the "require a reason for destructive actions" setting across README, docs/ and CLAUDE/AGENTS.md; note retention for panel_audit - docs: fill the publishing placeholders (repo URL, security contact, issue-template links) and add a semantic-versioning policy - move agent/contributor context into CLAUDE/ (AGENTS.md + a README); root CLAUDE.md is now a thin @-import pointer - add a favicon (shield-lock, matching the login screen) to the login page and the app layout - CHANGELOG: promote [Unreleased] to [1.0.0]; keep the earlier internal build as [0.1.0] Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UfuvfwexztdS7LDpGuKsuK
3.8 KiB
Publishing ADconsole to a Git host
How this working tree was turned into the public repository, and the checklist to follow if you re-publish it somewhere else (a fork, a mirror, a different host).
Canonical repository: https://gitea.kzbikowski.pl/kzbkowski/ADconsle
(self-hosted Gitea). The first public tag is v1.0.0.
1. Placeholders — all filled for the canonical repo
If you re-publish under a different owner/host, revisit these:
| File | Was | Now / put |
|---|---|---|
README.md, docs/installation.md, docs/development.md |
<your-fork-url> in the git clone lines |
https://gitea.kzbikowski.pl/kzbkowski/ADconsle.git |
SECURITY.md |
<SET A SECURITY CONTACT HERE> |
mail@kzbikowski.pl |
.github/ISSUE_TEMPLATE/config.yml |
https://github.com/OWNER/REPO/... |
The repo's Gitea issue/wiki URLs |
LICENSE |
2026 Kacper Żbikowski |
Copyright year + holder, if different |
lang/{pl,en}/pages.php → author.* |
Kacper Żbikowski |
Author/maintainer shown on the in-app About page |
composer.json |
adconsole/adconsole |
Your package name (optional; nothing depends on it) |
tests/Feature/Pages/AboutPageTest.php asserts the author name and
Copyright (c) <year> <name> — if you change pages.php author, update that
test too.
2. Confirm nothing sensitive is tracked
Everything below is already covered by .gitignore / .dockerignore — verify
none of it slipped in:
.env,.env.backup,.env.production,.env.*.localstorage/app/panel_settings.jsonand*.migratedvendor/,node_modules/,public/build/,public/hot/storage/runtime (logs, sessions, framework cache) — only the.gitignorekeep-files should be trackeddocker/compose.override.yaml- IDE / agent dirs (
.idea/,.vscode/,.claude/, …)
# Dry-run: what would a fresh repo add?
git init -q _probe && git --git-dir=_probe/.git --work-tree=. add -An | grep -Ei '(^add ...env$|vendor/|node_modules/|storage/(logs|framework)/.+/|panel_settings\.json)'
rm -rf _probe
# No output = clean.
Also grep for lab-specific values before the first push:
grep -rniE 'YOUR-DOMAIN|internal-hostname|real-ip' --exclude-dir=vendor --exclude-dir=node_modules .
3. Green build
composer install
cp .env.example .env && php artisan key:generate
php artisan migrate # against a throwaway SQLite/MySQL
php artisan test # 40+ pass (the DEPR tag is noise)
vendor/bin/pint --test # style clean
4. Create the repository
This tree started life inside an unrelated parent checkout, so it is published as a fresh repo scoped to just this folder:
cd /path/to/adconsole
git init -b main
git add .
git status # sanity-check the file list
git commit -m "ADconsole v1.0.0"
git remote add origin https://gitea.kzbikowski.pl/kzbkowski/ADconsle.git
git push -u origin main
git tag -a v1.0.0 -m "ADconsole v1.0.0"
git push origin v1.0.0
5. On the Git host
- Set the repository description and topics:
active-directory,ldap,laravel,ldaprecord,admin-panel,self-hosted. - Enable Issues. Point the "Question / help" contact link at the repo's issues (Gitea has no Discussions).
- The GitHub-format templates in
.github/(issue/PR templates, the Pint + PHPUnit CI workflow on PHP 8.2/8.3/8.4) are read by Gitea Actions too if Actions is enabled on the instance; otherwise they are harmless. - Cut a release from the
v1.0.0tag and paste the matchingCHANGELOG.mdsection as the notes.
6. First-deploy sanity (for whoever installs it)
Point them at installation.md (bare metal) or
deployment.md (Docker), and
active-directory.md for the service account and
delegation. troubleshooting.md covers the usual
first-run stumbles.