An open API service indexing awesome lists of open source software.

https://github.com/RobiNN1/phpCacheAdmin

Web GUI for managing Redis, Memcached, APCu, OPCache and Realpath with data management.
https://github.com/RobiNN1/phpCacheAdmin

admin apcu cache dashboard gui memcache memcached opcache php phpcacheadmin realpath redis tailwindcss ui web

Last synced: about 1 month ago
JSON representation

Web GUI for managing Redis, Memcached, APCu, OPCache and Realpath with data management.

Awesome Lists containing this project

README

        

Logo


Web GUI for managing Redis, Memcached, APCu, OPCache and Realpath with data management.


Preview

![Visitor Badge](https://visitor-badge.laobi.icu/badge?page_id=RobiNN1.phpCacheAdmin)
![Docker Pulls](https://img.shields.io/docker/pulls/robinn/phpcacheadmin)

## Installation

Unzip the archive and launch index.php in a web browser. No installation is required.
However, it is highly recommended (although not required) to run `composer install`.

If you use the defaults (e.g. Redis, Memcached servers), everything should work out of the box.
To customize the configuration, do not edit `config.dist.php` directly, but copy it into `config.php`.

## Updating

Replace all files and delete the `tmp` folder (this folder contains only compiled Twig templates).

## Environment variables

All keys from the [config](https://github.com/RobiNN1/phpCacheAdmin/blob/master/config.dist.php) file are supported ENV variables,
they just must start with `PCA_` prefix.

Options with an array can be set using "dot notation" but use `_` instead of a dot.
Or you can even use JSON (e.g. Redis SSL option).

Redis:

- `PCA_REDIS_0_NAME` The server name (optional).
- `PCA_REDIS_0_HOST` Optional when a path is specified.
- `PCA_REDIS_0_PORT` Optional when the default port is used.
- `PCA_REDIS_0_SCHEME` Connection scheme (optional). If you need a TLS connection, set it to `tls`.
- `PCA_REDIS_0_SSL` [SSL options](https://www.php.net/manual/en/context.ssl.php) for TLS. Requires Redis >= 6.0 (optional). You can set value as JSON `{"cafile":"private.pem","verify_peer":true}`.
- `PCA_REDIS_0_DATABASE` Default database (optional).
- `PCA_REDIS_0_USERNAME` ACL - requires Redis >= 6.0 (optional).
- `PCA_REDIS_0_PASSWORD` Optional.
- `PCA_REDIS_0_AUTHFILE` File with a password, e.g. Docker secrets (optional).
- `PCA_REDIS_0_PATH` Unix domain socket (optional).
- `PCA_REDIS_0_DATABASES` Number of databases, use this if the CONFIG command is disabled (optional).
- `PCA_REDIS_0_SCANSIZE` Number of keys, the server will use the SCAN command instead of KEYS (optional).

Memcached:

- `PCA_MEMCACHED_0_NAME` The server name (optional).
- `PCA_MEMCACHED_0_HOST` Optional when a path is specified.
- `PCA_MEMCACHED_0_PORT` Optional when the default port is used.
- `PCA_MEMCACHED_0_PATH` Unix domain socket (optional).

Open [config](https://github.com/RobiNN1/phpCacheAdmin/blob/master/config.dist.php) file for more info.

> To add another server, add the same environment variables, but change `0` to `1` (`2` for third server and so on).

## Docker

A Docker image is also available: https://hub.docker.com/r/robinn/phpcacheadmin

Run with single command:

```bash
docker run -p 8080:80 -d --name phpcacheadmin -e "PCA_REDIS_0_HOST=redis_host" -e "PCA_REDIS_0_PORT=6379" -e "PCA_MEMCACHED_0_HOST=memcached_host" -e "PCA_MEMCACHED_0_PORT=11211" robinn/phpcacheadmin
```

Or use it in **docker-compose.yml**

```yaml
version: '3'
services:
phpcacheadmin:
image: robinn/phpcacheadmin
ports:
- "8080:80"
#volumes:
# If you want to use config.php instead of ENV variables
# - "./config.php:/var/www/html/config.php"
environment:
- PCA_REDIS_0_HOST=redis
- PCA_REDIS_0_PORT=6379
- PCA_MEMCACHED_0_HOST=memcached
- PCA_MEMCACHED_0_PORT=11211
links:
- redis
- memcached
redis:
image: redis
memcached:
image: memcached
```

## Requirements

- PHP >= 8.2 (Use [v1 branch](https://github.com/RobiNN1/phpCacheAdmin/tree/v1.x) if you need support for >=7.4)
- Redis server >= 3.0.0
- Memcached server >= 1.4.31 (ideally >= 1.5.19 to see more data). If you do not see the keys, you need to enable `lru_crawler`. SASL is not supported because there is no way to get the keys.

> It is not necessary to have all dashboards enabled.

## Custom Dashboards

- [FileCache](https://github.com/RobiNN1/FileCache-Dashboard) ([`robinn/cache`](https://github.com/RobiNN1/Cache)) dashboard.

## Contributing

Thank you for your interest in contributing! However, this project is not accepting pull requests as I prefer to maintain the codebase myself.

If you encounter any issues or have suggestions for improvements, please create an issue instead. This allows us to discuss the problem or idea before any changes are made.

I appreciate your understanding and look forward to hearing your feedback!