mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-10-28 07:37:56 +09:00
Introduce fallback audit logging and enrich audit tooling; add builtin extension discovery/install; and update default launcher ports and related docs/config. Key changes: - New middleware app.middleware.audit registers an after-request fallback that records authenticated mutating API requests when routes don't emit explicit audit logs. - Audit model/action constants extended and AuditService enhanced (request context handling, redaction for sensitive settings, optional commit flag, sets g.audit_logged, emits events). - Routes/services updated to create explicit audit entries for marketplace and plugin operations (create/update/publish/install/uninstall/enable/disable) and SSO/settings flows switched to use AuditService. - Added tests for audit logging behavior and redaction (backend/tests/test_audit_log.py). - Plugin service: added BUILTIN_EXTENSIONS_DIR, list_builtin_extensions and install_builtin_extension; plugin API endpoints to list/install builtin extensions. - Contribution system extended to support layouts and route layout metadata; frontend wiring updated to surface standalone/custom layouts and extension routes. - Launcher port defaults changed (backend -> 47927, frontend -> 41921). Updated backend .env.example, config CORS defaults, Dockerfiles and docker-compose to use SERVERKIT_BACKEND_PORT, and many docs/README files and frontend envs to reflect new ports. - Minor frontend cleanups and new builtin extension example (serverkit-git) plus associated manifest and frontend re-export. These changes improve observability/security for mutating APIs, enable opt-in builtin plugins, and align local dev/run ports with the launcher defaults.
82 lines
2.0 KiB
YAML
82 lines
2.0 KiB
YAML
# ============================================
|
|
# ServerKit Docker Compose
|
|
# ============================================
|
|
# Runs both backend and frontend in Docker.
|
|
# Note: System management features (PHP install,
|
|
# firewall, etc.) won't work in Docker.
|
|
#
|
|
# Usage:
|
|
# docker compose up --build -d
|
|
#
|
|
# Access:
|
|
# Frontend: http://localhost:3847
|
|
# Backend: http://localhost:5849
|
|
# ============================================
|
|
|
|
services:
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
container_name: serverkit-backend
|
|
environment:
|
|
- FLASK_ENV=development
|
|
- SECRET_KEY=dev-secret-key-not-for-production
|
|
- JWT_SECRET_KEY=dev-jwt-key-not-for-production
|
|
- DATABASE_URL=sqlite:////app/instance/serverkit.db
|
|
- CORS_ORIGINS=http://localhost,http://localhost:3847,http://localhost:41921
|
|
- SERVERKIT_BACKEND_PORT=5000
|
|
ports:
|
|
- "5849:5000"
|
|
volumes:
|
|
- serverkit-data:/app/instance
|
|
- serverkit-config:/etc/serverkit
|
|
networks:
|
|
- serverkit-network
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -f http://localhost:$${SERVERKIT_BACKEND_PORT:-5000}/api/v1/system/health"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
frontend:
|
|
build:
|
|
context: ./frontend
|
|
dockerfile: Dockerfile
|
|
container_name: serverkit-frontend
|
|
ports:
|
|
- "3847:80"
|
|
depends_on:
|
|
backend:
|
|
condition: service_healthy
|
|
networks:
|
|
- serverkit-network
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost/"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
networks:
|
|
serverkit-network:
|
|
driver: bridge
|
|
name: serverkit-network
|
|
|
|
volumes:
|
|
serverkit-data:
|
|
name: serverkit-data
|
|
serverkit-config:
|
|
name: serverkit-config
|