composer.lock already pins packages that need PHP >= 8.4.1 (symfony/* v8, nesbot/carbon 3, laravel/pint), so `composer install` on the 8.2 / 8.3 CI legs has been failing since v1.0.0. Bump composer.json to "php": "^8.4", regenerate the lock platform block, drop 8.2 / 8.3 from the ci.yml matrix, and update the "PHP 8.2+" references in the docs. The Docker image was already php:8.4-apache. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JKT9p3bfP8RZesExdYCS52
4.4 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 |
docs/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,docker/compose.dev.override.yamldocker/data/(production DB + storage state)- 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 workflows in
.github/workflows/are read by Gitea Actions if Actions is enabled on the instance (otherwise harmless):ci.yml— Pint + PHPUnit on PHP 8.4, on every push / PR.release.yml— on avX.Y.Ztag, buildsdocker/php/Dockerfiletargetprodand pushes…/adconsole:{X.Y.Z, X.Y, latest}to the instance's container registry. Needspackages: write; if the built-in token can't push, add aREGISTRY_TOKENrepo secret. AdjustREGISTRY/IMAGE_NAMEin the workflow (and the default indocker/compose.yaml) for a different host or owner.
- Release:
git tag -a vX.Y.Z -m "ADconsole vX.Y.Z" && git push origin vX.Y.Z(that firesrelease.yml), then cut a release from the tag on the Git host and paste the matchingdocs/CHANGELOG.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.