Sign inSign up

shinsenter/invoiceshelf

Sponsored OSS

By SHIN Company

โ€ขUpdated 1 day ago

๐Ÿงพ (PHP) InvoiceShelf invoicing app ready in one command

Image
Developer tools
Web servers
Content management system
1

100K+

shinsenter/invoiceshelf repository overview

โ shinsenter/invoiceshelf

๐Ÿงพ (PHP) InvoiceShelf invoicing app ready in one command

Built on shinsenter/laravelโ  (Nginx, PHP-FPM, Composer). For settings shared by all images, see shinsenter/phpโ .

โ Quick start

New project: mount an empty folder. On first start the container downloads InvoiceShelf into it (latest release zip of InvoiceShelf/InvoiceShelfโ ). Watch progress with docker logs -f <container>.

mkdir invoiceshelf
docker run -p 80:80 -p 443:443 -p 443:443/udp \
    -v ./invoiceshelf:/var/www/html \
    shinsenter/invoiceshelf:latest

Existing project: mount your code the same way. Changes on the host show up in the container at once.

Compose:

services:
  web:
    image: shinsenter/invoiceshelf:latest
    ports: ["80:80", "443:443", "443:443/udp"]
    volumes:
      - ./invoiceshelf:/var/www/html

The image has no database. Run one as a separate service and pass its address to the app through the app's own settings.

โ What is inside

ItemValue
Base imageshinsenter/laravelโ 
Web serverNginx
Document rootpublic
New project sourcelatest release zip of InvoiceShelf/InvoiceShelfโ 

โ Laravel settings

Set these as environment variables to run extra services next to the web server.

VariableWhat it doesDefault
LARAVEL_AUTO_MIGRATIONRun artisan migrate when the app boots. 0 turns it off.1
LARAVEL_AUTO_MIGRATION_OPTIONSExtra flags for artisan migrate, for example --seed.not set
LARAVEL_ENABLE_QUEUE_WORKER1 starts a queue worker under supervisor.0
LARAVEL_QUEUE_WORKER_OPTIONSOptions for the worker, for example connection or delay.not set
LARAVEL_ENABLE_SCHEDULERRun the Laravel scheduler. 0 turns it off.1
LARAVEL_SCHEDULER_OPTIONSExtra options for the scheduler.not set
LARAVEL_ENABLE_HORIZON1 starts Laravel Horizon (queue dashboard).0
LARAVEL_HORIZON_OPTIONSOptions for Horizon, for example environment or queue names.not set
LARAVEL_ENABLE_PULSE1 starts Laravel Pulse (performance monitoring).0
LARAVEL_PULSE_OPTIONSOptions for Pulse.not set
LARAVEL_ENABLE_REVERB1 starts Laravel Reverb (WebSocket server).0
LARAVEL_REVERB_OPTIONSOptions for Reverb.not set

Horizon, Pulse and Reverb need their Composer packages and config in your project. The image only starts the process.

โ Common settings

VariableWhat it doesDefault
APP_PATHApplication directory inside the container./var/www/html
DOCUMENT_ROOTFolder inside APP_PATH that the web server serves.public
APP_USER, APP_GROUP, APP_UID, APP_GIDRun as another user and group.www-data
TZContainer timezone, for example Asia/Tokyo.UTC
DEBUG1 prints verbose logs, including which hooks run.not set
ENABLE_CRONTAB, CRONTAB_SETTINGSTurn on cron and define jobs, for example * * * * * php -f /var/www/html/cron.php.not set
PHP_*Any php.ini setting, for example PHP_MEMORY_LIMIT=512M, PHP_UPLOAD_MAX_FILESIZE=100M. Run php-envvars in the container to list them.image defaults

The full list is in the shinsenter/phpโ  documentation.

โ HTTPS

The image ships a self-signed certificate for local tests:

  • /etc/ssl/site/server.crt
  • /etc/ssl/site/server.key

For production, replace both files with your own, by mounting them:

services:
  web:
    image: shinsenter/invoiceshelf:latest
    volumes:
      - ./invoiceshelf:/var/www/html
      - ./my_domain.crt:/etc/ssl/site/server.crt
      - ./my_domain.key:/etc/ssl/site/server.key

or by copying them in your own Dockerfile:

FROM shinsenter/invoiceshelf:latest
COPY my_domain.crt /etc/ssl/site/server.crt
COPY my_domain.key /etc/ssl/site/server.key

โ Extend the image

FROM shinsenter/invoiceshelf:latest

# Your own steps, for example:
ADD --chown=$APP_USER:$APP_GROUP ./invoiceshelf/ /var/www/html/

Adding PHP extensions, hooks, autorun scripts and cron jobs are covered in shinsenter/phpโ .

โ Image tags and platforms

  • All tags and platforms: Docker Hubโ . Debian and Alpine variants are available.
  • Since 2026-10-25, linux/386, linux/arm/v7, linux/ppc64le and linux/s390x are no longer built. Older tags keep them until they are rebuilt.
  • Images are rebuilt when PHP, the base OS or Composer publish an update, so a tag can change over time. For production, pin your own copy:
docker pull shinsenter/invoiceshelf:latest
docker tag  shinsenter/invoiceshelf:latest your-repo/invoiceshelf:stable
docker push your-repo/invoiceshelf:stable

โ Support the project

Keeping these images rebuilt for every PHP release takes ongoing work. If they save you time, you can help keep them going:

Reporting a bug, sharing the project or giving it a star on GitHubโ  also helps.

โ Issues and license


From Vietnam ๐Ÿ‡ป๐Ÿ‡ณ with love.

Tag summary

Content type

Image

Digest

sha256:81a3fe2a7โ€ฆ

Size

91.3 MB

Last updated

1 day ago

docker pull shinsenter/invoiceshelf

This week's pulls

Pulls:

1,786

Oct 26 to Nov 1