Installation
Plume Compose
Requirements
For a long-term installation we provide Plume Compose as a quick and easy way of getting up and running with a pre-configured Docker Compose configuration.
Clone the repository to a location of your choosing
consolegit clone https://github.com/PHLAK/plume-compose.git /path/to/plumeSwitch to your installation directory and initialize the configuration files
consolecd /path/to/plume make initModify the environment variables in
.envfor your installationRun
docker compose configto validate and confirm your configurationRun
docker compose up -dto start the containers
Docker Compose
Requirements
If you prefer a manual Docker Compose installation you may create a directory for your Plume app and, in that directory, add a docker-compose.yaml file and a folder (e.g. data) to contain your data.
/path/to/plume
├── data
│ └── [your data will go here]
└── docker-compose.yamlservices:
plume:
image: phlak/plume:latest
environment:
SITE_TITLE: My Amazing Blog
# See configuration docs for additional variables
ports:
- <host_port>:80
volumes:
- ./data:/var/www/html/data
- ./themes:/var/www/html/themes
- plume-cache:/var/www/html/cache/app
user: www-data
restart: unless-stopped
volumes:
plume-cache: {}IMPORTANT
Replace <host_port> with the port on which you would like the application to be exposed.
TIP
See Environment Variables for a full list of the available environment variables.
Once created, start the container by running docker compose up -d from the same directory as the docker-compose.yaml file.
Docker Run
Requirements
You may use docker run to launch a stand-alone Docker container from the official Docker image. This is a good way to test Plume for the first time but is not recommended for long-term use. Instead we recommend using either the Plume Compose or Docker Compose installation method instead.
docker run --detach --publish <host_port>:80 \
[--env ENVIRONMENT_VARIABLE=value] \
--volume ./data:/var/www/html/data \
phlak/plume:latestIMPORTANT
Replace <host_port> with the port on which you would like the application to be exposed.
TIP
You may pass multiple environment variables by repeating the --env flag.
Manual Installation
If you prefer to run Plume without Docker you may install it manually from source.
Clone the repository to a location of your choosing
consolegit clone https://github.com/PHLAK/Plume.git /path/to/plumeSwitch to your installation directory and install the PHP dependencies
consolecd /path/to/plume composer install --no-dev --no-interaction --prefer-dist --optimize-autoloaderInstall the front-end dependencies and build the assets
consolenpm install --no-audit --no-fund npm run buildCopy the example
.envfile and modify the environment variables for your installationconsolecp .env.example .envTIP
See Environment Variables for a full list of the available environment variables.
Ensure the
dataandcachedirectories are writable by your web serverconsolechown --recursive www-data:www-data data cacheIMPORTANT
The web server user varies by platform (e.g.
www-dataon Debian/Ubuntu,apacheon Fedora/RHEL). Replace it in the example above accordingly.
Once configured you may test your installation by serving the application with PHP's built-in web server. Run composer serve from your installation directory, then browse to http://localhost:8080.
TIP
Posts and pages must be published from the command line by running php plume publish from your installation directory. See Getting Started for more information.
Reverse Proxy
It's recommended to run Plume behind a reverse proxy. The following examples assume Plume is accessible on the host at 127.0.0.1:8076.
TIP
Replace 8076 with the port you configured for your Plume installation.
NGINX
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8076;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Apache
<VirtualHost *:80>
ServerName example.com
ProxyPass / http://127.0.0.1:8076/
ProxyPassReverse / http://127.0.0.1:8076/
</VirtualHost>Caddy
example.com
reverse_proxy 127.0.0.1:8076