Sign inSign up

webspellchecker/admin-panel

By webspellchecker

•Updated 9 days ago

The self-hosted management interface for WProofreader Server.

Image
Web servers
0

840

webspellchecker/admin-panel repository overview

⁠WProofreader Admin-panel

The official container image for WProofreader Admin-panel, the self-hosted management interface for WProofreader Server.

Admin-panel provides initial administrator setup, team and user management, product activation, license-status visibility, and service-usage reporting.

This image is part of a multi-service application. For a complete deployment, use the provided Docker Compose example or the official Helm chart instead of running a single container by itself.

⁠Try it with Docker Compose

The fastest way to run the complete stack on one host is the Admin-panel Docker Compose example⁠.

It includes:

  • MySQL 8.4
  • WProofreader Server
  • WProofreader database provisioning
  • Admin-panel web application
  • Admin-panel queue worker
  • Admin-panel scheduler
  • Persistent database, dictionary, and application storage

Clone and configure the example:

git clone --depth 1 --branch docs/app-manager-compose https://github.com/WebSpellChecker/wproofreader-docker.git
cd wproofreader-docker/examples/admin-panel

cp .env.example .env

Generate the Admin-panel encryption key:

openssl rand -base64 32 | sed 's/^/base64:/'

Add the generated value and the required credentials to .env:

VariablePurpose
LICENSE_TICKET_IDActivates WProofreader Server
APP_KEYEncrypts Admin-panel sessions and application data
MYSQL_ROOT_PASSWORDInitializes and provisions MySQL
ADMIN_PANEL_DB_PASSWORDAdmin-panel database password
SERVICE_DB_PASSWORDService-database password used by Admin-panel
APPSERVER_DB_PASSWORDService-database password used by WProofreader Server

Keep .env private and never commit it.

Validate and start the stack:

docker compose config --quiet
docker compose up -d
docker compose ps --all

When the services are healthy:

Display the one-time Admin-panel setup URL:

docker compose logs admin-panel | grep -A1 'Setup URL'

For upgrades, HTTPS, backups, mail configuration, and troubleshooting, follow the complete Docker Compose guide⁠.

⁠Deploy on Kubernetes

For resilient Kubernetes deployments, use the official Admin-panel Helm chart⁠.

The chart manages:

  • Web, queue-worker, and scheduler workloads
  • Database migrations
  • Kubernetes Secrets and ConfigMaps
  • Health and startup probes
  • Gateway API and Ingress routing
  • Autoscaling and disruption budgets
  • S3-compatible or ReadWriteMany persistent storage

Start with the Kubernetes quick-start guide⁠.

⁠Image tags

docker pull webspellchecker/admin-panel:3.0.0
  • Use a versioned tag for production.
  • latest tracks the latest published release and can change.
  • Images are published for linux/amd64 and linux/arm64.
  • Pin the image digest when deployment reproducibility is required.

See all available image tags⁠.

⁠Runtime roles

The same image supports several application roles:

RoleCommand
WebDefault Nginx and PHP-FPM stack
Queue workerphp artisan queue:work
Schedulerphp artisan schedule:work
Database migrationImage entrypoint with migration provisioning enabled

Keep exactly one scheduler instance. Run the queue worker separately so background jobs and invitation emails are processed.

For custom deployments, give the worker and scheduler the same application settings and storage as the web container, and start them after database migrations complete. Set SKIP_ENTRYPOINT_CONFIG=true on both background containers so only the web container runs the startup scripts.

The image's default health check probes /php-fpm-ping through Nginx. Workers and schedulers do not start Nginx or PHP-FPM, so you must override that health check for each background role. Use these Compose service settings alongside your application environment and storage configuration:

services:
  admin-panel-worker:
    image: webspellchecker/admin-panel:3.0.0
    command: ["php", "artisan", "queue:work"]
    environment:
      SKIP_ENTRYPOINT_CONFIG: "true"
    healthcheck:
      test: ["CMD", "pgrep", "-f", "artisan queue:work"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 15s

  admin-panel-scheduler:
    image: webspellchecker/admin-panel:3.0.0
    command: ["php", "artisan", "schedule:work"]
    environment:
      SKIP_ENTRYPOINT_CONFIG: "true"
    healthcheck:
      test: ["CMD", "pgrep", "-f", "artisan schedule:work"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 15s

These checks confirm that the role's process is running. The complete Docker Compose example⁠ also configures startup dependencies, shared storage, and worker shutdown settings.

⁠Ports and health checks

Port or endpointPurpose
8080HTTP web application
8443Optional container-level HTTPS
/upApplication health
/php-fpm-pingPHP-FPM health

For public deployments, place a reverse proxy, load balancer, Gateway, or Ingress in front of the container and terminate TLS there.

⁠Configuration

The Docker Compose example supplies the required application and database variables.

For custom deployments, the important configuration groups are:

  • Application: APP_KEY, APP_URL
  • WProofreader: APP_SERVER_URL, optional APP_SERVER_INTERNAL_URL
  • Admin-panel database: DB_*
  • WProofreader service database: SERVICE_DB_*
  • Optional SMTP, OAuth, and S3-compatible storage

See the complete environment-variable reference⁠.

⁠Security

  • The image runs as the non-root www-data user.
  • Store credentials outside Compose files and source control.
  • Use explicit version tags or immutable digests.
  • Terminate public traffic with TLS.
  • Back up both databases and persistent volumes before upgrading.
  • Remove credentials, license information, and customer data from support logs.

Report suspected vulnerabilities through the security policy⁠.

⁠Licensing and support

A valid WProofreader Server license is required. Admin-panel reads the license status from WProofreader Server; it does not create or modify licenses.

Tag summary

Content type

Image

Digest

sha256:aa2fc169f…

Size

110.6 MB

Last updated

9 days ago

docker pull webspellchecker/admin-panel