Paas (PHP as a service )
Painless and automated any PHP Project docker instances hosting and deployment.
paas is developed under inspiration of Laravel Forge Project, which allows you deploy and host your laravel projects wihout any configuraion. paas is Free, Self Hosted and More powerful. And can be used for ANY php framework or project .
- Full Laravel Support.
- Production ready And fully dockerized environment for hosting php projects.
- All Data is independent of container, just delete and create an new one any time you want.
- Powered by Nginx, PHP7-FPM on latest Ubuntu.
- Webhooks are ready ! Just push and commit your changes and your site is up!
- PHP Mongo extension.
- SSH-Keys are auto-generated for git access.
- Nodejs & Gulp installed, just exec
WEBHOOK_SECRET environemnt and use injected url
http://project_url/webhook.php?secret=123 to use webhook.
if you want to add custom commands, create a
.webhookrc script in root of your repository.
You can change git branch by using environment variable
GIT_BRANCH. branch will be changed after next update or container entry-point.
Your project should have a directory named
You can use sipmy execute
cmd command to run commands inside project like :
php exec -it [containerName] cmd php artisan help
Building images based on paas
You can copy your init script to
/bin/vendor so it will be executed at every update.
Supervisord includes are supported. if you have any daemon to run with your image just copy config files to
Example : Cronjob support
This example will add Cron Jobs Support to Image.
[program:cron] command = /usr/sbin/cron -f -L 15 stdout_logfile = /var/log/cron.log stderr_logfile = /var/log/cron.log autorestart=true
version: '2' services: laravel: image: pooya/paas volumes: - ./data/www:/var/www environment: - VIRTUAL_HOST=my.subdomain.com - GIT_REPO=https://github.com/some/repo.git - PASSWORD=www-data_password - WEBHOOK_SECRET=123 restart: always network_mode: "bridge"
You can also create a docker compose file inside your repository and mount project to
docker-compose.yaml: (inside your repo)
version: '2' services: www: image: pooya/paas volumes: - .:/var/www/src env_file: .env network_mode: "bridge" restart: always
To prevent confilctes and pushing lock files in your dev environment, ignore generated files.