Leo Counter is configured entirely through a singleDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/juanVillamilEchavarria/Leo_Counter-app/llms.txt
Use this file to discover all available pages before exploring further.
.env file that sits at the root of the project. Before starting the Docker stack for the first time, copy .env.example to .env and fill in every required value. The application will refuse to boot with a blank APP_KEY, and several services — MariaDB, Redis, Reverb, and MailHog — each expect their own credentials or connection details to be present.
Full .env.example
The block below is the canonical template shipped with the project. Copy it verbatim and then edit the values marked as required.App Settings
These variables control the core Laravel application identity and runtime behaviour.The human-readable name of the application. Displayed in the browser tab and injected into Vite via
VITE_APP_NAME.
Default: "Leo Counter"The environment the app is running in. Use
local for development and production for live deployments. Affects error reporting, caching strategies, and more.
Example: localA 32-character Base64 key used by Laravel to encrypt cookies, sessions, and other payloads. Must not be left blank.
When
true, Laravel renders full stack traces in the browser. Set to false in any internet-facing deployment.
Default: falseThe full base URL including scheme and port. The Docker stack exposes the app on port
8080.
Default: http://localhost:8080| Variable | Purpose | Default |
|---|---|---|
APP_LOCALE | Primary locale for translations | es |
APP_FALLBACK_LOCALE | Fallback locale when a string is missing | es |
APP_FAKER_LOCALE | Faker library locale for seeders | es_CO |
APP_MAINTENANCE_DRIVER | How maintenance mode state is stored | file |
BCRYPT_ROUNDS | bcrypt cost factor for password hashing | 12 |
LOG_CHANNEL | Active log channel | stack |
LOG_STACK | Channels within the stack | single |
LOG_LEVEL | Minimum severity to record | debug |
Database
Leo Counter runs on MariaDB (LTS image). Thedb hostname below refers to the db service defined in docker-compose.yml.
The Laravel database driver. Must be
mariadb — do not change this to mysql.
Default: mariadbThe database hostname. Inside Docker Compose, this is the service name
db.
Default: dbThe MariaDB port. The
db container listens on 3306 and also exposes it to the host on the same port.
Default: 3306The name of the database that will be created by MariaDB on first boot.
Default:
leo_counter_appThe MariaDB
root superuser password. Passed to the container as MARIADB_ROOT_PASSWORD.The non-root database user that the application connects with. Also used by phpMyAdmin (
PMA_USER).Password for
DB_USERNAME. Also used by phpMyAdmin (PMA_PASSWORD).The phpMyAdmin service at
http://localhost:8082 authenticates with DB_USERNAME and DB_PASSWORD automatically. No extra configuration is needed.Session & Auth
How sessions are stored. The default is
cookie (encrypted, client-side). Alternatives include database, redis, or file.
Default: cookieSession duration in minutes before the user is logged out due to inactivity.
Default:
120Comma-separated list of domains that may make stateful (cookie-based) API requests via Laravel Sanctum. Must include the host and port from
APP_URL.
Default: localhost:8080SANCTUM_STATEFUL_DOMAINS must exactly match the host:port portion of APP_URL. If you change APP_URL to http://finance.example.com, set SANCTUM_STATEFUL_DOMAINS=finance.example.com. A mismatch causes authentication to fail silently for Inertia requests.| Variable | Purpose | Default |
|---|---|---|
SESSION_ENCRYPT | Encrypt session contents | false |
SESSION_PATH | Cookie path scope | / |
SESSION_DOMAIN | Cookie domain scope | null |
SESSION_SECURE_COOKIE | Require HTTPS for the session cookie | false |
SESSION_SAME_SITE | SameSite policy (lax, strict, none) | lax |
Broadcasting — Laravel Reverb
Leo Counter uses Laravel Reverb for real-time WebSocket events. The Reverb server runs as its own Docker service on port8081 internally and is mapped to 8085 on the host.
A unique identifier for this Reverb application. Any non-empty string works for self-hosted deployments.
The public key used by the JavaScript client to connect to Reverb. Mirrored to
VITE_REVERB_APP_KEY.The server-side secret used to sign Reverb events. Keep this private.
The hostname the browser uses to open the WebSocket connection. For local development this is
localhost.
Default: localhostThe host-facing port that the browser connects to. The Docker Compose file maps container port
8081 to host port 8085.
Default: 8085The port Reverb listens on inside the container. Must match the
--port argument in the reverb service command (php artisan reverb:start --port=8081).
Default: 8081| Variable | Purpose | Default |
|---|---|---|
REVERB_SCHEME | Protocol for the WebSocket URL (http or https) | http |
BROADCAST_CONNECTION | Active broadcast driver | reverb |
VITE_REVERB_APP_KEY | Exposes REVERB_APP_KEY to the Vite/React bundle | ${REVERB_APP_KEY} |
VITE_REVERB_HOST | Exposes REVERB_HOST to the frontend | ${REVERB_HOST} |
VITE_REVERB_PORT | Exposes REVERB_PORT to the frontend | ${REVERB_PORT} |
VITE_REVERB_SCHEME | Exposes REVERB_SCHEME to the frontend | ${REVERB_SCHEME} |
Queue & Cache
- Queue
- Cache
- Redis
| Variable | Purpose | Default |
|---|---|---|
QUEUE_CONNECTION | Driver for queued jobs | redis |
queue-worker Docker service, which runs php artisan queue:work --sleep=3 --tries=3 --max-time=3600. No extra configuration is needed beyond a working Redis connection.http://localhost:8025.
The transport driver.
smtp for MailHog; change to ses, sendmail, or log in production.
Default: smtpSMTP server hostname.
mailhog resolves to the MailHog Docker service.
Default: mailhogSMTP port. MailHog listens on
1025 for SMTP and 8025 for its web UI.
Default: 1025The
From: address on all outgoing emails.
Default: "[email protected]"The display name in the
From: header.
Default: "Leo Counter"| Variable | Purpose | Default |
|---|---|---|
MAIL_USERNAME | SMTP auth username | null |
MAIL_PASSWORD | SMTP auth password | null |
MAIL_ENCRYPTION | TLS/SSL setting | null |
Vite Build Variables
These variables are injected into the React frontend bundle at build time by Vite. They mirror their server-side counterparts.| Variable | Mirrors | Purpose |
|---|---|---|
VITE_APP_NAME | APP_NAME | App name exposed to React components |
VITE_API_URL | APP_URL | Base URL for API calls from the frontend |
VITE_GITHUB_REPOSITORY | — | Link to the author’s GitHub profile, used in the UI |
Vite variables must be prefixed with
VITE_ to be accessible in React code via import.meta.env.VITE_*. Server-side variables without this prefix are never sent to the browser.