š (PHP) Coolify, your self-hosted PaaS, ready in one command
100K+
š (PHP) Coolify, your self-hosted PaaS, ready in one command
Built on shinsenter/laravelā (Nginx, PHP-FPM, Composer). For settings shared by all images, see shinsenter/phpā .
New project: mount an empty folder. On first start the container downloads Coolify into it (latest release of coollabsio/coolifyā ). Watch progress with docker logs -f <container>.
mkdir coolify
docker run -p 80:80 -p 443:443 -p 443:443/udp \
-v ./coolify:/var/www/html \
shinsenter/coolify: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/coolify:latest
ports: ["80:80", "443:443", "443:443/udp"]
volumes:
- ./coolify:/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.
| Item | Value |
|---|---|
| Base image | shinsenter/laravelā |
| Web server | Nginx |
| Document root | public |
| New project source | latest release of coollabsio/coolifyā |
Defaults this image sets (you can override each with -e):
| Variable | Default |
|---|---|
PHP_POST_MAX_SIZE | 256M |
PHP_UPLOAD_MAX_FILESIZE | 256M |
QUEUE_CONNECTION | sync |
LARAVEL_ENABLE_HORIZON | 1 |
LARAVEL_ENABLE_SCHEDULER | 1 |
Set these as environment variables to run extra services next to the web server.
| Variable | What it does | Default |
|---|---|---|
LARAVEL_AUTO_MIGRATION | Run artisan migrate when the app boots. 0 turns it off. | 1 |
LARAVEL_AUTO_MIGRATION_OPTIONS | Extra flags for artisan migrate, for example --seed. | not set |
LARAVEL_ENABLE_QUEUE_WORKER | 1 starts a queue worker under supervisor. | 0 |
LARAVEL_QUEUE_WORKER_OPTIONS | Options for the worker, for example connection or delay. | not set |
LARAVEL_ENABLE_SCHEDULER | Run the Laravel scheduler. 0 turns it off. | 1 |
LARAVEL_SCHEDULER_OPTIONS | Extra options for the scheduler. | not set |
LARAVEL_ENABLE_HORIZON | 1 starts Laravel Horizon (queue dashboard). | 0 |
LARAVEL_HORIZON_OPTIONS | Options for Horizon, for example environment or queue names. | not set |
LARAVEL_ENABLE_PULSE | 1 starts Laravel Pulse (performance monitoring). | 0 |
LARAVEL_PULSE_OPTIONS | Options for Pulse. | not set |
LARAVEL_ENABLE_REVERB | 1 starts Laravel Reverb (WebSocket server). | 0 |
LARAVEL_REVERB_OPTIONS | Options for Reverb. | not set |
Horizon, Pulse and Reverb need their Composer packages and config in your project. The image only starts the process.
| Variable | What it does | Default |
|---|---|---|
APP_PATH | Application directory inside the container. | /var/www/html |
DOCUMENT_ROOT | Folder inside APP_PATH that the web server serves. | public |
APP_USER, APP_GROUP, APP_UID, APP_GID | Run as another user and group. | www-data |
TZ | Container timezone, for example Asia/Tokyo. | UTC |
DEBUG | 1 prints verbose logs, including which hooks run. | not set |
ENABLE_CRONTAB, CRONTAB_SETTINGS | Turn 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.
The image ships a self-signed certificate for local tests:
/etc/ssl/site/server.crt/etc/ssl/site/server.keyFor production, replace both files with your own, by mounting them:
services:
web:
image: shinsenter/coolify:latest
volumes:
- ./coolify:/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/coolify:latest
COPY my_domain.crt /etc/ssl/site/server.crt
COPY my_domain.key /etc/ssl/site/server.key
FROM shinsenter/coolify:latest
# Your own steps, for example:
ADD --chown=$APP_USER:$APP_GROUP ./coolify/ /var/www/html/
Adding PHP extensions, hooks, autorun scripts and cron jobs are covered in shinsenter/phpā .
linux/386, linux/arm/v7, linux/ppc64le and linux/s390x are no longer built. Older tags keep them until they are rebuilt.docker pull shinsenter/coolify:latest
docker tag shinsenter/coolify:latest your-repo/coolify:stable
docker push your-repo/coolify:stable
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.
From Vietnam š»š³ with love.
Content type
Image
Digest
sha256:363840efcā¦
Size
91.3 MB
Last updated
about 11 hours ago
docker pull shinsenter/coolifyPulls:
1,568
Oct 26 to Nov 1