2021-07-14 19:03:49 +00:00
# custom-php
2020-05-02 22:21:33 +00:00
2021-07-14 19:43:37 +00:00
Coöp Cloud + [PHP ](https://php.org ) + MariaDB (optional) + Nginx = 🥳
2020-09-10 23:30:10 +00:00
2021-03-02 16:38:45 +00:00
<!-- metadata -->
2021-05-10 05:09:52 +00:00
2023-03-28 15:39:39 +00:00
* **Category**: Development
2021-11-23 10:19:04 +00:00
* **Status**: 3, stable
* **Image**: [`php` ](https://hub.docker.com/_/php ), 4, upstream
2021-11-22 11:42:03 +00:00
* **Healthcheck**: Yes
* **Backups**: Yes
2021-11-23 10:19:04 +00:00
* **Email**: 3
* **Tests**: 2
2021-11-22 11:42:03 +00:00
* **SSO**: No
2021-05-30 10:58:17 +00:00
2021-03-02 16:38:45 +00:00
<!-- endmetadata -->
## Basic usage
2020-09-10 23:30:10 +00:00
1. Set up Docker Swarm and [`abra`][abra]
2020-12-14 10:28:46 +00:00
2. Deploy [`coop-cloud/traefik`][cc-traefik]
2021-07-14 19:03:49 +00:00
3. `abra app new custom-php --secrets` (optionally with `--pass` if you'd like
2021-03-02 16:38:45 +00:00
to save secrets in `pass` )
2023-01-20 00:02:27 +00:00
4. `abra app config YOURAPPDOMAIN`
2021-07-14 19:43:37 +00:00
- be sure to change `$DOMAIN` to something that resolves to
2020-09-10 23:30:10 +00:00
your Docker swarm box
2021-07-14 22:02:48 +00:00
- if you need to enable the optional database, uncomment `COMPOSE_FILE="compose.yml:compose.mariadb.yml"` in which case configure your site to load the DB credentials from env:
- `getenv('DB_NAME');`
- `getenv('DB_HOST');`
- `getenv('DB_USER');`
- `@file_get_contents(getenv('DB_PASSWORD_FILE'));`
2023-01-20 00:02:27 +00:00
5. Deploy with `abra app deploy YOURAPPDOMAIN`
6. Copy your site files using something like: `abra app cp YOURAPPDOMAIN index.html app:/var/www/html/` or if you want to copy an entire directory: `tar -cf - -C my_site/path/here . | abra app YOURAPPDOMAIN cp - app:/var/www/html/`
2021-07-14 10:38:58 +00:00
6. Use [restore functionality ](https://docs.coopcloud.tech/backup-restore/ ) to import a SQL file into the db
6. Open the configured domain in your browser to check all is good
2020-09-10 23:30:10 +00:00
2020-09-14 17:28:31 +00:00
2021-09-07 04:53:11 +00:00
## Extra
2021-09-07 08:21:16 +00:00
Indicate extensions you need in the `PHP_EXTENSIONS` env var. The entrypoint script will install them on startup.
2023-01-20 00:02:27 +00:00
You can see what PHP extensions compiled into the image by checking the output of `abra app run YOURAPPDOMAIN app "php -m"`
2021-09-07 04:53:11 +00:00
2023-01-20 00:02:27 +00:00
You can see the PHP config and environment by checking the output of `abra app run YOURAPPDOMAIN app "php -i"`
2021-09-07 04:53:11 +00:00
2020-09-27 19:27:08 +00:00
## Email
2021-06-02 09:26:03 +00:00
There is a local or remote SMTP relay configuration available.
2021-11-22 11:42:03 +00:00
* **local**: `COMPOSE_FILE=compose.yml:compose.mailrelay.yml`
* **remote**: `COMPOSE_FILE=compose.yml:compose.mailrelay.yml:compose.smtp.yml`
2021-06-02 09:26:03 +00:00
Below are the instructions for the local relay.
2020-12-14 10:28:46 +00:00
1. Deploy [`postfix-relay`][cc-postfix-relay]
2023-01-20 00:02:27 +00:00
2. `abra app config YOURAPPDOMAIN` , and uncomment the email lines; change
2020-12-14 10:28:46 +00:00
`MAIL_FROM` to make sure the domain is the same as `postfix-relay` 's
`$DOMAIN` or in its `$EXTRA_SENDER_DOMAINS`
2023-01-20 00:02:27 +00:00
3. `abra app deploy YOURAPPDOMAIN`
2020-09-27 19:27:08 +00:00
2020-09-25 12:24:38 +00:00
[abra]: https://git.autonomic.zone/autonomic-cooperative/abra
2020-12-14 10:28:46 +00:00
[cc-traefik]: https://git.autonomic.zone/coop-cloud/traefik
2021-03-02 16:38:45 +00:00
[cc-postfix-relay]: https://git.autonomic.zone/coop-cloud/traefik