Skip to content

Torolàlana Docker

WimaZone Billing dia manohana ny fametrahana Docker amin'ny serveur mahazatra sy ny dingana mifandraika amin'ny RouterOS.

Database Tohanan

MilinaVersionFampiasanaCharset
SQLite3.xFametrahana MikroTik (embedded)
MySQL8.0Fametrahana serveur / CasaOSutf8mb4 / utf8mb4_unicode_ci
MariaDB11.5Fametrahana production (Docker)utf8mb4 / utf8mb4_unicode_ci

Ny milina database dia voafidy amin'ny DB_CONNECTION (sanda: sqlite na mysql). Samy voapetraka ao amin'ny sary Docker ny fanitarana PHP pdo_mysql sy pdo_sqlite.

Fanombohana Haingana (SQLite)

Clone ny tetikasa ary alefaso amin'ny compose:

bash
git clone https://github.com/ITDev-Success/billing.git
cd billing
cp .env.example .env
docker compose up -d --build

Sokafy ny navigateur-nao ary mandehana amin'ny http://localhost:8080.

Alefaso ny baiko aorian'ny fanombohana ao anatin'ny container raha ilaina:

bash
docker exec -it billing php artisan key:generate
docker exec -it billing php artisan migrate --force

Docker Compose (SQLite / MikroTik)

Ohatra kely indrindra:

yaml
services:
  billing:
    build:
      context: .
      dockerfile: Dockerfile.mikrotik
    container_name: billing
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      - APP_ENV=production
      - APP_DEBUG=false
      - APP_URL=http://localhost:8080
      - LARAVEL_ENABLE_QUEUE_WORKER=true
      - LARAVEL_QUEUE_WORKER_OPTIONS=--queue=mikrotik,default --tries=1 --timeout=1200 --sleep=2
      - MIKROTIK_BOOT_HOTSPOT_SYNC=false
    volumes:
      - ./:/var/www/html

Fametrahana CasaOS (MySQL)

Ny rakitra deploy/docker-compose.yml dia mametraka stack feno miaraka amin'ny MySQL 8.0 sy phpMyAdmin:

SerivisySaryPortAndraikitra
wima-zoneshinsenter/laravel:php8.48081 (HTTP), 8443 (HTTPS)Rindranasa Laravel
wima-zone-mysqlmysql:8.03306Database MySQL
wima-zone-phpmyadminphpmyadmin/phpmyadmin:latest8080Fitantanana DB
bash
cd deploy
docker compose up -d
docker exec -it wima-zone php artisan migrate --force

Variables tontolo iainana MySQL:

env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=wimazone
DB_USERNAME=laravel
DB_PASSWORD=change_me
DB_ROOT_PASSWORD=change_root_password

Fitahirizana maharitra CasaOS:

Lalana HostLalana ContainerVotoatiny
/DATA/AppData/wima-zone/wwwroot/var/www/htmlLoharano Laravel
/DATA/AppData/wima-zone/mysql/var/lib/mysqlData MySQL

Fametrahana Production (MariaDB)

Ny rakitra deploy/docker-compose.prod.yml dia mametraka stack production feno miaraka amin'ny MariaDB 11.5, Nginx, Redis sy workers manokana:

SerivisySaryAndraikitra
appSary manokana (Dockerfile)Rindranasa PHP-FPM
webnginx:1.27-alpineServeur web (port 8080)
workerSary manokanaLaravel queue worker
schedulerSary manokanaLaravel scheduler
dbmariadb:11.5Database MariaDB
redisredis:7-alpineCache sy sessions
bash
cd deploy
docker compose -f docker-compose.prod.yml up -d

Variables MariaDB production:

env
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=billing
DB_USERNAME=billing
DB_PASSWORD=change_me
DB_ROOT_PASSWORD=change_root_password

Fitsirihana fahasalamana ao anatiny: MariaDB (mariadb-admin ping, 10 famerenana), PHP App (php -v), Nginx (wget http://localhost/up). Ny serivisy app, worker sy scheduler dia miandry ny database ho salama (service_healthy) alohan'ny hanombohana.

Tags

  • Ampiasao ny tag famoahana tetikasa avy amin'ny famoahana tahiry.
  • Version tetikasa voarakitra ankehitriny: v3.4.0.

Variables Tontolo Iainana

VariableFamaritanaSanda default
APP_ENVTontolo iainana Laravel.production
APP_DEBUGFomba debug.false
APP_URLURL rindranasa ampahibemaso.http://localhost:8080
REDIRECT_URLURL redirect fallback portail captive.http://wima-zone.wifi
HOTSPOT_STATUS_TIMEOUT_SECONDSTimeout ho an'ny antso API hotspot status.2
HOTSPOT_STATUS_CACHE_SECONDSVaravarankely cache ho an'ny valiny hotspot status.3
HOTSPOT_STATUS_FAILURE_COOLDOWN_SECONDSCooldown rehefa tsy misy ny routeur.20
MIKROTIK_BOOT_HOTSPOT_SYNCQueue sync hotspot fanombohana.false
MIKROTIK_BOOT_HOTSPOT_SYNC_PROCESS_NOWAmpandehanina avy hatrany ny sync fanombohana.false

Soso-kevitra ho an'ny fanombohana voalohany/seeding admin:

env
SEED_SUPER_ADMIN_EMAIL=admin@example.com
SEED_SUPER_ADMIN_PASSWORD=replace-with-strong-password

Fitahirizana (Volumes)

Lalana manan-danja:

  • /var/www/html/storage
  • /var/www/html/bootstrap/cache
  • /var/www/html/database (raha SQLite)
  • /var/lib/mysql (raha MySQL/MariaDB, amin'ny alalan'ny Docker volume)

Fanavaozana

bash
git pull
docker compose build --no-cache
docker compose up -d
docker exec -it billing php artisan migrate --force
docker exec -it billing php artisan optimize:clear

Ho an'ny fomba container RouterOS, araho ny script fametrahana sy dingana sary voatsapa amin'ny haavon'ny tetikasa.

Proprietary software. Internal usage only.