Config backup, a Docker dev/prod split, and a Gitea-built release image.
Added
- /settings -> General -> "Configuration backup": JSON export/import of the
panel's general settings + attribute definitions
(App\Services\ConfigBackupService); audited as config.export / config.import.
Export can leave out the attribute-encryption key. No AD data included.
- docker/compose.dev.yaml: live-reload dev stack that bind-mounts the working
tree. docker/php/Dockerfile is now multi-stage (base -> dev / prod).
- .github/workflows/release.yml: on every vX.Y.Z tag, builds the prod image and
pushes gitea.kzbikowski.pl/kzbkowski/adconsole:{X.Y.Z,X.Y,latest}.
Changed
- docker/compose.yaml: self-contained prod image (app code + composer install
--no-dev baked in via COPY); persistent state in docker/data/{app_storage,db};
defaults to the released image (ADCONSOLE_VERSION pins a tag, ADCONSOLE_IMAGE
replaces the ref). Apache now honours public/.htaccess (AllowOverride All).
Run from the repo root with --env-file .env.
- Repo root now holds only README.md; CHANGELOG / CONTRIBUTING / SECURITY /
CODE_OF_CONDUCT moved under docs/.
Upgrade notes: docs/upgrading.md#v110--docker-layout. Full log: docs/CHANGELOG.md.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JKT9p3bfP8RZesExdYCS52
35 lines
1.1 KiB
Plaintext
35 lines
1.1 KiB
Plaintext
# =============================================================================
|
|
# Local / no-Traefik override for the production stack (docker/compose.yaml).
|
|
#
|
|
# Copy it, then pass both files (the override is NOT auto-merged because it
|
|
# lives under docker/, not the project root):
|
|
#
|
|
# cp docker/compose.override.yaml.template docker/compose.override.yaml
|
|
# docker compose --env-file .env \
|
|
# -f docker/compose.yaml -f docker/compose.override.yaml up -d --build
|
|
#
|
|
# The app is published on a host port and the external `traefik_public`
|
|
# network becomes a normal local one. Open http://localhost:8080
|
|
# (set APP_URL=http://localhost:8080 in .env).
|
|
# =============================================================================
|
|
|
|
services:
|
|
app:
|
|
ports:
|
|
- "8080:80"
|
|
# Drop the Traefik wiring for a local run.
|
|
networks:
|
|
- internal
|
|
labels: []
|
|
|
|
mariadb:
|
|
# Expose the DB on the host if you want to connect a GUI client.
|
|
ports:
|
|
- "3306:3306"
|
|
|
|
networks:
|
|
# Redefine the external network as a normal local one so Compose doesn't
|
|
# require a pre-existing `traefik_public`.
|
|
traefik_public:
|
|
external: false
|